Skip to content

Commit a157338

Browse files
committed
change conf format
1 parent 1571601 commit a157338

File tree

4 files changed

+68
-40
lines changed

4 files changed

+68
-40
lines changed

README.md

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -27,18 +27,31 @@ Example configuration file:
2727
"graphite_servers": [{
2828
"host": "localhost",
2929
"port": 2003,
30-
"prefix": "mycustomprefix.subprefix"
30+
"prefix": "mycustomprefix.rabbitmq"
3131
}],
32-
"rabbitmq_servers": [{
33-
"host": "localhost",
34-
"port": 15672,
35-
"username": "guest",
36-
"password": "guest",
37-
"vhost": "/",
38-
"queues": [
39-
"test", "test2"
40-
]
41-
}]
32+
"rabbitmq_clusters": [{
33+
"cluster_name": "DC1",
34+
"host": "localhost",
35+
"port": 15672,
36+
"username": "guest",
37+
"password": "guest",
38+
"vhost": "/",
39+
"queues": [
40+
"test", "test2"
41+
]
42+
},
43+
{
44+
"cluster_name": "DC2",
45+
"host": "localhost",
46+
"port": 15672,
47+
"username": "guest",
48+
"password": "guest",
49+
"vhost": "/",
50+
"queues": [
51+
"test", "test2"
52+
]
53+
}
54+
]
4255
}
4356
```
4457

conf/rabbitmq-metrics-to-graphite.json

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,29 @@
22
"graphite_servers": [{
33
"host": "localhost",
44
"port": 2003,
5-
"prefix": "mycustomprefix.subprefix"
5+
"prefix": "mycustomprefix.rabbitmq"
66
}],
7-
"rabbitmq_servers": [{
8-
"host": "localhost",
9-
"port": 15672,
10-
"username": "guest",
11-
"password": "guest",
12-
"vhost": "/",
13-
"queues": [
14-
"test", "test2"
15-
]
16-
}]
7+
"rabbitmq_clusters": [{
8+
"cluster_name": "DC1",
9+
"host": "localhost",
10+
"port": 15672,
11+
"username": "guest",
12+
"password": "guest",
13+
"vhost": "/",
14+
"queues": [
15+
"test", "test2"
16+
]
17+
},
18+
{
19+
"cluster_name": "DC2",
20+
"host": "localhost",
21+
"port": 15672,
22+
"username": "guest",
23+
"password": "guest",
24+
"vhost": "/",
25+
"queues": [
26+
"test", "test2"
27+
]
28+
}
29+
]
1730
}

rabbitmq_metrics_to_graphite/__init__.py

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727

2828
def process(rabbitmq, graphite):
2929
logging.debug(
30-
"Processing RabbitMQ: {} on graphite {}".format(rabbitmq, graphite))
30+
"Processing RabbitMQ: {} on graphite {}".format(rabbitmq["cluster_name"], graphite["host"]))
3131
starttime = time.time()
3232
sock = _socket_for_host_port(graphite["host"], graphite["port"])
3333
overview = rabbitClient.get_overview()
@@ -36,16 +36,16 @@ def process(rabbitmq, graphite):
3636
['channels', 'connections', 'consumers', 'exchanges', 'queues']:
3737
if m_instance in overview['object_totals']:
3838
_send_graphite_metric(
39-
sock, graphite['prefix'], m_instance, overview['object_totals'][m_instance])
39+
sock, graphite, rabbitmq, m_instance, overview['object_totals'][m_instance])
4040

4141
# Aggregated Queue message stats
4242
for m_instance in \
4343
['messages', 'messages_ready', 'messages_unacknowledged']:
4444
if m_instance in overview['queue_totals']:
45-
_send_graphite_metric(sock, graphite['prefix'], 'queue_total-{}-count'.format(
45+
_send_graphite_metric(sock, graphite, rabbitmq, 'queue_total-{}-count'.format(
4646
m_instance), overview['queue_totals'][m_instance])
4747

48-
_send_graphite_metric(sock, graphite['prefix'], 'queue_total-{}-rate'.format(m_instance), overview['queue_totals']['{}_details'.format(
48+
_send_graphite_metric(sock, graphite, rabbitmq, 'queue_total-{}-rate'.format(m_instance), overview['queue_totals']['{}_details'.format(
4949
m_instance)]
5050
['rate'])
5151

@@ -57,10 +57,10 @@ def process(rabbitmq, graphite):
5757
'redeliver', 'return_unroutable'
5858
]:
5959
if m_instance in overview['message_stats']:
60-
_send_graphite_metric(sock, graphite['prefix'], 'message_total-{}-count'.format(
60+
_send_graphite_metric(sock, graphite, rabbitmq, 'message_total-{}-count'.format(
6161
m_instance), overview['message_stats'][m_instance])
6262

63-
_send_graphite_metric(sock, graphite['prefix'], 'message_total-{}-rate'.format(m_instance), overview['message_stats']['{}_details'.format(m_instance)]
63+
_send_graphite_metric(sock, graphite, rabbitmq, 'message_total-{}-rate'.format(m_instance), overview['message_stats']['{}_details'.format(m_instance)]
6464
['rate'])
6565

6666
# Configurable per-queue message counts
@@ -79,18 +79,19 @@ def process(rabbitmq, graphite):
7979
# the consume message is not counted
8080
count = messages_detail[0]['message_count'] + 1
8181
_send_graphite_metric(
82-
sock, graphite['prefix'], 'msg_count-{}'.format(queue_name), count)
82+
sock, graphite, rabbitmq, 'msg_count-{}'.format(queue_name), count)
8383

8484
sock.close()
8585

8686
timediff = time.time() - starttime
87-
logging.info('All metrics sent in: {} sec'.format(round(timediff, 2)))
87+
logging.info('All metrics has been sent from RabbitMQ [{}] to Graphite [{}] in: {} sec'.format(
88+
rabbitmq["cluster_name"], graphite["host"], round(timediff, 2)))
8889

8990

90-
def _send_graphite_metric(sock, graphitePrefix, metricName, metricValue):
91+
def _send_graphite_metric(sock, graphite, rabbitmq, metricName, metricValue):
9192
now = time.time()
92-
metric = '{0}.{1} {2} {3}\n'.format(
93-
graphitePrefix, metricName, metricValue, now)
93+
metric = '{0}.{1}.{2} {3} {4}\n'.format(
94+
graphite["prefix"], rabbitmq["cluster_name"], metricName, metricValue, now)
9495
logging.debug("Sending metric: {}".format(metric))
9596
sock.sendall(metric)
9697

@@ -103,21 +104,22 @@ def _socket_for_host_port(host, port):
103104
return sock
104105

105106

106-
def main(configFilePath):
107+
def main():
107108

108109
global rabbitClient
109110
# load config file
111+
configFilePath = args.config
110112
if os.path.isfile(configFilePath):
111113
logging.debug('Processing config file {}'.format(configFilePath))
112114
with open(configFilePath) as configFile:
113115
conf = json.load(configFile)
114116
logging.debug('Graphite configuration: {}'.format(
115117
conf["graphite_servers"]))
116118
logging.debug('RabbitMQ configuration: {}'.format(
117-
conf["rabbitmq_servers"]))
118-
for rabbitmq in conf["rabbitmq_servers"]:
119+
conf["rabbitmq_clusters"]))
120+
for rabbitmq in conf["rabbitmq_clusters"]:
119121
logging.debug(
120-
'Working on rabbitmq server: {}'.format(rabbitmq['host']))
122+
'Working on Rabbitmq cluster: {}'.format(rabbitmq['cluster_name']))
121123
rabbitClient = Client('{}:{}'.format(
122124
rabbitmq['host'], rabbitmq['port']), rabbitmq['username'], rabbitmq['password'])
123125
for graphite in conf["graphite_servers"]:
@@ -139,4 +141,4 @@ def excepthook(type, value, tb):
139141
sys.excepthook = excepthook
140142

141143
if __name__ == '__main__':
142-
main(args.config)
144+
main()

setup.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ def read(fname):
88
def run_setup():
99
setup(
1010
name='rabbitmq-metrics-to-graphite',
11-
version='0.1',
11+
version='0.2',
1212
description='https://github.com/orachide/rabbitmq-metrics-to-graphite',
1313
keywords = 'RabbitMQ Graphite Metrics',
1414
url='https://github.com/orachide/rabbitmq-metrics-to-graphite',
15-
download_url = 'https://github.com/orachide/rabbitmq-metrics-to-graphite/archive/0.1.tar.gz',
15+
download_url = 'https://github.com/orachide/rabbitmq-metrics-to-graphite/archive/0.2.tar.gz',
1616
author='Rachide Ouattara',
1717
author_email='[email protected]',
1818
license='BSD',

0 commit comments

Comments
 (0)