Projet

Général

Profil

Paste
Télécharger au format
Statistiques
| Branche: | Révision:

root / plugins / mongodb / mongo_btree @ c6f88968

Historique | Voir | Annoter | Télécharger (1,42 ko)

1
#!/usr/bin/env python
2
"""
3
=head1 NAME
4

    
5
mongo_btree - MongoDB btree Plugin
6

    
7
=head1 APPLICABLE SYSTEMS
8

    
9
Works until MongoDB 2.7. The "indexCounters" field was removed in 2.8 version.
10

    
11
=head1 CONFIGURATION
12

    
13
    [mongo_btree]
14
    env.MONGO_DB_URI mongodb://user:password@host:port/dbname
15

    
16
=head1 AUTHOR
17

    
18
Original script there : https://github.com/comerford/mongo-munin
19

    
20
Doc added by Alban Espie-Guillon <alban.espie@alterway.fr>
21

    
22
=cut
23
"""
24

    
25
import urllib2
26
import sys
27

    
28
try:
29
    import json
30
except ImportError:
31
    import simplejson as json
32

    
33

    
34
def getServerStatus():
35
    raw = urllib2.urlopen( "http://127.0.0.1:28017/_status" ).read()
36
    return json.loads( raw )["serverStatus"]
37

    
38
def get():
39
    status = getServerStatus()
40
    if status["version"] >= "2.4.0":
41
        return getServerStatus()["indexCounters"]
42
    else:
43
        return getServerStatus()["indexCounters"]["btree"]
44

    
45
def doData():
46
    for k,v in get().iteritems():
47
        print( str(k) + ".value " + str(int(v)) )
48

    
49
def doConfig():
50

    
51
    print "graph_title MongoDB btree stats"
52
    print "graph_args --base 1000 -l 0"
53
    print "graph_vlabel mb ${graph_period}"
54
    print "graph_category db"
55

    
56
    for k in get():
57
        print k + ".label " + k
58
        print k + ".min 0"
59
        print k + ".type COUNTER"
60
        print k + ".max 500000"
61
        print k + ".draw LINE1"
62

    
63

    
64

    
65

    
66

    
67

    
68
if __name__ == "__main__":
69
    if len(sys.argv) > 1 and sys.argv[1] == "config":
70
        doConfig()
71
    else:
72
        doData()