ganglia/gmond_python_modules — pull request #110 by diyan (2013-06-07 17:26:42+00:00)
Title:  Gmond module for collect Windows Perfomance Counters data. Proof of concept

Please consider accept this pool request.

Since this is very first pull request I will just put full descripton from README here:

WARNING: This module is just proof-of-concept, it does not work.

"win_perfcounter" uses ctypes and Windows API's Performance Data Helper functions in order to get perfomance counter data.

http://msdn.microsoft.com/en-us/library/windows/desktop/aa373214%28v=vs.85%29.aspx

Module is self-contained and does not require any third-party Python packages such as PyWin32 or WMI.

What was done:
- Implementation were tested on Windows Server 2008 R2 Standard 64 bit
- Gmond/Cygwin 3.1.7 build for Windows was downloaded from http://tapir.sajinet.com.pe/ganglia/ganglia-3.1.7-bin.zip
- Since Gmond build were linked with Python 2.5 module were developed for v2.5
- Cygwin Python 2.5 was downloaded from http://mirror.mcs.anl.gov/cygwin/release/python/python-2.5.5-1.tar.bz2
- Windows Stats were used as baseline (https://bitbucket.org/mixmastamyk/winstats)
- Windows Stats did not work in Cygwin environment, so ctypes was monkey patched in order to do that
- ctypes monkey patch approach was taken from pyglet library (https://github.com/adamlwgriffiths/Pyglet/blob/master/pyglet/__init__.py#L221)
- gmond are able to load this module on Windows server
- Python module are able to read perfomance data from two different counters

TODO:
- metric_init method should return descriptors structure
- basically we have to implement all the glue code between win_perfcounter.pyconf and gmond API
- write a set of tests