From 48b1a7c33baab639ceaf2217af0e82b3ec69f241 Mon Sep 17 00:00:00 2001 From: "emqx-ci-bot[bot]" Date: Thu, 19 Dec 2024 17:04:01 +0000 Subject: [PATCH] chore: update changelog for e5.8.4-beta.1 --- en_US/changes/breaking-changes-ce-5.8.md | 4 ++ en_US/changes/changes-ce-v5.md | 87 ++++++++++++++++++++++++ 2 files changed, 91 insertions(+) diff --git a/en_US/changes/breaking-changes-ce-5.8.md b/en_US/changes/breaking-changes-ce-5.8.md index f758bbb5a..236d28162 100644 --- a/en_US/changes/breaking-changes-ce-5.8.md +++ b/en_US/changes/breaking-changes-ce-5.8.md @@ -1,5 +1,9 @@ # Incompatible Changes in EMQX 5.8 +## v5.8.4 + +- [#14360](https://github.com/emqx/emqx/pull/14360) When requesting Prometheus metrics in JSON format, now the `client` top-level key will always be an array of JSON objects instead of a single JSON object. + ## v5.8.3 - [#14305](https://github.com/emqx/emqx/pull/14305) Removed support of md4, md5 and ripemd160 in authentication as they are not compliant with [NIST Secure Hash Standard](https://www.nist.gov/publications/secure-hash-standard). diff --git a/en_US/changes/changes-ce-v5.md b/en_US/changes/changes-ce-v5.md index f422326ae..cd4ec1f3b 100644 --- a/en_US/changes/changes-ce-v5.md +++ b/en_US/changes/changes-ce-v5.md @@ -1,5 +1,92 @@ # EMQX Open Source Version 5 +## 5.8.4 + +### Enhancements + +- [#14369](https://github.com/emqx/emqx/pull/14369) Introduced two size-related functions in the rule engine: + - `is_empty` : return `true` if the map or array is empty + - `map_size` : return the size of a map + + +- [#14360](https://github.com/emqx/emqx/pull/14360) Added listener shutdown counts labeled by shutdown reason to Prometheus metrics, under the `emqx_client_disconnected_reason` counters. + + Example output: + + ``` + emqx_client_disconnected_reason{node="emqx@127.0.0.1",reason="takenover"} 1 + emqx_client_disconnected_reason{node="emqx@127.0.0.1",reason="kicked"} 1 + ``` + + Currently, this feature is limited to TCP and TLS listeners only. + +- [#14353](https://github.com/emqx/emqx/pull/14353) Make session rebalance and evacuation more robust. Previously, session evacuation could enter a dead loop after some clustering errors. + +- [#14269](https://github.com/emqx/emqx/pull/14269) Added `etc/base.hocon` config file. + + In this release, we introduced a new configuration file, `etc/base.hocon`, to enhance configuration management and clarity. + + Previously, since emqx.conf was the only place for manually crafted configurations, and because it sits at the top-most layer + of the configuration override system, it caused some confusion. + While mutable (not read-only) configurations set in `emqx.conf` could be changed through the UI, API, or CLI and take effect immediately, + those changes would not persist after a node restart — leading to inconsistent behavior. + + To address this, we’ve added etc/base.hocon as a foundational configuration layer. + The updated configuration precedence order, from top to bottom, is as follows: + + 1. Environment variables + 2. `etc/emqx.conf` + 3. `data/configs/cluster.hocon` + 4. `etc/base.hocon` + + The `etc/base.hocon` file serves as the base layer for configurations. + While settings defined here can still be modified after the node starts, + this layer ensures consistent override behavior. + +- [#14247](https://github.com/emqx/emqx/pull/14247) Write client attribute named `tns` to log messages if such client attribute exists. + +- [#13739](https://github.com/emqx/emqx/pull/13739) Support clear monitor (statistics) data for the whole cluster. + + Send `DELETE` request to endpoint `api/v5/monitor` to clear all collected monitoring metrics. + +### Bug Fixes + +- [#14429](https://github.com/emqx/emqx/pull/14429) Fixed handling of rule action metrics when an underlying connector is disabled. Before the fix, the failed counter would be bumped twice for each message the action received (one categorized under `unknown` and another under `out_of_service`). Now, only `out_of_service` is bumped. + +- [#14424](https://github.com/emqx/emqx/pull/14424) Eliminated a false warning level "unexpected_info" log message. + +- [#14376](https://github.com/emqx/emqx/pull/14376) Made config import to tolerate non-existing log file dir. + + If log file handler is configured with a non-existing dir, the default value it will fallback to the default value `"${EMQX_LOG_DIR}"`. + +- [#14371](https://github.com/emqx/emqx/pull/14371) Fix clientid override expression to render `undefined` as empty string. + +- [#14362](https://github.com/emqx/emqx/pull/14362) Refactored data integration resource manager state machine, which should eliminate a few race conditions that could lead to inconsistent states. + +- [#14357](https://github.com/emqx/emqx/pull/14357) Fix `bin/emqx help` command. + +- [#14319](https://github.com/emqx/emqx/pull/14319) Refactored resource management internal state machine. As consequence, some race condition bugs have been eliminated. One such example is the HTTP action, which, when under incoming traffic and when its health check flap, may produce errors like the following: + + ``` + 2024-11-29T14:58:17.994119+00:00 [error] msg: action_not_found, connector: <<"connector:http:a">>, action_id: <<"action:http:a:connector:http:a">> + ``` + +- [#14318](https://github.com/emqx/emqx/pull/14318) Fixed the initialization of the HTTP connector state. When there was incoming traffic being handled by an HTTP action and its underlying connector restarted, cryptic crashes could be seen in the logs mentioning `function_clause`. + + Example: + + ``` + 20:42:36.850 [error] msg: "resource_exception", info: #{error => {error, function_clause}, id => <<"action:http:a:connector:http:a">>, name => call_query, ... + ``` + +- [#14317](https://github.com/emqx/emqx/pull/14317) Prevent potential issues where APIs involving paging may return empty pages, in case the internal APIs will be subtly misused in the future. + +- [#14272](https://github.com/emqx/emqx/pull/14272) `auto_subscribe` configuration loaded via CLI shows success but fails to take effect. + +- [#14267](https://github.com/emqx/emqx/pull/14267) Do not redact secrets in logs and HTTP responses when the secret string is a file path (`file:///path/to/the/secret`). + +- [#14248](https://github.com/emqx/emqx/pull/14248) Fixed a class of issues where intermittent connectivity issues between cluster nodes could potentially cause partial loss of cluster-wide routing table state. + ## 5.8.3 *Release Date: 2024-12-05*