为什么我的 PerfMon 数据收集器集没有记录自定义性能计数器?

为什么我的 PerfMon 数据收集器集没有记录自定义性能计数器?

我有六个由 .NET 应用创建的自定义性能计数器。当我打开性能监视器并将它们添加到实时视图时,这些计数器会正确显示。我可以在实时图表中看到我期望的值。

我创建了一个用户定义的数据收集器集,用于记录一些内置计数器,如“处理器\% 处理器时间”和“内存\可用兆字节数”以及自定义性能计数器。当我保存并启动它时,一切似乎都正常工作。

当我让它运行一段时间,然后重新启动数据收集器并打开 BLG 文件时,它会正确显示所有内置计数器,但我的自定义计数器不可用。它们没有列在“可用计数器”列表中。为什么 perfmon 无法选择我的自定义计数器?

答案1

我们找到了问题所在。我创建了新的计数器,并将它们添加到 PerfMon UI 中现有的数据收集器集中,但应用程序实际上尚未创建任何实例。因此,我添加的计数器被定义为“\MyApp:Perf\*”,而不是“\MyApp:Perf()\“。

现在应用程序已经记录数据一段时间了,我删除并重新添加了计数器,这次它们起作用了。我很确定,如果我使用 logman 创建带有“\MyApp:Perf()\“明确指定,这也会起作用。

相关内容