Management, monitoring and statistics

For a long time the management and monitoring capabilities built into RabbitMQ have consisted of rabbitmqctl. While it's a reasonable tool for management (assuming you like the command line), rabbitmqctl has never been very powerful as a monitoring tool. So we're going to build something better.

Of course, plenty of people don't like command line tools and so several people have built alternate means of managing RabbitMQ. Alice / Wonderland and Spring AMQP are two that leap to mind. However there isn't much standardisation, and people don't always find it very convenient to talk to Rabbit via epmd. So we're going to build something easier.

With that in mind, I'd like to announce the existence of RabbitMQ Management. This is a plugin to provide management and monitoring via a RESTful interface, with a web GUI. Think of it as being like a super-Alice, and also an integration point for any other tools that people want to build.

So RabbitMQ Management will allow easier management and better monitoring. How better? Well, as part of the upcoming rabbit release we've added a statistics gathering feature to the broker. This can count messages as they're published, routed, delivered and acked, on a per channel / queue / exchange basis, so we can determine things like which channels are publishing fast or consuming slowly, which queues are being published to from which exchanges, which connections and hosts are busiest, and so on.

Of course, doing all this extra bookkeeping comes at a cost; when statistics gathering is turned on the server can run around 10% slower (assuming it's CPU-bound; which usually means handling transient messages. If it's IO bound the performance impact will likely be less). At the moment statistics gathering is turned on automatically when the management plugin is installed but we'll make it configurable.

With that, I'd like to add a warning: it's currently at a very early stage of development, and really should not be trusted for anything other than experimentation and playing with. The REST API will change, the UI will change, the plugin might crash your server, and the TODO is currently almost hilariously long. But hopefully this gives you an idea of what we're going to do.

Tags: , , , , ,

6 Responses to “Management, monitoring and statistics”

  1. Twitter Trackbacks for RabbitMQ » Blog Archive » Management, monitoring and statistics - Messaging that just works [] on Says:

    [...] RabbitMQ » Blog Archive » Management, monitoring and statistics - Messaging that just works – view page – cached RabbitMQ is a complete and highly reliable enterprise messaging system based on the emerging AMQP standard Tweets about this link [...]

  2. Twitted by monadic Says:

    [...] This post was Twitted by monadic [...]

  3. Dominik Says:

    I recently wrote a Ruby script which queries the rabbitmqctl command line tool on HTTP requests. There is a nice AJAX user interface and a nifty Ruby/Rack/Thin back end with some caching abilities...

    Currently, there is no demo I could show you (without compromising ongoing experimental runs). But let me know if you'd like to know more. I might release this monitor on github in future.

    Besides, if your management tool stabilizes, I could think of using that instead 😉


  4. Simon MacMullen Says:

    Dominik: whadayamean "if"? 🙂

    Thanks for the interest; but we probably don't want to add Ruby into the mix...

  5. RabbitMQ » Blog Archive » Growing Up - Messaging that just works Says:

    [...] HomeDownloadDocumentationGet StartedServicesPartnersCommunityCloudFAQBlogSearch « Management, monitoring and statistics [...]

  6. RabbitMQ » Blog Archive » Management plugin - preview release - Messaging that just works Says:

    [...] previously mentioned management plugin is now in a state where it’s worth looking at and testing. In order to make [...]