From 00d4e4b9d98d571c5f0f108fe39ca12d81d91cbf Mon Sep 17 00:00:00 2001 From: DDDHuang <44492639+DDDHuang@users.noreply.github.com> Date: Tue, 26 Apr 2022 15:04:08 +0800 Subject: [PATCH] fix: monitor samplers data calculate topics error --- .../src/emqx_dashboard_monitor.erl | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/apps/emqx_dashboard/src/emqx_dashboard_monitor.erl b/apps/emqx_dashboard/src/emqx_dashboard_monitor.erl index 02a881c53..53fc6e563 100644 --- a/apps/emqx_dashboard/src/emqx_dashboard_monitor.erl +++ b/apps/emqx_dashboard/src/emqx_dashboard_monitor.erl @@ -237,9 +237,19 @@ merge_cluster_samplers(TS, NodeData, Cluster) -> undefined -> Cluster#{TS => NodeData}; ClusterData -> - Cluster#{TS => count_map(NodeData, ClusterData)} + Cluster#{TS => merge_cluster_sampler_map(NodeData, ClusterData)} end. +merge_cluster_sampler_map(M1, M2) -> + Fun = + fun + (topics, Map) -> + Map; + (Key, Map) -> + Map#{Key => maps:get(Key, M1) + maps:get(Key, M2)} + end, + lists:foldl(Fun, #{}, ?SAMPLER_LIST). + merge_cluster_rate(Node, Cluster) -> Fun = fun(Key, Value, NCluster) -> @@ -365,13 +375,6 @@ internal_format(List) when is_list(List) -> internal_format(#emqx_monit{time = Time, data = Data}) -> #{Time => Data}. -count_map(M1, M2) -> - Fun = - fun(Key, Map) -> - Map#{Key => maps:get(Key, M1) + maps:get(Key, M2)} - end, - lists:foldl(Fun, #{}, ?SAMPLER_LIST). - getstats(Key) -> %% Stats ets maybe not exist when ekka join. try