Information:

Environment

AppMon .NET agent

 

Symptoms

Perfcounter measures are not visible (including GC metrics for the monitored application)

Solution

Prerequisites to make perfcounter access work:

 

Different perfcounters & fix for access:

  • basically all perfcounters can be accessed (add measure in system profile and add counter group and value) - you will get the "overall processes" measure, comparable to "no splittings".
  • for some metrics not the "overall" measure is required, but the one specifically for the monitored process. PerfMon offers some kind of splitting, where the process index ("perfcounter instance") first needs to be looked up. This is done via another perfcounter. Actually this lookup behavior could be changed - see http://blogs.technet.com/b/askperf/archive/2010/03/30/perfmon-identifying-processes-by-pid-instead-of-instance.aspx. The .NET agent only supports the way via indexes (#1,#2, etc.), so for the in this article mentioned registry value, only the default "1" is supported by DT AppMon.
  • Windows delivered perfcounters are localized on non-English installations (for the "native installation language" - eg. a Spanish Windows with English language pack is also affected - can be easily checked on looking at the perfcounter names). The debug flag debugEnablePerfCounterTranslationNative is needed on those hosts. Renaming the perfcounter name in the measure would only work for above mentioned "overall" measures - the lookup measure name is hard-coded in the agent, but is changed with this flag also.
  • there can be potential perfcounter issues with the .NET CLR - see https://support.microsoft.com/en-us/kb/922775