#!/usr/bin/python

from graphit.client import GraphITWatcher

class Watcher(GraphITWatcher):
	
	__name__ = 'Load average'
	__version__ = '1.0'
	__wid__ = 'loadavg'
	__author__ = 'Antoine Millet <antoine@inaps.org>'
	
	def init_options(self, op):
		op.add_option('--avgs', 
			default=['yes', 'no', 'no'],
			nargs=3,
			choices=('yes', 'no'),
			help=('Submit system\'s load average for the past 1, 5 and '
			'15 minutes. "yes" or "no" for each value, default to '
			'"yes no no".')
		)
	
	def run(self):
		loadavg = open('/proc/loadavg', 'r').readline()
		loadavg = loadavg.split()
		
		if self._options.avgs[0] == 'yes':
			self.submit('1m', float(loadavg[0]), unit='load')
		if self._options.avgs[1] == 'yes':
			self.submit('5m', float(loadavg[1]), unit='load')
		if self._options.avgs[2] == 'yes':
			self.submit('15m', float(loadavg[2]), unit='load')

if __name__ == '__main__':
	Watcher()
