From 5b4f32848922521de330ec93785b91fff7c29bda Mon Sep 17 00:00:00 2001 From: Pratik Mankawde <3397372+pratikmankawde@users.noreply.github.com> Date: Mon, 21 Sep 2026 17:00:52 +0100 Subject: [PATCH] feat(telemetry): add state-timeline pagination and multi-row annotations Every timeseries and state-timeline panel sets options.annotations.multiLane. The state-timeline panels set options.perPage to 5. 46 panels across 5 dashboards. --- .../grafana/dashboards/consensus-health.json | 72 +++++++++++++++++++ .../grafana/dashboards/ledger-operations.json | 16 +++++ .../grafana/dashboards/peer-network.json | 8 +++ .../grafana/dashboards/rpc-performance.json | 24 +++++++ .../dashboards/transaction-overview.json | 65 +++++++++++++++++ 5 files changed, 185 insertions(+) diff --git a/docker/telemetry/grafana/dashboards/consensus-health.json b/docker/telemetry/grafana/dashboards/consensus-health.json index bc42930978..977c2fdcd7 100644 --- a/docker/telemetry/grafana/dashboards/consensus-health.json +++ b/docker/telemetry/grafana/dashboards/consensus-health.json @@ -19,6 +19,10 @@ "y": 0 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -66,6 +70,10 @@ "y": 0 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -106,6 +114,10 @@ "y": 8 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -194,6 +206,10 @@ } ], "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -234,6 +250,10 @@ } ], "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -265,6 +285,10 @@ "y": 24 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -305,6 +329,10 @@ "y": 24 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -352,6 +380,10 @@ "y": 32 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -452,6 +484,10 @@ "overrides": [] }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -498,6 +534,10 @@ "overrides": [] }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -576,6 +616,10 @@ ] }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -629,6 +673,10 @@ "overrides": [] }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -744,6 +792,10 @@ "y": 64 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -791,6 +843,10 @@ "y": 72 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -838,6 +894,10 @@ "y": 72 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -885,6 +945,10 @@ "y": 80 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -932,6 +996,10 @@ "y": 80 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -979,6 +1047,10 @@ "y": 88 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", diff --git a/docker/telemetry/grafana/dashboards/ledger-operations.json b/docker/telemetry/grafana/dashboards/ledger-operations.json index 37673e5b62..216d07b608 100644 --- a/docker/telemetry/grafana/dashboards/ledger-operations.json +++ b/docker/telemetry/grafana/dashboards/ledger-operations.json @@ -51,6 +51,10 @@ "y": 8 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -170,6 +174,10 @@ "y": 16 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -217,6 +225,10 @@ "y": 16 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -289,6 +301,10 @@ "y": 24 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", diff --git a/docker/telemetry/grafana/dashboards/peer-network.json b/docker/telemetry/grafana/dashboards/peer-network.json index 9d9de27f58..4804111e1a 100644 --- a/docker/telemetry/grafana/dashboards/peer-network.json +++ b/docker/telemetry/grafana/dashboards/peer-network.json @@ -20,6 +20,10 @@ "y": 0 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -60,6 +64,10 @@ "y": 0 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", diff --git a/docker/telemetry/grafana/dashboards/rpc-performance.json b/docker/telemetry/grafana/dashboards/rpc-performance.json index b54b98a174..29720c8fe9 100644 --- a/docker/telemetry/grafana/dashboards/rpc-performance.json +++ b/docker/telemetry/grafana/dashboards/rpc-performance.json @@ -19,6 +19,10 @@ "y": 24 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -59,6 +63,10 @@ "y": 24 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -187,6 +195,10 @@ "y": 16 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -234,6 +246,10 @@ "y": 16 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -345,6 +361,10 @@ "y": 32 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -390,6 +410,10 @@ "y": 32 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", diff --git a/docker/telemetry/grafana/dashboards/transaction-overview.json b/docker/telemetry/grafana/dashboards/transaction-overview.json index 3fb01f7cd8..12fc795f63 100644 --- a/docker/telemetry/grafana/dashboards/transaction-overview.json +++ b/docker/telemetry/grafana/dashboards/transaction-overview.json @@ -19,6 +19,10 @@ "y": 0 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -66,6 +70,10 @@ "y": 0 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -150,6 +158,10 @@ "y": 8 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -230,6 +242,10 @@ "y": 16 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -277,6 +293,10 @@ "y": 24 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -365,6 +385,10 @@ "y": 32 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -410,6 +434,10 @@ "y": 32 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -455,7 +483,12 @@ "y": 40 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "mergeValues": true, + "perPage": 5, "showValue": "auto", "alignValue": "center", "rowHeight": 0.85, @@ -515,6 +548,10 @@ "y": 40 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -560,6 +597,10 @@ "y": 48 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -600,6 +641,10 @@ "y": 56 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -647,6 +692,10 @@ "y": 56 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -687,6 +736,10 @@ "y": 64 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -732,6 +785,10 @@ "y": 64 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -777,6 +834,10 @@ "y": 80 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc", @@ -822,6 +883,10 @@ "y": 72 }, "options": { + "annotations": { + "clustering": -1, + "multiLane": true + }, "tooltip": { "mode": "multi", "sort": "desc",