munin-contrib/plugins/other/foldingathome_activecpu

69 lines
1.7 KiB
Python
Executable File

#!/usr/bin/env python
# Written by Bertrand Grelot
# requires python-beautifulsoup
import os
import re
import sys
import urllib
from BeautifulSoup import BeautifulSoup
url = 'http://fah-web.stanford.edu/cgi-bin/main.py?qtype=osstats'
code = os.environ.get('code', sys.argv[0][(sys.argv[0].rfind('_') + 1):])
if code == None: sys.exit(1)
if len(sys.argv) == 2 and sys.argv[1] == "autoconf":
print "yes"
elif len(sys.argv) == 2 and sys.argv[1] == "config":
print 'graph_title Active CPU in FoldingAtHome project'
print 'graph_vlabel Systems'
print 'graph_category htc'
print 'windows.label Windows'
print 'ppc.label MacOS/PowerPC'
print 'intel.label MacOS/Intel'
print 'linux.label Linux'
print 'ati.label ATI_gpu'
print 'nvidia.label NVIDIA_gpu'
print 'ps3.label Playstation3'
print 'graph_args --base 1000 -l 0'
else:
u = urllib.urlopen(url)
soup = BeautifulSoup(u)
u.close()
l=[]
i=0
table = soup.find('table')
rows = table.findAll('tr', bgcolor="#f5f5dc")
for tr in rows:
cols = tr.findAll('td')
l.append([])
for td in cols:
l[i].append(td.find(text=True))
i+=1
WIN=l[0][3]
MPPC=l[1][3]
MINTEL=l[2][3]
LINUX=l[3][3]
ATI=l[4][3]
NVIDIA=l[5][3]
PS3=l[6][3]
print 'windows.value %s' % WIN
print 'ppc.value %s' % MPPC
print 'intel.value %s' % MINTEL
print 'linux.value %s' % LINUX
print 'ati.value %s' % ATI
print 'nvidia.value %s' % NVIDIA
print 'ps3.value %s' % PS3