Commit Graph

42 Commits

Author SHA1 Message Date
Michael Klishin c458cba923
4.1.0 release notes edits
Test Management UI with Selenium / selenium (chrome, 1.17.3, 27.3) (push) Has been cancelled Details
2025-05-03 11:41:49 -04:00
Michael Klishin 6bda6a610f
Minor 4.1.0 release notes correction 2025-05-03 11:37:51 -04:00
Michael Klishin 005bb2c790
4.0.1 release notes: remove a pre-GA leftover 2025-04-27 16:53:10 -04:00
Michael Klishin 812d51be56
4.1.0 release notes: correct a confusing typo 2025-04-27 16:50:20 -04:00
Michael Klishin 2592dff63a
One more 4.1.0 release notes update 2025-04-15 15:49:50 -04:00
Michael Klishin beb7e83aa7
4.1.0 release notes: update a compatible amqplib release link
(cherry picked from commit a68af5a98883aac352ff1e7e079889dcb23a713f)
2025-04-15 15:14:15 -04:00
Michael Klishin 4d162257b4
4.1.0 release notes edits 2025-04-15 13:17:54 -04:00
Michal Kuratczyk b03b3cabf3
[skip-ci] Additional Prometheus-related release notes 2025-04-15 18:46:57 +02:00
Michael Klishin cb4676da88
4.1.0 release notes: prepare for 4.1.0 GA 2025-04-15 01:03:04 -04:00
Michael Klishin 983b4d3d7c
4.1.0 release notes updates 2025-04-11 19:00:47 -04:00
Michael Klishin 9b4dd0fbd8
4.1.0 release notes updates 2025-04-11 18:59:55 -04:00
David Ansari ac49cc638c Link from 4.1.0 release notes to blog post 2025-04-07 10:31:35 +02:00
Michael Klishin 5a9482dfef
One more tweak to 4.1.0-rc.1 release notes 2025-04-02 13:00:45 -04:00
Michael Klishin 82480e42a7
4.1.0 release notes: upgrades from 3.13.x are supported 2025-04-01 22:48:03 -04:00
Michael Klishin 13542dcc5e
4.1.0 release notes: we're at rc.1 2025-04-01 22:41:23 -04:00
Michael Klishin 9360f671e8
4.1.0 release notes: QQ parallelism improvements is a release highlight 2025-04-01 22:36:57 -04:00
Michael Klishin 402eb3a883
Update 4.1.0 release notes 2025-04-01 22:03:55 -04:00
Michael Klishin 5b99c6b5b9
4.1.0-rc.1 release notes 2025-04-01 22:02:01 -04:00
Michael Klishin a0e6c23a82
Update 4.1.0.md 2025-03-26 09:26:06 -04:00
Michael Klishin 22e4853e7d
4.1.0 release notes: update Ra version 2025-03-20 02:13:14 -04:00
Michael Klishin 5d882a18f7
4.1.0 release notes updates for beta.5 2025-03-20 02:05:58 -04:00
Michael Klishin 18533d4dee
Mention #13541 #13542 #13549 13551 in release notes
References #13537.
2025-03-17 16:54:31 -04:00
Michael Klishin ffcf9a27a4
Osiris 1.8.6 2025-03-01 19:26:08 -05:00
David Ansari c5867a7bd3 Add 4.1.0 release notes 2025-02-12 17:17:28 +01:00
Michael Klishin 7ba05db808
Bump 4.1.0 beta version in release notes 2025-02-10 23:41:25 -05:00
Michael Klishin 4d1b903427
4.1.0-beta.4 release notes: a typo 2025-02-10 23:40:14 -05:00
Michael Klishin b341a39e65
Update 4.1.0 release notes 2025-02-10 23:38:35 -05:00
David Ansari 658d9c7c62 Upgrade eetcd and gun
## Why?

To introduce AMQP over WebSocket, we will add gun to the Erlang AMQP
1.0 client. We want to add the latest version of gun for this new
feature. Since rabbitmq_peer_discovery_etcd depends on the outdated
eetcd 0.3.6 which in turn depends on the outdated gun 1.3.3, this commit
first upgrades eetcd and gun.

 ## How?
See https://github.com/zhongwencool/eetcd?tab=readme-ov-file#migration-from-eetcd-03x-to-04x

 ## Breaking Changes

This commit causes the following breaking change:
`rabbitmq.conf` settings
* `cluster_formation.etcd.ssl_options.fail_if_no_peer_cert`
* `cluster_formation.etcd.ssl_options.dh`
* `cluster_formation.etcd.ssl_options.dhfile`

are unsupported because they are not valid `ssl:tls_client_option()`.

See https://github.com/erlang/otp/issues/7497#issuecomment-1636012198
2024-12-19 13:20:28 +00:00
Michael Klishin fc4a6915bb
Update 4.1.0.md 2024-12-10 21:50:18 -05:00
Michael Klishin 0ebef2a72f
Release notes: 4.1.0-beta.3 is out, bump to 4.1.0-beta.4 2024-12-10 20:19:03 -05:00
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 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
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
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
David Ansari 17a3223c94 Update 4.1.0 release notes 2024-10-07 17:55:58 +02: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