File: //lib/python2.7/site-packages/lap/uwsgi.py
import yaml
import socket
import json
def __run__(params):
try:
host = params.get("host", "127.0.0.1")
port = int(params.get("port", "1717"))
thresholds = yaml.load(params.get('thresholds'))
except Exception, e:
return [2, "CRITICAL - Error %s" % repr(e)]
ex = 0
req = 0
socket.setdefaulttimeout(5)
s = socket.socket()
s.connect((host, port))
data = s.recv(20480)
if data:
data = json.loads(data)
for worker in data['workers']:
ex += int(worker.get('exceptions'))
req += int(worker.get('requests'))
perfdata = { 'exceptions': ex, 'requests': req }
perfdata = '|'.join([ '%s=%s' % ( x, perfdata[x] ) for x in perfdata ] )
if ex > thresholds['critical']:
return [2, "CRITICAL - Exceptions %d" % ex ]
elif ex > thresholds['warning']:
return [1, "WARNING - Exceptions %d" % ex]
else:
return [0, "OK - Exceptions %d " % ex, perfdata ]
else:
return [2, "CRITICAL - Error %s" % repr(e)]