我有六个由 .NET 应用程序创建的自定义性能计数器。当我打开性能监视器并将它们添加到实时视图时,这些计数器会正确显示。我可以在实时图表中看到我期望的值。
我创建了一个用户定义的数据收集器集,它记录了一些内置计数器,如“Processor\% Processor Time”和“Memory\Available MBytes”以及自定义性能计数器。当我保存并启动它时,一切似乎都正常工作。
当我让它运行一段时间然后重新启动数据收集器并打开 BLG 文件时,它正确显示了所有内置计数器,但我的自定义计数器不可用。它们未列在“可用计数器”列表中。为什么 perfmon 不能选择我的自定义计数器?
我们发现了问题。我创建了新的计数器并将它们添加到 PerfMon UI 中的现有数据收集器集中,但该应用程序实际上还没有创建任何实例。所以我添加的计数器被定义为“\MyApp:Perf\*”而不是“\MyApp:Perf( )\ ”。
现在该应用程序已经记录了一段时间的数据,我删除并重新添加了计数器,这次它们工作了。我很确定,如果我使用 logman 创建明确指定“\MyApp:Perf( )\ ”的数据收集器集,那也可以。