#!/srv/newsblur/venv/newsblur3/bin/python ## GENERATED FILE - DO NOT EDIT import urllib2 import sys import os try: import json except ImportError: import simplejson as json def getServerStatus(): host = os.environ.get("host", "127.0.0.1") port = 28017 url = "http://%s:%d/_status" % (host, port) req = urllib2.Request(url) user = os.environ.get("user") password = os.environ.get("password") if user and password: passwdmngr = urllib2.HTTPPasswordMgrWithDefaultRealm() passwdmngr.add_password(None, 'http://%s:%d' % (host, port), user, password) authhandler = urllib2.HTTPDigestAuthHandler(passwdmngr) opener = urllib2.build_opener(authhandler) urllib2.install_opener(opener) raw = urllib2.urlopen(req).read() return json.loads( raw )["serverStatus"] def doData(): ss = getServerStatus() for k,v in ss["opcounters"].iteritems(): print( str(k) + ".value " + str(v) ) def doConfig(): print "graph_title MongoDB ops" print "graph_args --base 1000 -l 0" print "graph_vlabel ops / ${graph_period}" print "graph_category MongoDB" print "graph_total total" for k in getServerStatus()["opcounters"]: print k + ".label " + k print k + ".min 0" print k + ".type COUNTER" print k + ".max 500000" print k + ".draw LINE1" if __name__ == "__main__": if len(sys.argv) > 1 and sys.argv[1] == "config": doConfig() else: doData()