diff --git a/apps/emqx_cluster_link/src/emqx_cluster_link_api.erl b/apps/emqx_cluster_link/src/emqx_cluster_link_api.erl index 4ff1ee7ef..45b97e8f7 100644 --- a/apps/emqx_cluster_link/src/emqx_cluster_link_api.erl +++ b/apps/emqx_cluster_link/src/emqx_cluster_link_api.erl @@ -288,21 +288,24 @@ format_metrics(Node, RouterMetrics, ResourceMetrics) -> #{ node => Node, metrics => #{ - ?route_metric => Routes, + router => #{ + ?route_metric => Routes + }, + forwarding => #{ + 'matched' => Get([counters, 'matched'], ResourceMetrics), + 'success' => Get([counters, 'success'], ResourceMetrics), + 'failed' => Get([counters, 'failed'], ResourceMetrics), + 'dropped' => Get([counters, 'dropped'], ResourceMetrics), + 'retried' => Get([counters, 'retried'], ResourceMetrics), + 'received' => Get([counters, 'received'], ResourceMetrics), - 'matched' => Get([counters, 'matched'], ResourceMetrics), - 'success' => Get([counters, 'success'], ResourceMetrics), - 'failed' => Get([counters, 'failed'], ResourceMetrics), - 'dropped' => Get([counters, 'dropped'], ResourceMetrics), - 'retried' => Get([counters, 'retried'], ResourceMetrics), - 'received' => Get([counters, 'received'], ResourceMetrics), + 'queuing' => Get([gauges, 'queuing'], ResourceMetrics), + 'inflight' => Get([gauges, 'inflight'], ResourceMetrics), - 'queuing' => Get([gauges, 'queuing'], ResourceMetrics), - 'inflight' => Get([gauges, 'inflight'], ResourceMetrics), - - 'rate' => Get([rate, 'matched', current], ResourceMetrics), - 'rate_last5m' => Get([rate, 'matched', last5m], ResourceMetrics), - 'rate_max' => Get([rate, 'matched', max], ResourceMetrics) + 'rate' => Get([rate, 'matched', current], ResourceMetrics), + 'rate_last5m' => Get([rate, 'matched', last5m], ResourceMetrics), + 'rate_max' => Get([rate, 'matched', max], ResourceMetrics) + } } }. diff --git a/apps/emqx_cluster_link/test/emqx_cluster_link_api_SUITE.erl b/apps/emqx_cluster_link/test/emqx_cluster_link_api_SUITE.erl index 5e3ae5d50..6fd54e228 100644 --- a/apps/emqx_cluster_link/test/emqx_cluster_link_api_SUITE.erl +++ b/apps/emqx_cluster_link/test/emqx_cluster_link_api_SUITE.erl @@ -478,52 +478,64 @@ t_metrics(Config) -> ?assertMatch( {200, #{ <<"metrics">> := #{ - <<"routes">> := 0, - <<"matched">> := _, - <<"success">> := _, - <<"failed">> := _, - <<"dropped">> := _, - <<"retried">> := _, - <<"received">> := _, - <<"queuing">> := _, - <<"inflight">> := _, - <<"rate">> := _, - <<"rate_last5m">> := _, - <<"rate_max">> := _ + <<"router">> := #{ + <<"routes">> := 0 + }, + <<"forwarding">> := #{ + <<"matched">> := _, + <<"success">> := _, + <<"failed">> := _, + <<"dropped">> := _, + <<"retried">> := _, + <<"received">> := _, + <<"queuing">> := _, + <<"inflight">> := _, + <<"rate">> := _, + <<"rate_last5m">> := _, + <<"rate_max">> := _ + } }, <<"node_metrics">> := [ #{ <<"node">> := _, <<"metrics">> := #{ - <<"routes">> := 0, - <<"matched">> := _, - <<"success">> := _, - <<"failed">> := _, - <<"dropped">> := _, - <<"retried">> := _, - <<"received">> := _, - <<"queuing">> := _, - <<"inflight">> := _, - <<"rate">> := _, - <<"rate_last5m">> := _, - <<"rate_max">> := _ + <<"router">> := #{ + <<"routes">> := 0 + }, + <<"forwarding">> := #{ + <<"matched">> := _, + <<"success">> := _, + <<"failed">> := _, + <<"dropped">> := _, + <<"retried">> := _, + <<"received">> := _, + <<"queuing">> := _, + <<"inflight">> := _, + <<"rate">> := _, + <<"rate_last5m">> := _, + <<"rate_max">> := _ + } } }, #{ <<"node">> := _, <<"metrics">> := #{ - <<"routes">> := 0, - <<"matched">> := _, - <<"success">> := _, - <<"failed">> := _, - <<"dropped">> := _, - <<"retried">> := _, - <<"received">> := _, - <<"queuing">> := _, - <<"inflight">> := _, - <<"rate">> := _, - <<"rate_last5m">> := _, - <<"rate_max">> := _ + <<"router">> := #{ + <<"routes">> := 0 + }, + <<"forwarding">> := #{ + <<"matched">> := _, + <<"success">> := _, + <<"failed">> := _, + <<"dropped">> := _, + <<"retried">> := _, + <<"received">> := _, + <<"queuing">> := _, + <<"inflight">> := _, + <<"rate">> := _, + <<"rate_last5m">> := _, + <<"rate_max">> := _ + } } } ] @@ -532,15 +544,15 @@ t_metrics(Config) -> ), ?assertMatch( {200, #{ - <<"metrics">> := #{<<"routes">> := 0}, + <<"metrics">> := #{<<"router">> := #{<<"routes">> := 0}}, <<"node_metrics">> := [ #{ <<"node">> := _, - <<"metrics">> := #{<<"routes">> := 0} + <<"metrics">> := #{<<"router">> := #{<<"routes">> := 0}} }, #{ <<"node">> := _, - <<"metrics">> := #{<<"routes">> := 0} + <<"metrics">> := #{<<"router">> := #{<<"routes">> := 0}} } ] }}, @@ -556,15 +568,15 @@ t_metrics(Config) -> %% cluster. ?assertMatch( {200, #{ - <<"metrics">> := #{<<"routes">> := 0}, + <<"metrics">> := #{<<"router">> := #{<<"routes">> := 0}}, <<"node_metrics">> := [ #{ <<"node">> := _, - <<"metrics">> := #{<<"routes">> := 0} + <<"metrics">> := #{<<"router">> := #{<<"routes">> := 0}} }, #{ <<"node">> := _, - <<"metrics">> := #{<<"routes">> := 0} + <<"metrics">> := #{<<"router">> := #{<<"routes">> := 0}} } ] }}, @@ -572,15 +584,15 @@ t_metrics(Config) -> ), ?assertMatch( {200, #{ - <<"metrics">> := #{<<"routes">> := 0}, + <<"metrics">> := #{<<"router">> := #{<<"routes">> := 0}}, <<"node_metrics">> := [ #{ <<"node">> := _, - <<"metrics">> := #{<<"routes">> := 0} + <<"metrics">> := #{<<"router">> := #{<<"routes">> := 0}} }, #{ <<"node">> := _, - <<"metrics">> := #{<<"routes">> := 0} + <<"metrics">> := #{<<"router">> := #{<<"routes">> := 0}} } ] }}, @@ -608,10 +620,10 @@ t_metrics(Config) -> 10, ?assertMatch( {200, #{ - <<"metrics">> := #{<<"routes">> := 4}, + <<"metrics">> := #{<<"router">> := #{<<"routes">> := 4}}, <<"node_metrics">> := [ - #{<<"metrics">> := #{<<"routes">> := 2}}, - #{<<"metrics">> := #{<<"routes">> := 2}} + #{<<"metrics">> := #{<<"router">> := #{<<"routes">> := 2}}}, + #{<<"metrics">> := #{<<"router">> := #{<<"routes">> := 2}}} ] }}, get_metrics(source, SourceName) @@ -619,7 +631,7 @@ t_metrics(Config) -> ), ?assertMatch( {200, #{ - <<"metrics">> := #{<<"routes">> := 0}, + <<"metrics">> := #{<<"router">> := #{<<"routes">> := 0}}, <<"node_metrics">> := _ }}, get_metrics(target, TargetName) @@ -640,10 +652,10 @@ t_metrics(Config) -> 10, ?assertMatch( {200, #{ - <<"metrics">> := #{<<"routes">> := 2}, + <<"metrics">> := #{<<"router">> := #{<<"routes">> := 2}}, <<"node_metrics">> := [ - #{<<"metrics">> := #{<<"routes">> := 1}}, - #{<<"metrics">> := #{<<"routes">> := 1}} + #{<<"metrics">> := #{<<"router">> := #{<<"routes">> := 1}}}, + #{<<"metrics">> := #{<<"router">> := #{<<"routes">> := 1}}} ] }}, get_metrics(source, SourceName) @@ -678,7 +690,7 @@ t_metrics(Config) -> 10, ?assertMatch( {200, #{ - <<"metrics">> := #{<<"routes">> := 0}, + <<"metrics">> := #{<<"router">> := #{<<"routes">> := 0}}, <<"node_metrics">> := _ }}, get_metrics(source, SourceName) @@ -700,7 +712,7 @@ t_metrics(Config) -> 10, ?assertMatch( {200, #{ - <<"metrics">> := #{<<"routes">> := 2}, + <<"metrics">> := #{<<"router">> := #{<<"routes">> := 2}}, <<"node_metrics">> := _ }}, get_metrics(source, SourceName)