#!/usr/bin/env python # # Plugin to monitor Apache Qpid # - graph ingest rate (bytes/sec) of queue(s) specified in config # # Parameters understood: # # queues (required) - space separated list of queues to display (regex allowed) # # Made by Jimmy Jones (jimmyjones2 AT gmx DOT co DOT uk) # # Licence: GPLv2 # import re import sys import os from qmf.console import Session if not "queues" in os.environ: print >> sys.stderr, "Missing env.queues in config" sys.exit(-1) output_queue = [] sess = Session() broker = sess.addBroker() queues = sess.getObjects(_class="queue", _package="org.apache.qpid.broker") for q in queues: for match in os.environ["queues"].split(" "): if re.match(match, q.name): output_queue.append(re.sub('[^a-zA-Z0-9_]', '_', q.name)) if len(sys.argv) > 1 and sys.argv[1] == "config": print "graph_category webserver"; print "graph_title Enqueue data rate"; print "graph_vlabel bytes/second" for queue in output_queue: print "%s.label %s" % (queue, queue) print "%s.min 0" % queue print "%s.type COUNTER" % queue else: for q in queues: qname = re.sub('[^a-zA-Z0-9_]', '_', q.name) if qname in output_queue: print "%s.value %u" % (qname, q.byteTotalEnqueues) sess.delBroker(broker)