munin-contrib/plugins/mongodb/mongo_btree

73 lines
1.4 KiB
Python
Executable File

#!/usr/bin/env python
"""
=head1 NAME
mongo_btree - MongoDB btree Plugin
=head1 APPLICABLE SYSTEMS
Works until MongoDB 2.7. The "indexCounters" field was removed in 2.8 version.
=head1 CONFIGURATION
[mongo_btree]
env.MONGO_DB_URI mongodb://user:password@host:port/dbname
=head1 AUTHOR
Original script there : https://github.com/comerford/mongo-munin
Doc added by Alban Espie-Guillon <alban.espie@alterway.fr>
=cut
"""
import urllib2
import sys
try:
import json
except ImportError:
import simplejson as json
def getServerStatus():
raw = urllib2.urlopen( "http://127.0.0.1:28017/_status" ).read()
return json.loads( raw )["serverStatus"]
def get():
status = getServerStatus()
if status["version"] >= "2.4.0":
return getServerStatus()["indexCounters"]
else:
return getServerStatus()["indexCounters"]["btree"]
def doData():
for k,v in get().iteritems():
print( str(k) + ".value " + str(int(v)) )
def doConfig():
print "graph_title MongoDB btree stats"
print "graph_args --base 1000 -l 0"
print "graph_vlabel mb ${graph_period}"
print "graph_category db"
for k in get():
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()