fix(emqx_modules): ignore already_existed/not_found errors for added/removed topic metrics

This commit is contained in:
Serge Tupchii 2023-07-21 12:17:47 +03:00
parent b37920d2e5
commit ee97cf8e33
1 changed files with 4 additions and 3 deletions

View File

@ -168,10 +168,11 @@ post_config_update(_, _UpdateReq, NewConfig, OldConfig, _AppEnvs) ->
} = emqx_utils:diff_lists(NewConfig, OldConfig, fun(#{topic := T}) -> T end),
Deregistered = [emqx_topic_metrics:deregister(T) || #{topic := T} <- Removed],
Registered = [emqx_topic_metrics:register(T) || #{topic := T} <- Added],
Errs = [Res || Res <- Registered ++ Deregistered, Res =/= ok],
case Errs of
DeregisteredErrs = [Res || Res <- Deregistered, Res =/= ok, Res =/= {error, topic_not_found}],
RegisteredErrs = [Res || Res <- Registered, Res =/= ok, Res =/= {error, already_existed}],
case DeregisteredErrs ++ RegisteredErrs of
[] -> ok;
_ -> {error, Errs}
Errs -> {error, Errs}
end.
%%--------------------------------------------------------------------