|
1 | 1 | #!/usr/bin/python2.4 |
2 | | -import sys |
3 | | -import os |
| 2 | + |
| 3 | +import itertools |
4 | 4 | import json |
5 | | -import urllib2 |
| 5 | +import optparse |
| 6 | +import os |
| 7 | +import sys |
| 8 | +import threading |
6 | 9 | import time |
| 10 | +import urllib2 |
| 11 | + |
7 | 12 | from string import Template |
8 | | -import itertools |
9 | | -import threading |
10 | 13 |
|
11 | 14 | global url, descriptors, last_update, vhost, username, password, url_template, result, result_dict, keyToPath |
12 | 15 |
|
@@ -295,17 +298,44 @@ def buildNodeDescriptors(): |
295 | 298 |
|
296 | 299 | def metric_cleanup(): |
297 | 300 | pass |
298 | | - |
299 | 301 |
|
300 | | -if __name__ == "__main__": |
301 | | - url = 'http://%s:%s@localhost:15672/api/$stats' % (username, password) |
302 | | - url_template = Template(url) |
303 | | - print "url_template is ", url_template |
| 302 | + |
| 303 | +def parse_args(argv): |
| 304 | + parser = optparse.OptionParser() |
| 305 | + parser.add_option('--admin-host', |
| 306 | + action='store', dest='admin_host', default='localhost', |
| 307 | + help='') |
| 308 | + parser.add_option('--admin-port', |
| 309 | + action='store', dest='admin_port', default=15672, |
| 310 | + help='') |
| 311 | + |
| 312 | + return parser.parse_args(argv) |
| 313 | + |
| 314 | + |
| 315 | +def main(argv): |
| 316 | + """ used for testing """ |
| 317 | + (opts, args) = parse_args(argv) |
304 | 318 | ### in config files we use '/' in vhosts names but we should convert '/' to '-' when calculating a metric |
305 | | - parameters = {"vhost":"/", "username":"guest","password":"guest", "metric_group":"rabbitmq", "zero_rates_when_idle": "yes"} |
306 | | - metric_init(parameters) |
| 319 | + parameters = {"vhost":"/", "username":"guest","password":"guest", "metric_group":"rabbitmq", |
| 320 | + "zero_rates_when_idle": "yes", |
| 321 | + "host": opts.admin_host, "port": opts.admin_port} |
| 322 | + descriptors = metric_init(parameters) |
307 | 323 | result = refreshStats(stats = ('queues', 'nodes'), vhosts = ('/')) |
308 | 324 | print '***'*20 |
309 | | - getQueueStat('rmq_backing_queue_ack_egress_rate___nfl_client___-') |
310 | | - getNodeStat('rmq_disk_free___rmqone@inrmq01d1___-') |
311 | | - getNodeStat('rmq_mem_used___rmqone@inrmq01d1___-') |
| 325 | + try: |
| 326 | + while True: |
| 327 | + for d in descriptors: |
| 328 | + v = d['call_back'](d['name']) |
| 329 | + if v is None: |
| 330 | + print 'got None for %s' % d['name'] |
| 331 | + else: |
| 332 | + print 'value for %s is %r' % (d['name'], v) |
| 333 | + time.sleep(5) |
| 334 | + print '----------------------------' |
| 335 | + except KeyboardInterrupt: |
| 336 | + print 'KeyboardInterrupt, shutting down...' |
| 337 | + metric_cleanup() |
| 338 | + |
| 339 | +if __name__ == "__main__": |
| 340 | + main(sys.argv[1:]) |
| 341 | + |
0 commit comments