Commit Graph

565 Commits

Author SHA1 Message Date
Michael Klishin dbd03d7248
List #10519 #12564 in 4.1.0 release notes 2024-12-10 20:04:47 -05:00
Michael Klishin 8bb4719de8
4.1.0 release notes updates 2024-12-10 19:57:44 -05:00
Michael Klishin d6859988c1
4.0.4 release notes: typos 2024-12-06 22:03:21 -05:00
Michael Klishin 7946f6de0c
Two more cosmetic 4.0.4 release notes updates 2024-11-21 20:51:33 -05:00
Michael Klishin 3a5d057f5a
4.0.4 release notes: correct a link 2024-11-21 20:20:35 -05:00
Michael Klishin d6620a596d
Add #10275 #12765 to 4.1.0 release notes 2024-11-20 18:44:00 -05:00
Michael Klishin 37f7b3ff11
Update 4.0.4 release notes 2024-11-20 18:41:32 -05:00
Michael Klishin de90cfc07a
4.0.4 release notes: a typo 2024-11-19 21:40:30 -05:00
Michael Klishin f8344d6481
4.0.4 release notes 2024-11-19 21:30:18 -05:00
Michael Klishin e7e11ae6b9
4.1.0 release notes: use the standard format (same as 4.0.x, 3.13.x, and prior series) 2024-11-19 20:46:32 -05:00
Michael Klishin 8df2deb36e
4.1.0 release notes: 4.1.0-beta.1 is out 2024-11-15 00:54:00 -05:00
David Ansari de804d1fa7 Support publishing AMQP 1.0 to Event Exchange
## What?

Prior to this commit, the `rabbitmq_event_exchange` internally published
always AMQP 0.9.1 messages to the `amq.rabbitmq.event` topic exchange.
This commit allows users to configure the plugin to publish AMQP 1.0
messages instead.

 ## Why?

Prior to this commit, when an AMQP 1.0 client consumed events,
event properties that are lists were omitted. For example property
`client_properties` of event `connection.created` or property
`arguments` of event `queue.created` were omitted because of the following sequence:
1. The event exchange plugins listens for all kind of internal events.
2. The event exchange plugin re-publishes all events as AMQP 0.9.1 message to the event exchange.
3. Later, when an AMQP 1.0 client consumes this message, the broker must translate the message from AMQP 0.9.1 to AMQP 1.0.
4. This translation follows the rules outlined in https://www.rabbitmq.com/docs/conversions#amqpl-amqp
5. Specifically, in this table the row before the last one describes the rule we're hitting here. It says that if the AMQP 0.9.1
header value is not an `x-` prefixed header and its value is an array or table, then this header is not converted.
That's because AMQP 1.0 application-properties must be simple types as mandated in https://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html#type-application-properties

 ## How?

The user can configure the plugin as follows to have the plugin
internally publish AMQP 1.0 messages:
```
event_exchange.protocol = amqp_1_0
```

To support complex types such as lists, the plugin sets all event
properties as AMQP 1.0 message-annotations. The plugin prefixes all message
annotation keys with `x-opt-` to comply with the AMQP 1.0 spec.

 ## Alternative Design

An alternative design would have been to format all event properties
e.g. as JSON within the message body. However, this breaks routing on
specific event property values via a headers exchange.

 ## Documentation
https://github.com/rabbitmq/rabbitmq-website/pull/2129
2024-11-14 12:52:09 +01:00
Michael Klishin 6c16b4dd64
4.0.1 release notes: clarify that Blue/Green deployments are an option for 3.13.x clusters with Khepri enabled 2024-11-12 19:26:21 -05:00
David Ansari 9d0c851df2 Show session and link details for AMQP 1.0 connection
## What?

On the connection page in the Management UI, display detailed session and
link information including:
* Link names
* Link target and source addresses
* Link flow control state
* Session flow control state
* Number of unconfirmed and unacknowledged messages

 ## How?

A new HTTP API endpoint is added:
```
/connections/:connection_name/sessions
```

The HTTP handler first queries the Erlang connection process to find out about
all session Pids. The handler then queries each Erlang session process
of this connection.

(The table auto-refreshes by default every 5 seconds. The handler querying a single
connection with 60 idle sessions with each 250 links takes ~100 ms.)

For better user experience in the Management UI, this commit also makes the
session process store and expose link names as well as source/target addresses.
2024-11-07 15:11:42 +01:00
Jean-Sébastien Pédron 2f9edf119d
release-notes/4.1.0.md: Document feature flags improvements 2024-11-06 13:24:13 +01:00
David Ansari 3db4a97cfb Expose AMQP connection metrics
Expose the same metrics for AMQP 1.0 connections as for AMQP 0.9.1 connections.

Display the following AMQP 1.0 metrics on the Management UI:
* Network bytes per second from/to client on connections page
* Number of sessions/channels on connections page
* Network bytes per second from/to client graph on connection page
* Reductions graph on connection page
* Garbage colletion info on connection page

Expose the following AMQP 1.0 per-object Prometheus metrics:
* rabbitmq_connection_incoming_bytes_total
* rabbitmq_connection_outgoing_bytes_total
* rabbitmq_connection_process_reductions_total
* rabbitmq_connection_incoming_packets_total
* rabbitmq_connection_outgoing_packets_total
* rabbitmq_connection_pending_packets
* rabbitmq_connection_channels

The rabbit_amqp_writer proc:
* notifies the rabbit_amqp_reader proc if it sent frames
* hibernates eventually if it doesn't send any frames

The rabbit_amqp_reader proc:
* does not emit stats (update ETS tables) if no frames are received
or sent to save resources when there are many idle connections.
2024-11-02 19:08:24 +01:00
David Ansari 1778bc22aa Support AMQP 1.0 token renewal
Closes #9259.

 ## What?
Allow an AMQP 1.0 client to renew an OAuth 2.0 token before it expires.

 ## Why?
This allows clients to keep the AMQP connection open instead of having
to create a new connection whenever the token expires.

 ## How?
As explained in https://github.com/rabbitmq/rabbitmq-server/issues/9259#issuecomment-2437602040
the client can `PUT` a new token on HTTP API v2 path `/auth/tokens`.
RabbitMQ will then:
1. Store the new token on the given connection.
2. Recheck access to the connection's vhost.
3. Clear all permission caches in the AMQP sessions.
4. Recheck write permissions to exchanges for links publishing to
   RabbitMQ, and recheck read permissions from queues for links
   consuming from RabbitMQ. The latter complies with the user
   expectation in #11364.
2024-10-30 10:42:40 +01:00
Michael Klishin 3e57a38e1c Fix a typo in 4.0.3 release notes 2024-10-28 16:58:17 -04:00
Michael Klishin 17d5d82e1d 4.0.3 release notes 2024-10-28 15:52:02 -04:00
David Ansari 2c0cdee7d2
Support x-cc message annotation (#12559)
Support x-cc message annotation

Support an `x-cc` message annotation in AMQP 1.0
similar to the [CC](https://www.rabbitmq.com/docs/sender-selected) header in AMQP 0.9.1.

The value of the `x-cc` message annotation must by a list of strings.
A message annotation is used since application properties allow only simple types.
2024-10-24 13:03:05 +02:00
Michael Klishin 2eeac4ba59
4.0.1 release notes: wording 2024-10-09 11:54:26 -04:00
David Ansari 320d8aeaf6 Add AMQP 0.9.1 x-death header to breaking changes
Starting with RabbitMQ 4.0, the AMQP 0.9.1 x-death header won't be
interpreted anymore by RabbitMQ when clients publish new messages to RabbitMQ.

Relates to
* https://github.com/rabbitmq/rabbitmq-server/issues/10709
* https://github.com/rabbitmq/rabbitmq-server/issues/11331
* https://github.com/rabbitmq/rabbitmq-server/pull/11339
2024-10-09 10:15:41 +02:00
David Ansari 17a3223c94 Update 4.1.0 release notes 2024-10-07 17:55:58 +02:00
Michael Klishin 4da8dd5819
Update 4.0.1 release notes 2024-09-29 22:53:53 -04:00
Michael Klishin 1b2e35d42c
4.0.1 release notes: correct a typo 2024-09-21 02:55:02 -04:00
Michael Klishin bfdf4fbbca
Merge pull request #12352 from rabbitmq/mqtt-max-packet-size
Decrease default MQTT Maximum Packet Size
2024-09-21 01:00:33 -04:00
Michael Klishin 83f2875958
Update 4.0.2 release notes 2024-09-21 00:51:29 -04:00
David Ansari bddc54613f Decrease default MQTT Maximum Packet Size
Given that the default max_message_size got decreased from 128 MiB to 16
MiB in RabbitMQ 4.0 in https://github.com/rabbitmq/rabbitmq-server/pull/11455,
it makes sense to also decrease the default MQTT Maximum Packet Size from 256 MiB to 16 MiB.
Since this change was missed in RabbitMQ 4.0, it is scheduled for RabbitMQ 4.1.
2024-09-20 16:11:21 +02:00
Michael Klishin 77bf0ad75f Prepare 4.0.2 release notes
To trigger full pipeline runs, the release
is not out and as of right now,
rabbitmq/rabbitmq-server#12339 is not yet resolved.
2024-09-19 17:38:33 -04:00
Michael Klishin 04d8afe1a3
Move 4.0 release notes to 4.0.1.md 2024-09-18 20:07:18 -04:00
Michael Klishin c03afb2b06
4.0.0 GA release is in progress 2024-09-18 12:41:10 -04:00
David Ansari 7ada1b84a8 Add breaking change to release notes 2024-09-18 13:09:13 +02:00
David Ansari e1327ae24d Fix link in 4.0.0 release notes 2024-09-17 09:04:51 +02:00
Michael Klishin 7da783b8c7 4.0.0 release notes: Khepri will be fully supported starting with 4.0 2024-09-12 20:43:04 -04:00
Michael Klishin 8ab0d4cf68 Release notes updates
References #10439
2024-09-12 20:40:06 -04:00
Michael Klishin edd8fbcb5b 4.0.0-rc.1 release notes: cosmetics 2024-09-10 23:03:31 -04:00
Michael Klishin fd491583af Update 4.0.0-rc.1 release notes 2024-09-10 22:29:45 -04:00
Karl Nilsson e81feb556f QQ: a delivery-limit of -1 disables the delivery limit.
For cases where users want to live a bit more dangerously this commit
maps a delivery limit of -1 (or any negative value) such that it
disables the delivery limit and restores the 3.13.x behaviour.
2024-09-10 10:48:03 +01:00
Michael Klishin 61f53e2375 One more 4.0 release notes update 2024-09-08 22:21:46 -04:00
Michael Klishin c2bb67a087
More 4.0 release notes updates post-#11937 2024-09-06 20:12:51 -04:00
Michael Klishin e7296c1830
Update 4.0 release notes
References #11937.
2024-09-06 19:47:15 -04:00
David Ansari eb363a864f Link from 4.0 release notes to new QQv4 blog post 2024-08-29 10:23:12 +02:00
Michael Klishin e10fada2f0
Update 4.0.0 release notes 2024-08-28 22:07:02 -04:00
Michael Klishin edd932a8e6
3.13.7 release notes: credit @sysupbda
for their non-trivial non-code contribution.
2024-08-26 01:21:56 -04:00
Michael Klishin fb2d6f919e
Update 3.13.7.md 2024-08-26 01:06:23 -04:00
Michael Klishin d5bc5a068e 3.13.7 release notes 2024-08-25 23:45:28 -04:00
David Ansari bd24b07069 Link 4.0 release notes to AMQP benchmark blog post 2024-08-20 09:13:40 +02:00
David Ansari b105ca9877 Remove randomized_startup_delay_range config
For RabbitMQ 4.0, this commit removes support for the deprecated `rabbitmq.conf` settings
```
cluster_formation.randomized_startup_delay_range.min
cluster_formation.randomized_startup_delay_range.max
```

The rabbitmq/cluster-operator already removed these settings in
b81e0f9bb8
2024-08-19 14:34:32 +02:00
Michael Klishin b0ce31f704 More 4.0 release notes edits 2024-08-17 00:50:24 -04:00
Michael Klishin 0d7960f6df Another 4.0 release notes update for AMQP 1.0 2024-08-16 23:59:59 -04:00
Michael Klishin 3327ce3046 Update 4.0 release notes 2024-08-16 23:57:14 -04:00
Karl Nilsson 1cf530a77d Update release notes with details of the delivery-limit default. 2024-08-16 10:59:25 +01:00
Michael Klishin e21a3bd7e5 Re-arrange 4.0 release notes 2024-08-15 13:12:31 -04:00
David Ansari 8c60cf7523 Add breaking changes to the release notes 2024-08-15 16:51:28 +02:00
David Ansari dbf498a65e Update 4.0.0 release notes 2024-08-13 11:29:25 +02:00
Michael Klishin 7ac326a7a5 4.0.0-beta.4 release notes 2024-08-12 23:38:16 -04:00
Michael Klishin c31aae59d1 Update 4.0 release notes 2024-07-23 23:01:15 -04:00
Johan Rhodin 5633a9217e
Update 3.13.5.md 2024-07-23 21:52:23 -05:00
Michael Klishin e74e91407e 3.13.6 release notes 2024-07-23 16:46:09 -04:00
Michael Klishin 8061419a49
Update 4.0.0.md 2024-07-21 11:28:44 -04:00
Michael Klishin dd954a044c 3.13.5 release notes 2024-07-20 02:18:59 -04:00
Michael Klishin 2c96bccc08 4.0 release notes: one more typo 2024-07-16 23:05:53 -04:00
Johan Rhodin c86a0be5c6
fix typos 2024-07-16 16:13:16 -05:00
Michael Klishin 2c753f66b1 Update 4.0.0 release notes 2024-07-16 14:16:01 -04:00
Michael Klishin c902bfc853 Make it clear that 4.0.0 will go through betas and RCs first 2024-07-15 01:34:44 -04:00
Michael Klishin fca9d9131c Initial (very brief) 4.0.0 release notes 2024-07-15 01:07:43 -04:00
Johan Rhodin 47040776f1
typo fix
Typo
2024-07-08 11:26:51 -05:00
Michael Klishin 78181f8bf0 3.13.4 release notes: another typo 2024-07-03 23:40:45 -04:00
Michael Klishin a4673d4e2e 3.13.4 release notes: correct more typos 2024-07-03 17:48:05 -04:00
Michael Klishin 89c9b20981 3.13.4 release notes: correct a typo 2024-07-03 17:44:22 -04:00
Michael Klishin 1bc0d89db7 3.13.4 release notes: a typo 2024-07-03 04:08:44 -04:00
Michael Klishin b339038e53 3.13.4 release notes 2024-07-03 04:06:42 -04:00
Michael Klishin d938883c50 Update 3.13.3 release notes 2024-05-31 03:54:42 -04:00
Michael Klishin c4acbf1b9e Update 3.13.3 release notes 2024-05-31 03:46:28 -04:00
Michael Klishin a68a2330c7 3.13.3 release notes: edits 2024-05-27 22:42:48 -04:00
Michael Klishin 1647910e88 Another round of 3.13.3 release notes updates 2024-05-27 12:56:56 -04:00
Michael Klishin 56ab16281b Initial 3.13.3 release notes
Note that there are no plans to produce a release
shortly after, this simply lists the changes we
have up to this point.
2024-05-15 14:10:35 -04:00
Michael Klishin 746c06f77c Correct 3.12.14 release notes 2024-05-05 07:08:39 -04:00
Michael Klishin 1b3e678a70 3.12.14 release notes 2024-05-05 07:05:13 -04:00
Michael Klishin 97006631bf Release notes typos 2024-05-01 13:55:28 -04:00
Michael Klishin b75f43f920 Update a bunch of release notes documents
to reflect an upcoming community support policy
change.
2024-05-01 13:49:43 -04:00
Michael Klishin c199107dc3 3.13.2 release notes 2024-04-30 19:28:01 -04:00
Michael Klishin dd5686ad71 3.13.0 release notes: use new style rabbitmq.com doc guide paths 2024-03-31 18:35:02 -04:00
Michael Klishin 499658dd6a 3.13.0 release notes: mention Erlang 26 TLS default changes 2024-03-31 18:27:10 -04:00
Michael Klishin fe77730259 3.13.1 release notes: Cowboy was also bumped 2024-03-29 04:04:44 -04:00
Michael Klishin e9b5bd2155 3.13.1 release notes: add an example for channel_max_per_node 2024-03-29 04:00:16 -04:00
Michael Klishin 8539806a6b 3.13.1 release notes: cosmetics 2024-03-29 03:42:59 -04:00
Michael Klishin 12a401d798 3.13.1 release notes 2024-03-29 03:40:54 -04:00
deterclosed 21f7da6dfd chore: fix some typos
Signed-off-by: deterclosed <fliter@outlook.com>
2024-03-23 13:44:55 +08:00
Michael Klishin b3597c7a63
3.13.0 release notes: fix a(n) typo 2024-03-06 00:39:53 -05:00
Michael Klishin 1534acd6d2 3.13.0 release notes: mention community support and EOL dates for the series 2024-02-27 13:39:33 -05:00
Michael Klishin 237a88caef A few more 3.13.0 release notes edits 2024-02-27 13:31:05 -05:00
pstack2021 b335930d18
Update 3.13.0.md
Providing a link to the current introductory doc page for your feedback @michaelklishin, it is much shorter now. I will be working on a new draft of the "Introduction" page over the next few days, which will explain how to use docs in the new site in more detail.
2024-02-27 01:12:30 +00:00
pstack2021 380be7b1a0
Update 3.13.0.md 2024-02-26 17:32:59 +00:00
Michael Klishin 23f316434b
3.13.0 release notes edits 2024-02-22 08:09:48 -05:00
Michael Klishin c705864b7a
3.13.0 release notes: mention the new (upcoming) website 2024-02-19 21:25:36 -05:00
Michael Klishin 5207b0e114
3.12.13 release notes 2024-02-15 18:46:53 -05:00
Michael Klishin f00d38a8be
Update 3.13.0 release notes 2024-02-14 23:21:11 -05:00
Michael Klishin 507db36511
Update 3.13.0 change log
(cherry picked from commit c046723b13d8e2c9b762e399aaea087aaee152ed)
2024-01-29 19:53:41 -05:00
Michael Klishin e57826fad9 CQv2 upgrade recommendations for 3.13 2024-01-15 07:14:19 -05:00