Reading the Performance Monitor from Python

Python exposes the ability to read Performance Monitor information from the win32pdh and win32pdhutil modules. These modules use a Microsoft API to access the Performance Monitor known as the Performance Data Helper, or PDH, hence the name of the Python modules.

Browsing for counters

To get a feel for these Python modules, let’s start with a demonstration of displaying a dialog for the user to browse and select the counters on this or any machine.

The win32pdhutil module provides a function browse() that displays such a dialog. As the user selects the Add button in the dialog, a function you provide is called with the selected counter. This callback function is supplied as a parameter to win32pdhutil.browse() . The first step is to provide the callback function, which takes a single parameter—the name of the counter. Our example simply prints this name.

Thus, the callback function can be defined as follows:

>>> def CounterCallback( counter ):
...     print "Counter is", counter
...     
>>>

You can display the dialog by importing the win32pdhutil module and calling the browse() function passing the callback:

>>> import win32pdhutil
>>> win32pdhutil.browse(CounterCallback)

A dialog is presented that allows you to select all the counters available on the system and even other systems! Select the Add button and your function is called, printing the selected counter. Figure 18.1 shows the code running under Python-Win, just after selecting the Add button. ...

Get Python Programming On Win32 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.