From f20f05161f1f936e9354fd43ee98c45c8e11789c Mon Sep 17 00:00:00 2001 From: firest Date: Thu, 5 May 2022 17:21:13 +0800 Subject: [PATCH] fix(gateway): sum the cluster connection data --- apps/emqx_gateway/src/emqx_gateway_http.erl | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/apps/emqx_gateway/src/emqx_gateway_http.erl b/apps/emqx_gateway/src/emqx_gateway_http.erl index fc17ff6d8..1ccea1455 100644 --- a/apps/emqx_gateway/src/emqx_gateway_http.erl +++ b/apps/emqx_gateway/src/emqx_gateway_http.erl @@ -116,11 +116,13 @@ gateways(Status) -> ], GwInfo0 ), + NodeStatus = cluster_gateway_status(GwName), + {MaxCons, CurrCons} = sum_cluster_connections(NodeStatus), GwInfo1#{ - max_connections => max_connections_count(Config), - current_connections => current_connections_count(GwName), + max_connections => MaxCons, + current_connections => CurrCons, listeners => get_listeners_status(GwName, Config), - node_status => cluster_gateway_status(GwName) + node_status => NodeStatus } end end, @@ -568,3 +570,14 @@ to_list(B) when is_binary(B) -> %%-------------------------------------------------------------------- %% Internal funcs +sum_cluster_connections(List) -> + sum_cluster_connections(List, 0, 0). + +sum_cluster_connections( + [#{max_connections := Max, current_connections := Current} | T], MaxAcc, CurrAcc +) -> + sum_cluster_connections(T, MaxAcc + Max, Current + CurrAcc); +sum_cluster_connections([_ | T], MaxAcc, CurrAcc) -> + sum_cluster_connections(T, MaxAcc, CurrAcc); +sum_cluster_connections([], MaxAcc, CurrAcc) -> + {MaxAcc, CurrAcc}.