我正在尝试将事件从一个简单的控制台应用程序发送到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);
}
}
答案 0 :(得分:1)
您是否等了几分钟,事件才出现在门户中?他们通常在5分钟内到达,但可能会延迟。
此外,由于您尚未配置频道,因此将使用默认的InMemoryChannel
-如果发生一些临时错误,它将不会重试将事件发送到后端。 ServerTelemetryChannel
会重试,等等。您能否尝试使用ServerTelemetryChannel
。
var serverTelemetryChannel = new ServerTelemetryChannel();
serverTelemetryChannel.Initialize(TelemetryConfiguration.Active);
TelemetryConfiguration.Active.TelemetryChannel = serverTelemetryChannel;
您只需执行Flush
并在for循环外休眠,而无需在每次迭代中都进行刷新。