Win32::PerfMon is unable to enum objects with multiple instances

I’ve been looking for some easy ways to enumerate all of the available performance counters on a Win32 platform programatically.

Rather than trawl through the PerfMon counter GUI, or regress back into the millions of raw counters available via WMI, I was looking for a solution somewhere in between.

The ActiveState version of Perl has a Win32::PerfMon [...]

Chasing symptoms, not cause

Any job in which you need to ‘fix’ something requires you to correctly analyze the root cause. Treat just the symptoms and you’ll find yourself on the never-get-fixed roundabout …

Performance tuning fits this profile neatly. In an array of available metrics, how do you avoid chasing the symptoms and never identifying root cause?