[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