[rabbitmq-discuss] Monitoring RabbitMQ from JMX

Alexis Richardson alexis.richardson at cohesiveft.com
Wed Mar 4 11:55:26 GMT 2009

Thanks Carl, I took a look at that recently and it does look like
interesting work.


Thanks for this.  Creating something would be really helpful.

I don't know which of the approaches would make the most sense from
those you list.  I hope others will comment.  Alas Matthias is on
vacation this week.  In terms of existing work, Tony and Ben may wish
to comment.  There's a few features Tony added for monitoring queue
lifecycle events last year for a customer.  I don't know if you are
aware of those (apologies if you know all this already).

In terms of 'general approaches to management and monitoring', we have
had a number of discussions about this on-list.  To date, the
following have been suggested.  Note that many of these speak more to
management than to monitoring.

* JMX -- We are not JMX experts and would love others better qualified
than us, to help.  If you can do something here, that would be very
cool.  As Carl mentioned, the qman stuff that the qpid guys have done,
may be useful as a guide, although RabbitMQ implements a different
version of the AMQP protocol at the moment.

* OSGi -- Neil Bartlett's prototype may be helpful here.  It is on
github: http://github.com/njbartlett/rabbitosgi

* Web interface -- I believe Valentino came up with a good list, in
the REST style, a few weeks ago.

* XMPP interface -- Tony's bots:

Anyway, I hope this helps give you some more ideas.


On Tue, Mar 3, 2009 at 6:58 PM, Carl Trieloff <cctrieloff at redhat.com> wrote:
> A full JMX AMQP bridge exists with WS-DM support. It may or may not help you
> http://qpid.apache.org/qman-qpid-management-bridge.html
> regards,
> Carl.
> Chris Pettitt wrote:
>> Hello,
>> 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?
>> Thanks,
>> Chris
>> [1]: https://dev.rabbitmq.com/wiki/ManagementAndMonitoring
>> _______________________________________________
>> rabbitmq-discuss mailing list
>> rabbitmq-discuss at lists.rabbitmq.com
>> http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
> _______________________________________________
> rabbitmq-discuss mailing list
> rabbitmq-discuss at lists.rabbitmq.com
> http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss

More information about the rabbitmq-discuss mailing list