Querying Windows Performance Counters
In addition to its built-in metrics, uberAgent can collect data from Windows performance counters.
As with all other uberAgent metrics, performance counters need to be associated with a timer that defines how often data is collected. Performance counter metrics can be added to an existing timer or placed in a new timer section. See the configuration docs and the performance counter metrics documentation for details.
In the following example, we configured a new timer that collects data every 60 seconds. We added two performance counters to the timer that collect .NET information for the entire machine and for a specific process (PowerShell). We also added a performance counter that collects the system’s uptime. Finally, we added a performance counter that collects the handle count for every running process. The result looks like this:
Name = Performance counter timer
Interval = 60000
Perf counter = \.NET CLR Memory(_Global_)\# Gen 0 Collections
Perf counter = \.NET CLR Memory(powershell)\# Gen 0 Collections
Perf counter = \System\System Up Time
Perf counter = \Process(*)\Handle Count
Most performance counter paths have one of the following two formats:
As you can see, some counter paths have instance names (
powershell in one of the examples above) while others do not.
See Microsoft Docs for more information.
uberAgent can use the wildcard characters
? in the instance section of performance counter paths.
To find the paths for your counters you can use the following method.
Add the desired counters to Performance Monitor. Then right-click the graph section of Perfmon’s window, select Save settings as…, save as web page (
*.html) and locate the counter path in the HTML code. Perfmon saves the counter path in language-neutral format, which is what is uberAgent needs.
Some tools require localized performance counter paths. This becomes a problem if you configure paths for machines with different language versions of Windows.
With uberAgent, you can configure localized or language-neutral performance counter paths. The performance counter path is always sent to the backend in English.