feat(rule-engine): add proto_name/proto_ver for $event/client_disconnected event

This commit is contained in:
JianBo He 2022-05-16 14:30:41 +08:00
parent 61014e5088
commit 442248f1a4
3 changed files with 11 additions and 2 deletions

View File

@ -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.

View File

@ -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}]},

View File

@ -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()}