You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
is a plugin that consumes RabbitMQ internal events and re-publishes them to a
43
+
[topic exchange](/tutorials/amqp-concepts#exchange-topic) called `amq.rabbitmq.event`, thus exposing these events to clients applications.
44
+
To consume the events, an application needs to declare a queue and bind it to the `amq.rabbitmq.event` exchange.
89
45
90
-
-`consumer.created`
91
-
-`consumer.deleted`
46
+
By default, the plugin declares the topic exchange `amq.rabbitmq.event` in the default virtual host (`/`).
47
+
All events are published to this exchange with routing keys (topics) like `exchange.created`, `binding.deleted`. etc.
48
+
You can subscribe to only the events you're interested in.
49
+
For example, to subscribe to all user events (such as `user.created`, `user.authentication.failure`, etc.) create a binding with binding key `user.#`.
92
50
93
-
Policy and Parameter events:
51
+
The exchange behaves similarly to `amq.rabbitmq.log`: everything gets published there.
52
+
If you don't trust a user with the events that get published, don't allow them `read` access to the `amq.rabbitmq.event` exchange.
94
53
95
-
-`policy.set`
96
-
-`policy.cleared`
97
-
-`parameter.set`
98
-
-`parameter.cleared`
99
-
100
-
Virtual host events:
101
-
102
-
-`vhost.created`
103
-
-`vhost.deleted`
104
-
105
-
User related events:
106
-
107
-
-`user.authentication.success`
108
-
-`user.authentication.failure`
109
-
-`user.created`
110
-
-`user.deleted`
111
-
-`user.password.changed`
112
-
-`user.password.cleared`
113
-
-`user.tags.set`
114
-
115
-
Permission events:
116
-
117
-
-`permission.created`
118
-
-`permission.deleted`
119
-
120
-
### Shovel Plugin
121
-
122
-
Worker events:
54
+
Each event has various event properties associated with it.
55
+
By default, the plugin internally publishes AMQP 0.9.1 messages with event properties translated to AMQP 0.9.1 message headers.
56
+
The plugin can optionally be configured to internally publish AMQP 1.0 messages with event properties translated to AMQP 1.0 [message-annotations](https://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html#type-message-annotations)
57
+
by setting the following in [rabbitmq.conf](configure#config-file):
58
+
```
59
+
event_exchange.protocol = amqp_1_0
60
+
```
61
+
The message body is always blank.
123
62
124
-
-`shovel.worker.status`
125
-
-`shovel.worker.removed`
63
+
Because the plugin sets event properties as AMQP 0.9.1 headers or AMQP 1.0 message-annotations, client applications can optionally subscribe to only specific event properties (for example all events emitted for a specific user). This can be achieved by binding a queue to a [headers exchange](/tutorials/amqp-concepts#exchange-headers), and the headers exchange to the `amq.rabbitmq.event` topic exchange.
126
64
127
-
### Federation Plugin
65
+
##Events
128
66
129
-
Link events:
67
+
Events including their routing keys (topics) that this plugin publishes are documented [here](./logging#internal-events).
130
68
131
-
-`federation.link.status`
132
-
-`federation.link.removed`
69
+
## Example
133
70
71
+
You can find a usage example using the Java client [here](https://github.com/rabbitmq/rabbitmq-server/tree/main/deps/rabbitmq_event_exchange/examples/java).
134
72
135
-
## Example
73
+
## Plugin Configuration
136
74
137
-
There is a usage example using the Java client [in the rabbitmq-event-exchange repository](https://github.com/rabbitmq/rabbitmq-event-exchange/tree/master/examples/java).
75
+
By default, the `rabbitmq_event_exchange` plugin uses the following configuration:
0 commit comments