This is an automated email from the ASF dual-hosted git repository.
wu-sheng pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/skywalking-horizon-ui.git
The following commit(s) were added to refs/heads/main by this push:
new a0e25da mesh + general: drop the layerScope:true "Top 20 APIs" widget
a0e25da is described below
commit a0e25dacdc729b0d7e1ca6096dc1b6e6bd5200c2
Author: Wu Sheng <[email protected]>
AuthorDate: Sat May 16 23:57:00 2026 +0800
mesh + general: drop the layerScope:true "Top 20 APIs" widget
`layerScope: true` is a per-widget flag that tells the BFF to query the
metric without a service filter — the entity becomes `{ scope: All }`.
That LOOKS like "scope to the layer" but isn't: OAP's Entity input has
no `layer` field, so `{ scope: All }` is genuinely global. The MQE
returns top entities matched by the metric definition itself —
endpoints from any layer that emits `endpoint_cpm` leak into the list.
Symptoms: on the mesh (Istio Managed SVCs) per-service dashboard,
"Top 20 APIs" showed APIs from sidecar endpoints (mesh_dp) mixed in,
and ignored the selected service. Same anti-pattern existed on the
general layer.
Remove both. The service-scoped "Top 10 endpoints in service" widget
already gives per-service ranking, which is what operators expect on a
per-service dashboard. Layer-wide cross-service rollups belong on a
layer overview / topology page, not on a service drill-down.
---
apps/bff/src/bundled_templates/layers/general.json | 16 ---------------
apps/bff/src/bundled_templates/layers/mesh.json | 24 ----------------------
2 files changed, 40 deletions(-)
diff --git a/apps/bff/src/bundled_templates/layers/general.json
b/apps/bff/src/bundled_templates/layers/general.json
index b0b5b38..81df05c 100644
--- a/apps/bff/src/bundled_templates/layers/general.json
+++ b/apps/bff/src/bundled_templates/layers/general.json
@@ -72,22 +72,6 @@
},
"dashboards": {
"service": [
- {
- "id": "top_apis",
- "title": "Top 20 APIs",
- "tip": "Layer-wide ranking. Switch tabs to re-rank by traffic,
response time, or worst success rate.",
- "type": "top",
- "expressions": [
- "top_n(endpoint_cpm,20,des)",
- "top_n(endpoint_resp_time,20,des)",
- "top_n(endpoint_sla,20,asc)/100"
- ],
- "expressionLabels": ["Traffic", "Slow", "Successful Rate"],
- "expressionUnits": ["rpm", "ms", "%"],
- "layerScope": true,
- "span": 3,
- "rowSpan": 4
- },
{
"id": "traffic_line",
"title": "Traffic",
diff --git a/apps/bff/src/bundled_templates/layers/mesh.json
b/apps/bff/src/bundled_templates/layers/mesh.json
index e667cae..9a7e110 100644
--- a/apps/bff/src/bundled_templates/layers/mesh.json
+++ b/apps/bff/src/bundled_templates/layers/mesh.json
@@ -99,30 +99,6 @@
},
"dashboards": {
"service": [
- {
- "id": "top_apis",
- "title": "Top 20 APIs",
- "tip": "Layer-wide endpoint ranking. Switch tabs to re-rank by
traffic, response time, or worst success rate.",
- "type": "top",
- "expressions": [
- "top_n(endpoint_cpm,20,des)",
- "top_n(endpoint_resp_time,20,des)",
- "top_n(endpoint_sla,20,asc)/100"
- ],
- "expressionLabels": [
- "Traffic",
- "Slow",
- "Successful Rate"
- ],
- "expressionUnits": [
- "rpm",
- "ms",
- "%"
- ],
- "layerScope": true,
- "span": 3,
- "rowSpan": 4
- },
{
"id": "traffic_line",
"title": "Traffic",