Is there a specification for parsing the names of WMI performance counters? Standard names look like ‘\Xxxx\Yy yy\Zzzz zzz’, but we are seeing some custom names that look like ‘\Aaaa aaa \Bb bb BLAH(bbb\bbbb)\Ccc ccc ccc’, i.e., trailing spaces, and embedded parenthetical elements with embedded ‘\’s. Is there a spec that describes what is allowable in these names?
Here are some typical standard counter names:
\Process(Idle)\% Processor Time
\Process(System)\% Processor Time
\LogicalDisk(HarddiskVolume1)\Avg. Disk Bytes/Transfer
\LogicalDisk(C:)\Avg. Disk Bytes/Transfer
\LogicalDisk(_Total)\Avg. Disk Bytes/Transfer
\LogicalDisk(HarddiskVolume1)\Avg. Disk Bytes/Read
\LogicalDisk(C:)\Avg. Disk Bytes/Read
\LogicalDisk(_Total)\Avg. Disk Bytes/Read
\LogicalDisk(HarddiskVolume1)\Avg. Disk Bytes/Write
\Thread(w3wp/7)\Priority Current
\Thread(w3wp/8)\Priority Current
\Thread(explorer/7)\Priority Current
\MSMQ Outgoing HTTP Session(*)\Outgoing HTTP Bytes
\MSMQ Queue(os:zyxwvut1dv\private$\profilestats_submissions_dev_current_1)\Messages in Queue
\Per Processor Network Interface Card Activity(1, Intel(R) PRO-1000 MT Network Connection)\Received Packets/sec
\Netlogon(\\ZY2XWVUT1.app5000.online)\Semaphore Waiters
Here are some custom counter names:
\Customer App (current) DEV(netmix\auth.asmx\authtkts)\ErrorCode.InvalidState Count
\Customer App (current) DEV(lorem\ipsem.asmx\rdunlcks)\ErrorCode.InvalidState Count
\Customer App (current) DEV(netmix\legal.asmx\getvalidverid)\ErrorCode.OutOfRange Count
\Customer App (current) DEV(lorem\acq.asmx\submit)\ErrorCode.OutOfRange Count
\Customer App (current) DEV(netmix\milestones.asmx\getmilestones)\ErrorCode.OutOfRange Count
\Customer App (current) AUTH(*)\ErrorCode.UnknownError Count
Note:
I am not looking for just a regex that will match the given strings above. I would like to have the reference to the documented spec that defines this.
Names are of the form \A\B
References (check the ‘name’ subsection of each) :