File: //proc/self/root/lib/python2.7/site-packages/lap/loop.py
#!/usr/bin/python
import json
import redis
import socket
socket.setdefaulttimeout(10)
def __run__(params):
try:
account = params.get('account')
r = redis.Redis(host=params.get('host'), port=params.get('port'), db=params.get('db'))
monitoring = ('doris::status::%s') % account
data = json.loads(r.get(monitoring))
result = []
perfdata = []
status = 0
for account, ttd in data.iteritems():
result.append("time_to_delivery_%s=%s" % (account, ttd))
if 'Error' in ttd: status += 1
if status == 0:
return [0, 'OK: All messages delivered successful', "|".join(perfdata)]
else:
return [2, 'CRITICAL: %i of %i with issues' % (status, len(data)), "|".join(perfdata)]
except socket.timeout:
return [2, 'CRITICAL: Socket timeout']
except socket.gaierror:
return [2, 'CRITICAL: Unable to resolve domain']
except Exception, e:
return [2, 'CRITICAL: %s' % repr(e)]
else:
return [0, "OK"]