Skip to content

Commit 455bf5a

Browse files
committed
improve debugging main method()
arguments can now be provided on the command line
1 parent 1974800 commit 455bf5a

1 file changed

Lines changed: 45 additions & 15 deletions

File tree

rabbit/python_modules/rabbitmq.py

Lines changed: 45 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
#!/usr/bin/python2.4
2-
import sys
3-
import os
2+
3+
import itertools
44
import json
5-
import urllib2
5+
import optparse
6+
import os
7+
import sys
8+
import threading
69
import time
10+
import urllib2
11+
712
from string import Template
8-
import itertools
9-
import threading
1013

1114
global url, descriptors, last_update, vhost, username, password, url_template, result, result_dict, keyToPath
1215

@@ -295,17 +298,44 @@ def buildNodeDescriptors():
295298

296299
def metric_cleanup():
297300
pass
298-
299301

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)
304318
### 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)
307323
result = refreshStats(stats = ('queues', 'nodes'), vhosts = ('/'))
308324
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

Comments
 (0)