[rabbitmq-discuss] Monitoring RabbitMQ from JMX

Chris Pettitt cpettitt at gmail.com
Tue Mar 3 18:40:19 GMT 2009


I'm currently exploring monitoring options for RabbitMQ. There is a monitoring
page on the RabbitMQ site [1] from July 2008 that describes some potential
solutions, but it's not clear if anything has been done since that discussion.

I'd like to expose monitoring through JMX. Is there anything that does
that already
or that can be adapted to such a purpose?

If not, I've thought about a few ways I could implement it, but I would be
happy to get feedback from the folks on this list. Here are some thoughts:

1. I could write a JMX system to talk to rabbit_amqqueue directly
using JInterface.
I prototyped this approach successfully, but it seems wrong to depend on the
functions in rabbit_amqqueue directly, especially if they are not a public API.

2. I could write a small Erlang process that proxies requests to the action
function in rabbit_control. The benefit of this is that rabbit_control
aggregates monitoring across several modules and the client is less sensitive
to changes to rabbit_amqqueue and other modules. Using an Erlang process is
also nice because I wouldn't have to spawn rabbitmqctl for each request. With
this solution the JMX system could communicate with the process using either
JInterface or pipes (though I prefer the former unless there is a good reason
to avoid it).

Thoughts? Is there a good alternative I'm missing?


[1]: https://dev.rabbitmq.com/wiki/ManagementAndMonitoring

More information about the rabbitmq-discuss mailing list