#!/usr/bin/env python # This is monitoring plugin for riak Developer's website: http://wiki.basho.com/Riak.html # sample config in /etc/munin/plugin-conf.d/riak # # [riak_*] # env.RIAK_URL http://127.0.0.1:8091/stats # any questions to fygrave at o0o dot nu # # This plugin monitors put/get rate at each node. # import urllib2 import sys import os try: import json except ImportError: import simplejson as json names = ["node_gets_total", "node_puts_total"] def getServerStatus(): raw = urllib2.urlopen( os.environ.get('RIAK_URL', "http://127.0.0.1:8097/stats") ).read() return json.loads( raw ) def doData(): for name in names: print name + ".value " + str( getServerStatus()[name] ) def doConfig(): print "graph_title Riak puts and gets" print "graph_args --base 1000 -l 0" print "graph_vlabel puts/gets" print "graph_category other" for name in names: print name + ".label " + name print name + ".min 0" print name + ".type COUNTER" print name + ".max 500000" print name + "draw LINE1" if __name__ == "__main__": if len(sys.argv) > 1 and sys.argv[1] == "config": doConfig() else: doData()