File: //lib/python2.7/site-packages/lap/queue_hotqueue.py
import sys
import imp
import platform
import socket
socket.setdefaulttimeout(5)
def __run__(params):
try:
import redis
except (ImportError, IOError):
return [2, "CRITICAL - Error: Redis python client not found. Please install 'python-redis'"]
try:
host = params.get("host", "localhost")
port = int(params.get("port", "6379"))
db = int(params.get("db", "0"))
passwd = params.get("passwd")
queue = params.get("queue")
check_workers = params.get("check_workers", "true")
maxjobs_c = int(params.get("maxjobs", "100"))
maxjobs_w = maxjobs_c * 0.7
except Exception, e:
return [2, "CRITICAL - Error: %s" % repr(e)]
try:
r = redis.Redis(host=host, port=port, db=db, password=passwd)
except Exception, e:
return [2, "CRITICAL - Error: %s" % repr(e)]
if params.get("queue") == "all":
hotqueue_len = sum([ r.llen(key) for key in r.keys("hotqueue:*") ])
else:
hotqueue_len = r.llen("hotqueue:%s" % queue)
if hotqueue_len >= maxjobs_c:
return [2, "CRITICAL - Queue '%s' has %s pending jobs" % (queue, hotqueue_len)]
if hotqueue_len >= maxjobs_w:
return [1, "WARNING - Queue '%s' has %s pending jobs" % (queue, hotqueue_len)]
return [0, "OK - Queue '%s' has %s pending jobs" % (queue, hotqueue_len)]