我正在关注these instructions 将App Insights添加到Windows桌面应用。我在我的代码中添加了一些TrackMetric和TrackException调用,这些数据在门户网站中显示得很好,所以我知道基本的管道工作正常。
基于these instructions,然后我将AI.Web NuGet包添加到我的项目中(是的,我知道这听起来很奇怪,但是特别推荐)并禁用所有除以下内容配置文件中的模块/初始化器:
我的遥测数据中显示了其他设备信息,因此我知道应用程序至少会提取配置文件设置。
不幸的是,无论我做什么,都没有出现任何标准效果计数器指标。
在桌面应用程序中启用perf计数器收集还需要做些什么吗?
提前感谢任何,呃,见解......:)
编辑:“标准性能计数器”是指默认情况下Windows性能计数器PerformanceCollectorModule根据之前链接的instructions进行跟踪,其状态为:
PerformanceCollectorModule跟踪许多Windows性能计数器。单击Metric Explorer中的图表以打开其详细信息刀片时,可以看到这些计数器。
您可以监控其他性能计数器 - 标准Windows计数器和您添加的任何其他计数器......
很明显,我不应该将标准文件添加到配置文件中 - 只需要包含任何其他计数器。
答案 0 :(得分:2)
理想情况下,您应该只能在应用的基础Application Insights包之上使用Perf Counter Collector nuget package。
您仍然需要在appinsights.config文件中设置要监控的性能计数器,或者通过instructions you linked中记录的代码来设置,例如:
<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应用程序中无法做任何事情。
答案 1 :(得分:2)
确保帐户(您的应用程序在其下运行)可以访问该计算机上的性能计数器(通常它应该只是Performance Monitor Users组的成员)。