[rabbitmq-discuss] Management API and monitoring

Simon MacMullen simon at rabbitmq.com
Fri Oct 25 09:59:29 BST 2013


On 24/10/2013 5:48PM, Jason McIntosh wrote:
> The question I have is on the queue - I'd like to be able to monitor
> when the queue was last "accessed" for message publishes.

Probably your best bet is to look at the inbound message rate from the 
mgmt API.

> I was looking
> at the idle_since but it looks like the date there gets reset anytime
> you even look at the list of queues.

That reports on the last time anything contacted the queue to wake it up 
- this would include publishing, consuming, (re)declaring, or listing it 
with rabbitmqctl (not mgmt).

> One interesting thing I noticed while working on monitoring.
>   rabbitmqctl does not seem like a very efficient mechanism for use by
> monitoring tools.  I started off using ctl to get various queue and
> server information and found that it was extremely expensive to call
> repeatedly.  I tried using some python scripts to hit the management API
> and my CPU load went down by about 70%.  Not sure if other people have
> seem the same using rabbitmqctl?

This is expected. rabbitmqctl and the management API have quite 
different designs - in brief the management API maintains a database of 
current stats for everything that's going on, based on stats events 
emitted by queues, channels and connections. On the other hand when 
rabbitmqctl wants to know something it just goes and asks the queue / 
channel / connection directly - so it's a much simpler design but not as 
performant.

Cheers, Simon

-- 
Simon MacMullen
RabbitMQ, Pivotal


More information about the rabbitmq-discuss mailing list