应用洞察.NET | 自定义指标未显示在 portal.azure.com 的指标下

Hen*_*enk 2 .net c# azure azure-application-insights

我有使用“现收现付”模式运行的应用程序洞察力。标准性能指标显示在门户中。自定义指标不会显示在指标部分。

我的环境。运行普通 TCP 套接字的自定义 .NET 核心控制台应用程序。(无 ASP.NET CORE)使用

<PackageReference Include="Microsoft.ApplicationInsights" Version="2.7.2" />
Run Code Online (Sandbox Code Playgroud)

Telemetry 类是使用默认构造函数构造的(并且没有 XML 配置文件)

自定义指标的创建方式如下

Telemetry.Client.GetMetric("number of clients").TrackValue(600.0);
Run Code Online (Sandbox Code Playgroud)

问题:我错过了什么或做错了什么,自定义指标没有显示?azure 门户中的“指标”部分是查找自定义指标的错误位置吗?

更新

示例代码也不会将任何自定义指标上传到 azure。

        TelemetryClient client = new TelemetryClient();
        client.InstrumentationKey = "a valid key";
        client.GetMetric("test me").TrackValue(200);
        client.Flush();
        Thread.Sleep(5000);
Run Code Online (Sandbox Code Playgroud)

Iva*_*ang 6

由于未正确配置检测密钥而导致的此问题。

使用时GetMetric().TrackValue(),我们应该使用这种方式来配置instrumentation key:

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();
Run Code Online (Sandbox Code Playgroud)

然后在 Visual Studio 输出窗口中,您可以看到 ikey 显示在那里: 在此处输入图片说明

然后去azure门户->应用洞察->指标,可以看到你的指标: 在此处输入图片说明

为了比较,当您使用以下代码时:

client.InstrumentationKey = "a valid key";
client.GetMetric("test me").TrackValue(200);
Run Code Online (Sandbox Code Playgroud)

执行后,在 Visual Studio 中,您可以看到输出窗口中没有 ikey,因此不会向 azure 门户发送任何指标: 在此处输入图片说明