Sometimes, during development or debugging, it's useful to be able to see every message that is published, and every message that is delivered. RabbitMQ has a "firehose" feature, where the administrator can enable (on a per-node, per-vhost basis) an exchange to which publish- and delivery-notifications should be CCed.
These notifications are close to what's happening on the wire - for example you will see unacked messages.
When the feature is switched off, it has no effect on performance; when it is switched on, performance will drop somewhat due to additional messages being generated and routed.
The firehose publishes messages to the topic exchange amq.rabbitmq.trace with
| Header | Type | Description |
|---|---|---|
| exchange_name | longstr | name of the exchange to which the message was published |
| routing_keys | array | routing key plus contents of CC and BCC headers |
| properties | table | content properties |
| node | longstr | Erlang node on which the trace message was generated |