[rabbitmq-discuss] Document HTTP API responses?

Simon MacMullen simon at rabbitmq.com
Fri Jun 3 11:02:20 BST 2011


On 02/06/11 21:35, Brian K. Jones wrote:
> I'm testing a Python module that provides an easy way to work with the
> RabbitMQ Management HTTP API. I'm testing against various different
> broker instances, and I'm finding that, although they're the same
> version, there are apparently circumstances that exist which make the
> same call return different collections of attributes across different
> servers.

Hi Brian. You're right, this isn't very well documented. I'll try to 
give an overview here.

There are two reasons why different attributes appear: relevance and 
permissions.

The first derives from the fact that internally the mgmt plugin works by 
receiving statistics events from the various entities (connections, 
channels, queues) inside the broker. If a certain entity has never done 
something it'll never emit an event related to that - for example if the 
queue has only just been created and never received or delivered any 
messages, it won't have a message_stats attribute. This could also 
happen if fine-grained stats are disabled - the broker simply isn't 
emitting the events in this case. Therefore for stats-related 
attributes, you should always bear in mind that any given metric might 
be unknown.

However, that's not what you are seeing. The presence or absence of 
listeners / nodes etc comes down to the principle that non-administrator 
users are not meant to be able to see any of the structure of the broker 
- so they can't learn about which nodes exist other than the one they 
connect to. They also don't see message rates for vhosts they can't 
access, even when looking at "global" rates, while administrators do.

tl;dr: it depends whether you connect as an administrator or not.

Of course, for monitoring, lots of people want to be able to have a 
monitoring user which does not have administrator rights but can still 
see everything. This will hopefully bubble towards the top of the to-do 
list soon.

Cheers, Simon

-- 
Simon MacMullen
Staff Engineer, RabbitMQ
SpringSource, a division of VMware



More information about the rabbitmq-discuss mailing list