From 97ed918e16b2426879958bb07d067a249927cee8 Mon Sep 17 00:00:00 2001 From: Pratik Mankawde <3397372+pratikmankawde@users.noreply.github.com> Date: Fri, 24 Jul 2026 21:02:31 +0100 Subject: [PATCH] fix(telemetry): Make overlay traffic bar-gauge labels readable The bar labels on 'Overlay Traffic Heatmap (All Categories, Bytes In)' were raw metric names carrying a redundant '_bytes_in' suffix, and the half-width 8-row panel truncated both the category and the node identity. - Strip the '_bytes_in' suffix from the derived series label; the panel title already states the metric is inbound bytes. - Widen the panel to full width and grow it to 12 rows so 20 bars render with their full category and node labels. - Shift the Sync Diagnostics row and the panels below it down by 4 to keep the layout gap-free. - Note the label derivation in the panel description. --- .../grafana/dashboards/ledger-data-sync.json | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/docker/telemetry/grafana/dashboards/ledger-data-sync.json b/docker/telemetry/grafana/dashboards/ledger-data-sync.json index 5fe30a4a14..3d2f6c7f7b 100644 --- a/docker/telemetry/grafana/dashboards/ledger-data-sync.json +++ b/docker/telemetry/grafana/dashboards/ledger-data-sync.json @@ -729,11 +729,11 @@ }, { "title": "Overlay Traffic Heatmap (All Categories, Bytes In)", - "description": "###### What this is:\n*All overlay traffic categories ranked by inbound bytes, giving an at-a-glance view of which message types consume the most receive bandwidth.*\n\n###### How it's computed:\n*Top categories by latest inbound byte value across all traffic categories.*\n\n###### Reading it:\n*The longest bars are the biggest bandwidth consumers; on a synced node transactions, proposals, and validations usually lead.*\n\n###### Healthy range:\n*workload-dependent.*\n\n###### Watch for:\n*A single ledger-data or fetch category dominating (ongoing sync) or an unexpected category topping the list.*\n\n###### Source:\n[OverlayImpl.cpp](https://github.com/XRPLF/rippled/blob/develop/src/xrpld/overlay/detail/OverlayImpl.cpp)\n\n###### Function:\n`OverlayImpl ctor (TrafficGauges)`", + "description": "###### What this is:\n*All overlay traffic categories ranked by inbound bytes, giving an at-a-glance view of which message types consume the most receive bandwidth.*\n\n###### How it's computed:\n*Top categories by latest inbound byte value across all traffic categories. Each bar is labelled with its traffic category followed by the node identity; the shared `_bytes_in` suffix is dropped from the category name because the panel already reports inbound bytes.*\n\n###### Reading it:\n*The longest bars are the biggest bandwidth consumers; on a synced node transactions, proposals, and validations usually lead.*\n\n###### Healthy range:\n*workload-dependent.*\n\n###### Watch for:\n*A single ledger-data or fetch category dominating (ongoing sync) or an unexpected category topping the list.*\n\n###### Source:\n[OverlayImpl.cpp](https://github.com/XRPLF/rippled/blob/develop/src/xrpld/overlay/detail/OverlayImpl.cpp)\n\n###### Function:\n`OverlayImpl ctor (TrafficGauges)`", "type": "bargauge", "gridPos": { - "h": 8, - "w": 12, + "h": 12, + "w": 24, "x": 0, "y": 56 }, @@ -756,7 +756,7 @@ "datasource": { "type": "prometheus" }, - "expr": "label_replace(topk(20, {service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", __name__=~\".*_bytes_in\", __name__!~\"total_.*\"}), \"series\", \"$1\", \"__name__\", \"(.*)\")" + "expr": "label_replace(topk(20, {service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", __name__=~\".*_bytes_in\", __name__!~\"total_.*\"}), \"series\", \"$1\", \"__name__\", \"(.*)_bytes_in\")" } ], "fieldConfig": { @@ -793,7 +793,7 @@ "h": 1, "w": 24, "x": 0, - "y": 64 + "y": 68 }, "id": 16, "panels": [] @@ -806,7 +806,7 @@ "h": 8, "w": 12, "x": 0, - "y": 65 + "y": 69 }, "options": { "tooltip": { @@ -910,7 +910,7 @@ "h": 8, "w": 12, "x": 12, - "y": 65 + "y": 69 }, "options": { "tooltip": { @@ -959,7 +959,7 @@ "h": 8, "w": 12, "x": 0, - "y": 73 + "y": 77 }, "options": { "tooltip": { @@ -1008,7 +1008,7 @@ "h": 8, "w": 12, "x": 12, - "y": 73 + "y": 77 }, "options": { "tooltip": { @@ -1085,7 +1085,7 @@ "h": 8, "w": 12, "x": 0, - "y": 81 + "y": 85 }, "options": { "tooltip": { @@ -1127,7 +1127,7 @@ "h": 8, "w": 12, "x": 12, - "y": 81 + "y": 85 }, "options": { "tooltip": { @@ -1169,7 +1169,7 @@ "h": 8, "w": 12, "x": 0, - "y": 89 + "y": 93 }, "options": { "tooltip": { @@ -1211,7 +1211,7 @@ "h": 8, "w": 12, "x": 12, - "y": 89 + "y": 93 }, "options": { "tooltip": { @@ -1267,7 +1267,7 @@ "h": 8, "w": 12, "x": 0, - "y": 97 + "y": 101 }, "options": { "tooltip": { @@ -1309,7 +1309,7 @@ "h": 8, "w": 12, "x": 12, - "y": 97 + "y": 101 }, "options": { "tooltip": {