桌面应用程序中的应用程序见解不会发送性能计数器

本文关键字:应用程序 性能计数器 桌面 | 更新日期: 2023-09-27 18:11:17

我按照这些说明将App Insights添加到Windows桌面应用程序。我在代码中添加了一些TrackMetric和TrackException调用,来自这些调用的数据在门户中显示得很好,所以我知道基本的管道工作正常。

根据这些说明,我添加了AI。Web NuGet包到我的项目(是的,我知道这听起来很奇怪,但它是特别推荐的),并禁用所有,除了配置文件中的以下模块/初始化器:

  • DiagnosticsTelemetryModule
  • DependencyTrackingTelemetryModule
  • PerformanceCollectorModule
  • DeviceTelemetryInitializer

额外的设备信息开始显示在我的遥测数据中,所以我知道应用程序至少正在拾取配置文件设置。

不幸的是,无论我做什么,没有一个标准的性能计数器指标显示。

在桌面应用程序中启用性能计数器收集是否还有其他需要做的事情?

提前感谢任何,呃,见解…:)

编辑:通过"标准性能计数器",我指的是Windows性能计数器PerformanceCollectorModule应该在默认情况下跟踪,根据前面链接的说明,其状态:

PerformanceCollectorModule跟踪许多Windows性能计数器。当您在度量资源管理器中单击图表以打开其详细信息页时,您可以看到这些计数器。

您可以监视额外的性能计数器-包括标准的Windows计数器和您添加的任何其他计数器…

很明显,我不应该将标准计数器添加到配置文件中——只需添加我想要包含的任何其他计数器。

桌面应用程序中的应用程序见解不会发送性能计数器

理想情况下,你应该能够在应用程序的基本应用程序洞察包之上使用Perf Counter Collector nuget包。

您仍然需要在应用程序中设置要监视的性能计数器。配置文件,或通过代码,在您链接到的说明中记录,如:

<Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.PerformanceCollectorModule, Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector">
  <Counters>
    <Add PerformanceCounter="'MyCategory'MyCounter" />
    <Add PerformanceCounter="'Process(??APP_WIN32_PROC??)'Handle Count" ReportAs="Process handle count" />
    <!-- ... -->
  </Counters>
</Add>

我相信web sdk只是设置了一堆ASP。. NET管道/w3wp性能计数器,这在标准的windows应用程序中不会做任何事情。

确保该帐户(您的应用程序正在其下运行)确实有权访问该机器上的性能计数器(通常它应该只是性能监视器用户组的成员)。