summaryrefslogtreecommitdiff
path: root/deps/rabbitmq_event_exchange/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'deps/rabbitmq_event_exchange/README.md')
-rw-r--r--deps/rabbitmq_event_exchange/README.md169
1 files changed, 169 insertions, 0 deletions
diff --git a/deps/rabbitmq_event_exchange/README.md b/deps/rabbitmq_event_exchange/README.md
new file mode 100644
index 0000000000..3869cb23aa
--- /dev/null
+++ b/deps/rabbitmq_event_exchange/README.md
@@ -0,0 +1,169 @@
+# RabbitMQ Event Exchange
+
+## Overview
+
+This plugin exposes the internal RabbitMQ event mechanism as messages that clients
+can consume. It's useful
+if you want to keep track of certain events, e.g. when queues, exchanges, bindings, users,
+connections, channels are created and deleted. This plugin filters out stats
+events, so you are almost certainly going to get better results using
+the management plugin for stats.
+
+## How it Works
+
+It declares a topic exchange called 'amq.rabbitmq.event' in the default
+virtual host. All events are published to this exchange with routing
+keys like 'exchange.created', 'binding.deleted' etc, so you can
+subscribe to only the events you're interested in.
+
+The exchange behaves similarly to 'amq.rabbitmq.log': everything gets
+published there; if you don't trust a user with the information that
+gets published, don't allow them access.
+
+
+## Installation
+
+### With RabbitMQ 3.6.0 or Later
+
+Most recent RabbitMQ version ships with this plugin.
+As of RabbitMQ `3.6.0` this plugin is included into the RabbitMQ distribution.
+
+Enable it with the following command:
+
+```bash
+rabbitmq-plugins enable rabbitmq_event_exchange
+```
+
+### With RabbitMQ 3.5.x
+
+You can download a pre-built binary of this plugin from
+the [RabbitMQ Community Plugins](https://www.rabbitmq.com/community-plugins.html) page.
+
+Then run the following command:
+
+```bash
+rabbitmq-plugins enable rabbitmq_event_exchange
+```
+
+## Event format
+
+Each event has various properties associated with it. These are
+translated into AMQP 0-9-1 data encoding and inserted in the message headers. The
+**message body is always blank**.
+
+## Events
+
+So far RabbitMQ and related plugins emit events with the following routing keys:
+
+### RabbitMQ Broker
+
+Queue, Exchange and Binding events:
+
+ * `queue.deleted`
+ * `queue.created`
+ * `exchange.created`
+ * `exchange.deleted`
+ * `binding.created`
+ * `binding.deleted`
+
+Connection and Channel events:
+
+ * `connection.created`
+ * `connection.closed`
+ * `channel.created`
+ * `channel.closed`
+
+Consumer events:
+
+ * `consumer.created`
+ * `consumer.deleted`
+
+Policy and Parameter events:
+
+ * `policy.set`
+ * `policy.cleared`
+ * `parameter.set`
+ * `parameter.cleared`
+
+Virtual host events:
+
+ * `vhost.created`
+ * `vhost.deleted`
+ * `vhost.limits.set`
+ * `vhost.limits.cleared`
+
+User related events:
+
+ * `user.authentication.success`
+ * `user.authentication.failure`
+ * `user.created`
+ * `user.deleted`
+ * `user.password.changed`
+ * `user.password.cleared`
+ * `user.tags.set`
+
+Permission events:
+
+ * `permission.created`
+ * `permission.deleted`
+ * `topic.permission.created`
+ * `topic.permission.deleted`
+
+Alarm events:
+
+ * `alarm.set`
+ * `alarm.cleared`
+
+### Shovel Plugin
+
+Worker events:
+
+ * `shovel.worker.status`
+ * `shovel.worker.removed`
+
+### Federation Plugin
+
+Link events:
+
+ * `federation.link.status`
+ * `federation.link.removed`
+
+## Example
+
+There is a usage example using the Java client in `examples/java`.
+
+
+## Configuration
+
+ * `rabbitmq_event_exchange.vhost`: what vhost should the `amq.rabbitmq.event` exchange be declared in. Default: `rabbit.default_vhost` (`<<"/">>`).
+
+
+## Uninstalling
+
+If you want to remove the exchange which this plugin creates, first
+disable the plugin and restart the broker. Then you can delete the exchange,
+e.g. with :
+
+ rabbitmqctl eval 'rabbit_exchange:delete(rabbit_misc:r(<<"/">>, exchange, <<"amq.rabbitmq.event">>), false).'
+
+
+## Building from Source
+
+Building is no different from [building other RabbitMQ plugins](https://www.rabbitmq.com/plugin-development.html).
+
+TL;DR:
+
+ git clone https://github.com.com/rabbitmq/rabbitmq-public-umbrella.git umbrella
+ cd umbrella
+ make co
+ make up BRANCH=stable
+ cd deps
+ git clone https://github.com/rabbitmq/rabbitmq-event-exchange.git rabbitmq_event_exchange
+ cd rabbitmq_event_exchange
+ make dist
+
+
+## License
+
+Released under the Mozilla Public License 2.0,
+the same as RabbitMQ.