forked from erh/mongo-munin
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathmongo_conn
executable file
·57 lines (44 loc) · 1.3 KB
/
mongo_conn
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/usr/bin/env python
## GENERATED FILE - DO NOT EDIT
#%# family=auto
#%# capabilities=autoconf
import urllib2
import sys
import os
try:
import json
except ImportError:
import simplejson as json
host = os.environ.get('HOST', '127.0.0.1')
port = os.environ.get('PORT', 28017)
def getServerRequest(action):
url = "http://%s:%s/%s" % (host, port, action)
req = urllib2.Request(url)
raw = urllib2.urlopen(req).read()
return json.loads( raw )
def getServerStatus():
return getServerRequest('_status')['serverStatus']
def doAutoConf():
try:
raw = urllib2.urlopen( "http://%s:%d/_status" % (host, port) ).read()
print "yes"
return True
except urllib2.URLError as detail:
print "no (", detail, ")"
return False
name = "connections"
def doData():
print name + ".value " + str( getServerStatus()["connections"]["current"] )
def doConfig():
print "graph_title MongoDB current connections"
print "graph_args --base 1000 -l 0"
print "graph_vlabel connections"
print "graph_category MongoDB"
print name + ".label " + name
if __name__ == "__main__":
if len(sys.argv) > 1 and sys.argv[1] == "autoconf":
doAutoConf()
elif len(sys.argv) > 1 and sys.argv[1] == "config":
doConfig()
else:
doData()