]>
Commit | Line | Data |
---|---|---|
bdc14d31 MO |
1 | #!/usr/bin/python2 |
2 | import memcache | |
3 | import argparse | |
4 | import json | |
5 | import sys | |
6 | import os | |
7 | import codecs | |
8 | ||
9 | def argsv_config(): | |
10 | parser = argparse.ArgumentParser() | |
11 | parser.add_argument('-getstats', action='store_true',default=False,dest='getstats', help='Get statistics from memcached server.') | |
12 | parser.add_argument('-lld', action='store_true',default=False,dest='lld', help='Get statistics from memcached server.') | |
13 | parser.add_argument('-memcacheserver', action='store',default="127.0.0.1:11211",dest='memcacheserver', help='memcacheservernavn:portnr, default is 127.0.0.1:11211.') | |
14 | argvs = parser.parse_args() | |
15 | return argvs | |
16 | ||
17 | if __name__ == '__main__': | |
18 | argvs = argsv_config() | |
19 | metrics = [] | |
20 | ||
21 | # ############################### | |
22 | # Connecting to memcache server | |
23 | # ############################### | |
24 | try: | |
25 | mc = memcache.Client([argvs.memcacheserver],debug=1) | |
26 | except Exception as e: | |
27 | print "Error with connecting memcache server: {0}".format(str(e)) | |
28 | sys.exit(1) | |
29 | ||
30 | ||
31 | # ############################### | |
32 | # Sending metrics to Zabbix | |
33 | # ############################### | |
34 | ||
35 | if argvs.getstats == True: | |
36 | stats = mc.get_stats() | |
37 | jsondata = stats[0][1] | |
38 | ||
39 | print(json.dumps(jsondata)) | |
40 | ||
41 | # ############################### | |
42 | # low-level discovery for Zabbix | |
43 | # ############################### | |
44 | ||
45 | elif argvs.lld == True: | |
46 | stats = mc.get_stats() | |
47 | jsondata = stats[0][1] | |
48 | for key in jsondata.keys(): | |
49 | if not(key == "version" or key == "libevent"): | |
50 | tmpdict = {"{#MEMCACHE}": "memcache","{#METRIC}":key} | |
51 | metrics.append(tmpdict) | |
52 | llddata = {"data":metrics} | |
53 | print(json.dumps(llddata)) | |
54 |