From 015027d44af4390235338a63ae82d54d04d117ba Mon Sep 17 00:00:00 2001 From: EMQ-YangM Date: Mon, 7 Mar 2022 14:43:13 +0800 Subject: [PATCH] fix(emqx_bridge_api): fix aggregate_metrics --- apps/emqx_bridge/src/emqx_bridge_api.erl | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/apps/emqx_bridge/src/emqx_bridge_api.erl b/apps/emqx_bridge/src/emqx_bridge_api.erl index 27171bd08..e2f5d7d4a 100644 --- a/apps/emqx_bridge/src/emqx_bridge_api.erl +++ b/apps/emqx_bridge/src/emqx_bridge_api.erl @@ -401,12 +401,12 @@ collect_status(Bridges) -> [maps:with([node, status], B) || B <- Bridges]. aggregate_status(AllStatus) -> - AllConnected = lists:all(fun (#{status := connected}) -> true; - (_) -> false - end, AllStatus), - case AllConnected of - true -> connected; - false -> disconnected + Head = fun ([A | _]) -> A end, + HeadVal = maps:get(status, Head(AllStatus), connecting), + AllRes = lists:all(fun (#{status := Val}) -> Val == HeadVal end, AllStatus), + case AllRes of + true -> HeadVal; + false -> inconsistent end. collect_metrics(Bridges) -> @@ -423,13 +423,12 @@ aggregate_metrics(AllMetrics) -> format_resp(#{id := Id, raw_config := RawConf, resource_data := #{status := Status, metrics := Metrics}}) -> {Type, BridgeName} = emqx_bridge:parse_bridge_id(Id), - IsConnected = fun(connected) -> connected; (_) -> disconnected end, RawConf#{ id => Id, type => Type, name => maps:get(<<"name">>, RawConf, BridgeName), node => node(), - status => IsConnected(Status), + status => Status, metrics => format_metrics(Metrics) }.