Merge pull request #8463 from DDDHuang/rewrite_log

chore(rewrite): add some log
This commit is contained in:
DDDHuang 2022-07-12 11:26:07 +08:00 committed by GitHub
commit 6cc39dfa23
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 21 additions and 13 deletions

View File

@ -20,6 +20,7 @@
-include_lib("emqx/include/emqx.hrl").
-include_lib("emqx/include/emqx_mqtt.hrl").
-include_lib("emqx/include/logger.hrl").
-ifdef(TEST).
-export([ compile/1
@ -45,6 +46,7 @@
load(RawRules) ->
{PubRules, SubRules} = compile(RawRules),
?LOG(info, "[Rewrite] Load rule pub ~0p sub ~0p", [PubRules, SubRules]),
emqx_hooks:put('client.subscribe', {?MODULE, rewrite_subscribe, [SubRules]}, 1000),
emqx_hooks:put('client.unsubscribe', {?MODULE, rewrite_unsubscribe, [SubRules]}, 1000),
emqx_hooks:put('message.publish', {?MODULE, rewrite_publish, [PubRules]}, 1000).
@ -62,6 +64,7 @@ rewrite_publish(Message = #message{topic = Topic}, Rules) ->
{ok, Message#message{topic = match_and_rewrite(Topic, Rules, Binds)}}.
unload(_) ->
?LOG(info, "[Rewrite] Unload"),
emqx_hooks:del('client.subscribe', {?MODULE, rewrite_subscribe}),
emqx_hooks:del('client.unsubscribe', {?MODULE, rewrite_unsubscribe}),
emqx_hooks:del('message.publish', {?MODULE, rewrite_publish}).
@ -93,6 +96,7 @@ match_and_rewrite(Topic, [{rewrite, Filter, MP, Dest} | Rules], Binds) ->
end.
rewrite(Topic, MP, Dest, Binds) ->
NewTopic =
case re:run(Topic, MP, [{capture, all_but_first, list}]) of
{match, Captured} ->
Vars = lists:zip(["\\$" ++ integer_to_list(I)
@ -102,7 +106,9 @@ rewrite(Topic, MP, Dest, Binds) ->
re:replace(Acc, Var, Val, [global])
end, Dest, Binds ++ Vars));
nomatch -> Topic
end.
end,
?LOG(debug, "[Rewrite] topic ~0p, params: ~0p dest topic: ~p", [Topic, Binds, NewTopic]),
NewTopic.
fill_client_binds(#{clientid := ClientId, username := Username}) ->
filter_client_binds([{"%c", ClientId}, {"%u", Username}]);

View File

@ -1,6 +1,6 @@
{application, emqx_modules,
[{description, "EMQ X Module Management"},
{vsn, "4.3.7"},
{vsn, "4.3.8"},
{modules, []},
{applications, [kernel,stdlib]},
{mod, {emqx_modules_app, []}},

View File

@ -1,7 +1,8 @@
%% -*- mode: erlang -*-
%% Unless you know what you are doing, DO NOT edit manually!!
{VSN,
[{"4.3.6",[{load_module,emqx_mod_rewrite,brutal_purge,soft_purge,[]}]},
[{"4.3.7",[{load_module,emqx_mod_rewrite,brutal_purge,soft_purge,[]}]},
{"4.3.6",[{load_module,emqx_mod_rewrite,brutal_purge,soft_purge,[]}]},
{"4.3.5",
[{load_module,emqx_modules,brutal_purge,soft_purge,[]},
{load_module,emqx_mod_rewrite,brutal_purge,soft_purge,[]}]},
@ -31,7 +32,8 @@
{load_module,emqx_mod_api_topic_metrics,brutal_purge,soft_purge,[]},
{load_module,emqx_mod_rewrite,brutal_purge,soft_purge,[]}]},
{<<".*">>,[]}],
[{"4.3.6",[{load_module,emqx_mod_rewrite,brutal_purge,soft_purge,[]}]},
[{"4.3.7",[{load_module,emqx_mod_rewrite,brutal_purge,soft_purge,[]}]},
{"4.3.6",[{load_module,emqx_mod_rewrite,brutal_purge,soft_purge,[]}]},
{"4.3.5",
[{load_module,emqx_modules,brutal_purge,soft_purge,[]},
{load_module,emqx_mod_rewrite,brutal_purge,soft_purge,[]}]},