From dbadf50ceed46728211df88ec66859f13296b12e Mon Sep 17 00:00:00 2001 From: DDDHuang <44492639+DDDHuang@users.noreply.github.com> Date: Sat, 16 Apr 2022 15:05:16 +0800 Subject: [PATCH] fix: monitor rate default 0 --- apps/emqx_dashboard/src/emqx_dashboard_monitor.erl | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/apps/emqx_dashboard/src/emqx_dashboard_monitor.erl b/apps/emqx_dashboard/src/emqx_dashboard_monitor.erl index 52c2c25af..129654cfa 100644 --- a/apps/emqx_dashboard/src/emqx_dashboard_monitor.erl +++ b/apps/emqx_dashboard/src/emqx_dashboard_monitor.erl @@ -18,6 +18,8 @@ -include("emqx_dashboard.hrl"). +-include_lib("emqx/include/logger.hrl"). + -behaviour(gen_server). -boot_mnesia({mnesia, [boot]}). @@ -128,7 +130,16 @@ current_rate() -> current_rate(all) -> current_rate(); current_rate(Node) when Node == node() -> - do_call(current_rate); + try + {ok, Rate} = do_call(current_rate), + {ok, Rate} + catch _E:R:_S -> + ?SLOG(warning, #{msg => "Dashboard monitor error", reason => R}), + %% Rate map 0, ensure api will not crash. + %% When joining cluster, dashboard monitor restart. + Rate0 = [{Key, 0} || Key <- ?GAUGE_SAMPLER_LIST ++ maps:values(?DELTA_SAMPLER_RATE_MAP)], + {ok, maps:from_list(Rate0)} + end; current_rate(Node) -> case emqx_dashboard_proto_v1:current_rate(Node) of {badrpc, Reason} ->