我具有“按需付费”模型运行的应用程序见解。 标准性能指标显示在门户中。 自定义指标不会显示在“指标”部分。
我的环境。 运行纯TCP套接字的自定义.NET核心控制台应用程序。 (没有ASP.NET CORE) 使用
<PackageReference Include="Microsoft.ApplicationInsights" Version="2.7.2" />
Telemetry类是使用默认构造函数构造的(并且没有XML配置文件)
自定义指标的创建方式类似于
Telemetry.Client.GetMetric("number of clients").TrackValue(600.0);
问题: 自定义指标没有显示,我想念或做错了什么? 天蓝色门户网站中的“指标”部分是否在寻找自定义指标的地方不正确?
更新
该示例代码也没有将任何自定义指标上传到Azure。
TelemetryClient client = new TelemetryClient();
client.InstrumentationKey = "a valid key";
client.GetMetric("test me").TrackValue(200);
client.Flush();
Thread.Sleep(5000);
答案 0 :(得分:3)
由于检测键配置不正确,导致此问题。
使用GetMetric().TrackValue()
时,我们应该使用这种方式来配置检测键:
TelemetryConfiguration.Active.InstrumentationKey = "your key"
;
我的代码如下:
TelemetryClient client = new TelemetryClient();
TelemetryConfiguration.Active.InstrumentationKey = "your key";
client.GetMetric("test33").TrackValue(100);
System.Threading.Thread.Sleep(1000*5);
client.Flush();
Console.WriteLine("Hello World!");
Console.ReadLine();
然后在visual studio输出窗口中,可以看到ikey显示在其中:
然后转到azure门户->应用程序见解->指标,您可以看到您的指标:
为进行比较,当您使用以下代码时:
client.InstrumentationKey = "a valid key";
client.GetMetric("test me").TrackValue(200);
答案 1 :(得分:1)
感谢Ivan Yang,我找到了一个github问题,正在详细讨论这个问题。
似乎有多种情况创建无效的配置。
例如,当前这也是无效的配置
TelemetryConfiguration tcConfig = new TelemetryConfiguration();
TelemetryClient tc = new TelemetryClient(tcConfig)
{
InstrumentationKey = ikey
};
有关https://github.com/Microsoft/ApplicationInsights-dotnet/issues/826和https://www.reddit.com/r/Unity3D/comments/8igabt/using_microsoft_azure_app_insights_and_unity/的更多详细信息