ApplicationInsights不会将所有事件发送到Azure

时间:2018-06-29 07:14:51

标签: azure events azure-application-insights

我正在尝试将事件从一个简单的控制台应用程序发送到azure,该事件显示在VisualStudio的ApplicationInsights搜索中,但前半部分不会显示在portal.azure.com中。

        static void Main(string[] args)
    {
        TelemetryClient telemetry = new TelemetryClient();
        telemetry.InstrumentationKey = 
        telemetry.Context.User.Id = Environment.UserName;
        System.Threading.Thread.Sleep(3000);
        for (int i = 0; i < 100; i++)
        {

            var eve = new EventTelemetry();
            eve.Name = "Test4";
            eve.Metrics["SomeMetric"] = i;
            eve.Properties["SomeProperty"] = i.ToString();
            telemetry.TrackEvent(eve);
            telemetry.Flush();
            System.Threading.Thread.Sleep(300);
        }
     }

1 个答案:

答案 0 :(得分:1)

您是否等了几分钟,事件才出现在门户中?他们通常在5分钟内到达,但可能会延迟。

此外,由于您尚未配置频道,因此将使用默认的InMemoryChannel-如果发生一些临时错误,它将不会重试将事件发送到后端。 ServerTelemetryChannel会重试,等等。您能否尝试使用ServerTelemetryChannel

var serverTelemetryChannel = new ServerTelemetryChannel();
serverTelemetryChannel.Initialize(TelemetryConfiguration.Active);
TelemetryConfiguration.Active.TelemetryChannel = serverTelemetryChannel;

您只需执行Flush并在for循环外休眠,而无需在每次迭代中都进行刷新。