]> git.uio.no Git - uio-zabbix.git/blame - zabbix_memcached_info.py
GID-773 - script for memcached monitoring is added.
[uio-zabbix.git] / zabbix_memcached_info.py
CommitLineData
bdc14d31
MO
1#!/usr/bin/python2
2import memcache
3import argparse
4import json
5import sys
6import os
7import codecs
8
9def 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
17if __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