桌面应用程序中的应用程序见解不会发送性能计数器
本文关键字:应用程序 性能计数器 桌面 | 更新日期: 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应用程序中不会做任何事情。
确保该帐户(您的应用程序正在其下运行)确实有权访问该机器上的性能计数器(通常它应该只是性能监视器用户组的成员)。