Browse Source

chore: collect changes

JianBo He 1 year ago
parent
commit
06ec3839d7
1 changed files with 91 additions and 0 deletions
  1. 91 0
      changes/v5.8.4.en.md

+ 91 - 0
changes/v5.8.4.en.md

@@ -0,0 +1,91 @@
+# v5.8.4
+
+## Enhancements
+
+- [#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.
+
+- [#14247](https://github.com/emqx/emqx/pull/14247) Write client attribute named `tns` to log messages if such client attribute exists.
+
+- [#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.
+
+- [#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.
+
+- [#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.
+
+- [#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
+
+
+
+## Bug Fixes
+
+- [#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.
+
+- [#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`).
+
+- [#14272](https://github.com/emqx/emqx/pull/14272) `auto_subscribe` configuration loaded via CLI shows success but fails to take effect.
+
+- [#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.
+
+- [#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, ...
+  ```
+
+- [#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">>
+  ```
+
+- [#14357](https://github.com/emqx/emqx/pull/14357) Fix `bin/emqx help` command.
+
+- [#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.
+
+- [#14371](https://github.com/emqx/emqx/pull/14371) Fix clientid override expression to render `undefined` as empty string.
+
+- [#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}"`.
+
+- [#14424](https://github.com/emqx/emqx/pull/14424) Eliminated a false warning level "unexpected_info" log message.
+
+- [#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.
+
+## Breaking Changes
+
+- [#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.