diff --git a/CHANGES-4.3.md b/CHANGES-4.3.md index f3f2d5ea0..83a9bfcf6 100644 --- a/CHANGES-4.3.md +++ b/CHANGES-4.3.md @@ -20,6 +20,7 @@ File format: * Better randomisation of app screts (changed from timestamp seeded sha hash (uuid) to crypto:strong_rand_bytes) * Return a client_identifier_not_valid error when username is empty and username_as_clientid is set to true [#7862] * Add more rule engine date functions: format_date/3, format_date/4, date_to_unix_ts/4 [#7894] +* Add proto_name and proto_ver fields for $event/client_disconnected event. ### Bug fixes * List subscription topic (/api/v4/subscriptions), the result do not match with multiple conditions. diff --git a/apps/emqx_rule_engine/src/emqx_rule_engine.appup.src b/apps/emqx_rule_engine/src/emqx_rule_engine.appup.src index 36d3605e6..25438c828 100644 --- a/apps/emqx_rule_engine/src/emqx_rule_engine.appup.src +++ b/apps/emqx_rule_engine/src/emqx_rule_engine.appup.src @@ -2,7 +2,8 @@ %% Unless you know what you are doing, DO NOT edit manually!! {VSN, [{"4.3.9", - [{load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, + [{load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, {add_module,emqx_rule_date}, {load_module,emqx_rule_maps,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}]}, @@ -131,7 +132,8 @@ {load_module,emqx_rule_engine_api,brutal_purge,soft_purge,[]}]}, {<<".*">>,[]}], [{"4.3.9", - [{load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, + [{load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_maps,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, {delete_module,emqx_rule_date}]}, diff --git a/apps/emqx_rule_engine/src/emqx_rule_events.erl b/apps/emqx_rule_engine/src/emqx_rule_events.erl index 363475d60..01339edbb 100644 --- a/apps/emqx_rule_engine/src/emqx_rule_events.erl +++ b/apps/emqx_rule_engine/src/emqx_rule_events.erl @@ -208,6 +208,8 @@ eventmsg_disconnected(_ClientInfo = #{ ConnInfo = #{ peername := PeerName, sockname := SockName, + proto_name := ProtoName, + proto_ver := ProtoVer, disconnected_at := DisconnectedAt }, Reason) -> with_basic_columns('client.disconnected', @@ -216,6 +218,8 @@ eventmsg_disconnected(_ClientInfo = #{ username => Username, peername => ntoa(PeerName), sockname => ntoa(SockName), + proto_name => ProtoName, + proto_ver => ProtoVer, disconn_props => printable_maps(maps:get(disconn_props, ConnInfo, #{})), disconnected_at => DisconnectedAt }). @@ -597,6 +601,8 @@ columns_with_exam('client.disconnected') -> , {<<"username">>, <<"u_emqx">>} , {<<"peername">>, <<"192.168.0.10:56431">>} , {<<"sockname">>, <<"0.0.0.0:1883">>} + , {<<"proto_name">>, <<"MQTT">>} + , {<<"proto_ver">>, 5} , {<<"disconnected_at">>, erlang:system_time(millisecond)} , {<<"timestamp">>, erlang:system_time(millisecond)} , {<<"node">>, node()}