From ea2d4674dfbb445495827fc372659ed92b590c06 Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Thu, 30 Dec 2021 15:45:13 +0800 Subject: [PATCH] fix(resource): metrics were cleared after updating the resource --- apps/emqx_resource/src/emqx_resource_instance.erl | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/apps/emqx_resource/src/emqx_resource_instance.erl b/apps/emqx_resource/src/emqx_resource_instance.erl index c23d55511..745b8b684 100644 --- a/apps/emqx_resource/src/emqx_resource_instance.erl +++ b/apps/emqx_resource/src/emqx_resource_instance.erl @@ -149,7 +149,7 @@ do_recreate(InstId, ResourceType, NewConfig, Params) -> TestInstId = iolist_to_binary(emqx_misc:gen_id(16)), case do_create_dry_run(TestInstId, ResourceType, Config) of ok -> - do_remove(ResourceType, InstId, ResourceState), + do_remove(ResourceType, InstId, ResourceState, false), do_create(InstId, ResourceType, Config, #{force_create => true}); Error -> Error @@ -208,10 +208,15 @@ do_remove(InstId) -> end. do_remove(Mod, InstId, ResourceState) -> + do_remove(Mod, InstId, ResourceState, true). + +do_remove(Mod, InstId, ResourceState, ClearMetrics) -> _ = emqx_resource:call_stop(InstId, Mod, ResourceState), ets:delete(emqx_resource_instance, InstId), - ok = emqx_plugin_libs_metrics:clear_metrics(resource_metrics, InstId), - ok. + case ClearMetrics of + true -> ok = emqx_plugin_libs_metrics:clear_metrics(resource_metrics, InstId); + false -> ok + end. do_restart(InstId) -> case lookup(InstId) of