v5.8.4
版本发布时间: 2024-12-27 14:15:44
emqx/emqx最新发布版本:v5.8.4(2024-12-27 14:15:44)
5.8.4
Make sure to check the breaking changes and known issues before upgrading to EMQX 5.8.4.
Enhancements
Core MQTT Functionalities
-
#13739 Added support for clearing monitor (statistics) data for the whole cluster. You can now send a
DELETE
request to theapi/v5/monitor
endpoint to clear all collected monitoring metrics. -
#14247 Log the client attribute
tns
if it exists in the client metadata.If the
client_attrs.tns
attribute is present, it will now be included in the log metadata. However, if the client ID is already prefixed with thetns
value, it will not be logged again to avoid duplication. -
#14353 Improved robustness of session rebalance and evacuation process. Previously, the session evacuation process could enter a dead loop under certain clustering errors.
Rule Engine
-
#14369 Introduced two size-related functions in the rule engine:
-
is_empty
: Returntrue
if the map or array is empty. -
map_size
: Return the size of a map.
-
Configuration Files
-
#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,
emqx.conf
was the only place for manually configured settings. However, because it was the top-most layer of the configuration override hierarchy, it caused some confusion. While mutable (not read-only) configurations set inemqx.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 added
etc/base.hocon
as a foundational configuration layer. The updated configuration precedence order, from top to bottom, is now as follows:- Environment variables
-
etc/emqx.conf
-
data/configs/cluster.hocon
-
etc/base.hocon
The
etc/base.hocon
file serves as the base layer for configurations. While configurations in this file can still be modified after the node starts, it ensures consistent behavior and proper configuration overriding.
Observability
-
#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= 1
Currently, this feature is limited to TCP and TLS listeners only.
Bug Fixes
Core MQTT Functionalities
- #14248 Fixed intermittent connectivity issues between cluster nodes that could lead to partial loss of cluster-wide routing table state. This fix ensures better consistency and reliability across the cluster.
-
#14272 Fixed an issue where the
auto_subscribe
configuration loaded via the CLI showed a success message but failed to take effect. -
#14424 Fixed an issue where membership messages related to exclusive subscriptions were incorrectly logged as
unexpected_info
warnings.
REST API
- #14317 Fixed an issue where the HTTP API could return an empty page when calculating pagination.
Data Integration
-
#14318 Fixed an issue with the initialization of the HTTP connector state. This fix resolves crashes related to the
function_clause
error that could occur when an HTTP action processed incoming traffic while its underlying connector was being restarted. Before this fix, the logs would show cryptic error messages like:20:42:36.850 [error] msg: "resource_exception", info: #{error => {error, function_clause}, id => <<"action:http:a:connector:http:a">>, name => call_query, ...
-
#14319 Refactored the internal state machine for resource management, eliminating several race condition bugs. One example is the HTTP action, which, when handling incoming traffic and experiencing health check flapping, could previously result in 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">
-
#14362 Refactored the resource manager state machine to prevent race conditions that could lead to inconsistent states.
-
#14429 Fixed the handling of rule action metrics when the underlying connector is disabled. Previously, the failed counter would increment twice for each message—once under the
unknown
category and once underout_of_service
. With this fix, only theout_of_service
counter is incremented, providing more accurate metrics.
Command Line Interface
-
#14357 Fix an issue with
bin/emqx help
command. This fix ensures that the help command now displays the correct usage information. Now, the help command displays the proper details, making it easier for users to understand how to use the command.
Configuration File
-
#14371 Fixed an issue where client ID override expressions rendered
undefined
ornull
as the literal strings"undefined"
or"null"
. Now, these values are correctly displayed as empty strings, providing cleaner and more intuitive outputs when variables are not set or have no value -
#14376 Enhanced configuration import to handle non-existing log file directories. If the specified log file directory does not exist, the system will now fall back to the default log directory
"${EMQX_LOG_DIR}"
, ensuring smoother operation without errors.
Observability
-
#14267 Modified the logging behavior to avoid redacting secrets in logs and HTTP responses when the secret string is a file path (e.g.,
file:///path/to/the/secret
). -
Resolve the
function_clause
error that occurs when retrieving theemqx_license_expiry_at
Prometheus value for a perpetual license.
Breaking Changes
-
#14360 When requesting Prometheus metrics in JSON format, the
client
top-level key will now always be an array of JSON objects, rather than a single JSON object. This change may affect how your monitoring tools process the data.
1、 emqx-5.8.4-amzn2-amd64.rpm 41.49MB
2、 emqx-5.8.4-amzn2-amd64.rpm.sha256 64B
3、 emqx-5.8.4-amzn2-amd64.tar.gz 64.36MB
4、 emqx-5.8.4-amzn2-amd64.tar.gz.sha256 64B
5、 emqx-5.8.4-amzn2-arm64.rpm 41.13MB
6、 emqx-5.8.4-amzn2-arm64.rpm.sha256 64B
7、 emqx-5.8.4-amzn2-arm64.tar.gz 62.38MB
8、 emqx-5.8.4-amzn2-arm64.tar.gz.sha256 64B
9、 emqx-5.8.4-amzn2023-amd64.rpm 39.71MB
10、 emqx-5.8.4-amzn2023-amd64.rpm.sha256 64B
11、 emqx-5.8.4-amzn2023-amd64.tar.gz 66.61MB
12、 emqx-5.8.4-amzn2023-amd64.tar.gz.sha256 64B
13、 emqx-5.8.4-amzn2023-arm64.rpm 39.45MB
14、 emqx-5.8.4-amzn2023-arm64.rpm.sha256 64B
15、 emqx-5.8.4-amzn2023-arm64.tar.gz 64.28MB
16、 emqx-5.8.4-amzn2023-arm64.tar.gz.sha256 64B
17、 emqx-5.8.4-debian10-amd64.deb 37.64MB
18、 emqx-5.8.4-debian10-amd64.deb.sha256 64B
19、 emqx-5.8.4-debian10-amd64.tar.gz 68.02MB
20、 emqx-5.8.4-debian10-amd64.tar.gz.sha256 64B
21、 emqx-5.8.4-debian10-arm64.deb 37.2MB
22、 emqx-5.8.4-debian10-arm64.deb.sha256 64B
23、 emqx-5.8.4-debian10-arm64.tar.gz 65.58MB
24、 emqx-5.8.4-debian10-arm64.tar.gz.sha256 64B
25、 emqx-5.8.4-debian11-amd64.deb 37.71MB
26、 emqx-5.8.4-debian11-amd64.deb.sha256 64B
27、 emqx-5.8.4-debian11-amd64.tar.gz 66.47MB
28、 emqx-5.8.4-debian11-amd64.tar.gz.sha256 64B
29、 emqx-5.8.4-debian11-arm64.deb 37.25MB
30、 emqx-5.8.4-debian11-arm64.deb.sha256 64B
31、 emqx-5.8.4-debian11-arm64.tar.gz 64.07MB
32、 emqx-5.8.4-debian11-arm64.tar.gz.sha256 64B
33、 emqx-5.8.4-debian12-amd64.deb 37.75MB
34、 emqx-5.8.4-debian12-amd64.deb.sha256 64B
35、 emqx-5.8.4-debian12-amd64.tar.gz 66.74MB
36、 emqx-5.8.4-debian12-amd64.tar.gz.sha256 64B
37、 emqx-5.8.4-debian12-arm64.deb 37.19MB
38、 emqx-5.8.4-debian12-arm64.deb.sha256 64B
39、 emqx-5.8.4-debian12-arm64.tar.gz 64.23MB
40、 emqx-5.8.4-debian12-arm64.tar.gz.sha256 64B
41、 emqx-5.8.4-docker-amd64.tar.gz 97.62MB
42、 emqx-5.8.4-docker-arm64.tar.gz 192.38MB
43、 emqx-5.8.4-el7-amd64.rpm 53.3MB
44、 emqx-5.8.4-el7-amd64.rpm.sha256 64B
45、 emqx-5.8.4-el7-amd64.tar.gz 72.42MB
46、 emqx-5.8.4-el7-amd64.tar.gz.sha256 64B
47、 emqx-5.8.4-el7-arm64.rpm 52.05MB
48、 emqx-5.8.4-el7-arm64.rpm.sha256 64B
49、 emqx-5.8.4-el7-arm64.tar.gz 70.92MB
50、 emqx-5.8.4-el7-arm64.tar.gz.sha256 64B
51、 emqx-5.8.4-el8-amd64.rpm 39.84MB
52、 emqx-5.8.4-el8-amd64.rpm.sha256 64B
53、 emqx-5.8.4-el8-amd64.tar.gz 68.11MB
54、 emqx-5.8.4-el8-amd64.tar.gz.sha256 64B
55、 emqx-5.8.4-el8-arm64.rpm 39.3MB
56、 emqx-5.8.4-el8-arm64.rpm.sha256 64B
57、 emqx-5.8.4-el8-arm64.tar.gz 65.66MB
58、 emqx-5.8.4-el8-arm64.tar.gz.sha256 64B
59、 emqx-5.8.4-el9-amd64.rpm 39.72MB
60、 emqx-5.8.4-el9-amd64.rpm.sha256 64B
61、 emqx-5.8.4-el9-amd64.tar.gz 66.58MB
62、 emqx-5.8.4-el9-amd64.tar.gz.sha256 64B
63、 emqx-5.8.4-el9-arm64.rpm 39.44MB
64、 emqx-5.8.4-el9-arm64.rpm.sha256 64B
65、 emqx-5.8.4-el9-arm64.tar.gz 64.25MB
66、 emqx-5.8.4-el9-arm64.tar.gz.sha256 64B
67、 emqx-5.8.4-elixir-ubuntu22.04-amd64.tar.gz 79.08MB
68、 emqx-5.8.4-elixir-ubuntu22.04-amd64.tar.gz.sha256 64B
69、 emqx-5.8.4-macos13-amd64.zip 49.43MB
70、 emqx-5.8.4-macos13-amd64.zip.sha256 65B
71、 emqx-5.8.4-macos14-arm64.zip 48.6MB
72、 emqx-5.8.4-macos14-arm64.zip.sha256 65B
73、 emqx-5.8.4-ubuntu20.04-amd64.deb 37.76MB
74、 emqx-5.8.4-ubuntu20.04-amd64.deb.sha256 64B
75、 emqx-5.8.4-ubuntu20.04-amd64.tar.gz 68.92MB
76、 emqx-5.8.4-ubuntu20.04-amd64.tar.gz.sha256 64B
77、 emqx-5.8.4-ubuntu20.04-arm64.deb 37.3MB
78、 emqx-5.8.4-ubuntu20.04-arm64.deb.sha256 64B
79、 emqx-5.8.4-ubuntu20.04-arm64.tar.gz 66.35MB
80、 emqx-5.8.4-ubuntu20.04-arm64.tar.gz.sha256 64B
81、 emqx-5.8.4-ubuntu22.04-amd64.deb 39.29MB
82、 emqx-5.8.4-ubuntu22.04-amd64.deb.sha256 64B
83、 emqx-5.8.4-ubuntu22.04-amd64.tar.gz 66.93MB
84、 emqx-5.8.4-ubuntu22.04-amd64.tar.gz.sha256 64B
85、 emqx-5.8.4-ubuntu22.04-arm64.deb 39.05MB
86、 emqx-5.8.4-ubuntu22.04-arm64.deb.sha256 64B
87、 emqx-5.8.4-ubuntu22.04-arm64.tar.gz 64.51MB
88、 emqx-5.8.4-ubuntu22.04-arm64.tar.gz.sha256 64B
89、 emqx-5.8.4-ubuntu24.04-amd64.deb 39.16MB
90、 emqx-5.8.4-ubuntu24.04-amd64.deb.sha256 64B
91、 emqx-5.8.4-ubuntu24.04-amd64.tar.gz 66.91MB
92、 emqx-5.8.4-ubuntu24.04-amd64.tar.gz.sha256 64B
93、 emqx-5.8.4-ubuntu24.04-arm64.deb 38.89MB
94、 emqx-5.8.4-ubuntu24.04-arm64.deb.sha256 64B
95、 emqx-5.8.4-ubuntu24.04-arm64.tar.gz 64.56MB
96、 emqx-5.8.4-ubuntu24.04-arm64.tar.gz.sha256 64B
97、 emqx-docker-5.8.4.tar.gz 97.62MB
98、 emqx-elixir-5.8.4-docker-amd64.tar.gz 109.8MB
99、 emqx-elixir-5.8.4-docker-arm64.tar.gz 216.69MB
100、 emqx-elixir-docker-5.8.4.tar.gz 109.8MB
101、 emqx-enterprise.zip 217.18MB
102、 env.sh 503B