2727
2828def 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):
139141sys .excepthook = excepthook
140142
141143if __name__ == '__main__' :
142- main (args . config )
144+ main ()
0 commit comments