#!/usr/bin/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 memory allocation on each node. # import urllib2 import sys import os try: import json except ImportError: import simplejson as json names = ["memory_total","memory_processes","memory_processes_used","memory_system","memory_atom","memory_atom_used","memory_binary","memory_code","memory_ets"] 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 memory" print "graph_args --base 1000 -l 0" print "graph_vlabel memory" print "graph_category other" for name in names: print name + ".label " + name print name + ".type GAUGE" print name + "draw LINE1" if __name__ == "__main__": if len(sys.argv) > 1 and sys.argv[1] == "config": doConfig() else: doData()