From 202fefe896e821e8c20c08a916265d220e2d981c Mon Sep 17 00:00:00 2001 From: Pratik Mankawde <3397372+pratikmankawde@users.noreply.github.com> Date: Mon, 21 Sep 2026 19:06:01 +0100 Subject: [PATCH 1/3] feat(telemetry): scale count units and drop meaningless decimals Panels whose unit counts whole things switch from a custom `suffix:` unit to `si:`, so a large value reads 15 k nodes/s instead of 15000 nodes/s. A custom suffix unit is formatted by toFixedUnit, which never scales; si: goes through SIPrefix and does. decimals is set to 0 on the same panels, because a fraction of a ledger or a node says nothing. The two settings need each other: on its own decimals 0 would round a slow rate down to zero, and si: shifts it to the milli step instead. Left alone: the one panel whose unit is a seconds-per-second ratio. 20 panels across 5 dashboards. --- .../grafana/dashboards/consensus-health.json | 21 ++++++++++++------- .../grafana/dashboards/ledger-operations.json | 3 ++- .../grafana/dashboards/peer-network.json | 6 ++++-- .../grafana/dashboards/rpc-performance.json | 9 +++++--- .../dashboards/transaction-overview.json | 21 ++++++++++++------- 5 files changed, 40 insertions(+), 20 deletions(-) diff --git a/docker/telemetry/grafana/dashboards/consensus-health.json b/docker/telemetry/grafana/dashboards/consensus-health.json index 977c2fdcd7..1ae6303470 100644 --- a/docker/telemetry/grafana/dashboards/consensus-health.json +++ b/docker/telemetry/grafana/dashboards/consensus-health.json @@ -91,7 +91,8 @@ ], "fieldConfig": { "defaults": { - "unit": "suffix: proposals/s", + "unit": "si: proposals/s", + "decimals": 0, "custom": { "axisLabel": "Proposals / Sec", "spanNulls": 1800000, @@ -306,7 +307,8 @@ ], "fieldConfig": { "defaults": { - "unit": "suffix: closes/s", + "unit": "si: closes/s", + "decimals": 0, "custom": { "axisLabel": "Closes / Sec", "spanNulls": 1800000, @@ -357,7 +359,8 @@ ], "fieldConfig": { "defaults": { - "unit": "suffix: events/s", + "unit": "si: events/s", + "decimals": 0, "custom": { "axisLabel": "Events / Sec", "spanNulls": 1800000, @@ -408,7 +411,8 @@ ], "fieldConfig": { "defaults": { - "unit": "suffix: events/s", + "unit": "si: events/s", + "decimals": 0, "custom": { "axisLabel": "Events / Sec", "spanNulls": 1800000, @@ -820,7 +824,8 @@ ], "fieldConfig": { "defaults": { - "unit": "suffix: failures/s", + "unit": "si: failures/s", + "decimals": 0, "custom": { "axisLabel": "Failures / Sec", "spanNulls": 1800000, @@ -1024,7 +1029,8 @@ ], "fieldConfig": { "defaults": { - "unit": "suffix: checks/s", + "unit": "si: checks/s", + "decimals": 0, "custom": { "axisLabel": "Checks / Sec", "spanNulls": 1800000, @@ -1068,7 +1074,8 @@ ], "fieldConfig": { "defaults": { - "unit": "suffix: changes/s", + "unit": "si: changes/s", + "decimals": 0, "custom": { "axisLabel": "Changes / Sec", "spanNulls": 1800000, diff --git a/docker/telemetry/grafana/dashboards/ledger-operations.json b/docker/telemetry/grafana/dashboards/ledger-operations.json index 216d07b608..199645ff3b 100644 --- a/docker/telemetry/grafana/dashboards/ledger-operations.json +++ b/docker/telemetry/grafana/dashboards/ledger-operations.json @@ -246,7 +246,8 @@ ], "fieldConfig": { "defaults": { - "unit": "suffix: transactions/s", + "unit": "si: transactions/s", + "decimals": 0, "custom": { "axisLabel": "Transactions / Sec", "spanNulls": 1800000, diff --git a/docker/telemetry/grafana/dashboards/peer-network.json b/docker/telemetry/grafana/dashboards/peer-network.json index 4804111e1a..38e3cc2d4a 100644 --- a/docker/telemetry/grafana/dashboards/peer-network.json +++ b/docker/telemetry/grafana/dashboards/peer-network.json @@ -41,7 +41,8 @@ ], "fieldConfig": { "defaults": { - "unit": "suffix: proposals/s", + "unit": "si: proposals/s", + "decimals": 0, "custom": { "axisLabel": "Proposals / Sec", "spanNulls": 1800000, @@ -85,7 +86,8 @@ ], "fieldConfig": { "defaults": { - "unit": "suffix: validations/s", + "unit": "si: validations/s", + "decimals": 0, "custom": { "axisLabel": "Validations / Sec", "spanNulls": 1800000, diff --git a/docker/telemetry/grafana/dashboards/rpc-performance.json b/docker/telemetry/grafana/dashboards/rpc-performance.json index 29720c8fe9..5125e9ac57 100644 --- a/docker/telemetry/grafana/dashboards/rpc-performance.json +++ b/docker/telemetry/grafana/dashboards/rpc-performance.json @@ -274,7 +274,8 @@ ], "fieldConfig": { "defaults": { - "unit": "suffix: commands/s", + "unit": "si: commands/s", + "decimals": 0, "custom": { "axisLabel": "Commands / Sec", "spanNulls": 1800000, @@ -387,7 +388,8 @@ ], "fieldConfig": { "defaults": { - "unit": "suffix: requests/s", + "unit": "si: requests/s", + "decimals": 0, "custom": { "axisLabel": "Requests / Sec", "spanNulls": 1800000, @@ -438,7 +440,8 @@ ], "fieldConfig": { "defaults": { - "unit": "suffix: requests/s", + "unit": "si: requests/s", + "decimals": 0, "custom": { "axisLabel": "Requests / Sec", "spanNulls": 1800000, diff --git a/docker/telemetry/grafana/dashboards/transaction-overview.json b/docker/telemetry/grafana/dashboards/transaction-overview.json index 12fc795f63..8d6211580f 100644 --- a/docker/telemetry/grafana/dashboards/transaction-overview.json +++ b/docker/telemetry/grafana/dashboards/transaction-overview.json @@ -47,7 +47,8 @@ ], "fieldConfig": { "defaults": { - "unit": "suffix: transactions/s", + "unit": "si: transactions/s", + "decimals": 0, "custom": { "axisLabel": "Transactions / Sec", "spanNulls": 1800000, @@ -179,7 +180,8 @@ ], "fieldConfig": { "defaults": { - "unit": "suffix: transactions/s", + "unit": "si: transactions/s", + "decimals": 0, "custom": { "axisLabel": "Transactions / Sec", "spanNulls": 1800000, @@ -411,7 +413,8 @@ ], "fieldConfig": { "defaults": { - "unit": "suffix: transactions/s", + "unit": "si: transactions/s", + "decimals": 0, "custom": { "axisLabel": "Transactions / Sec", "spanNulls": 1800000, @@ -460,7 +463,8 @@ ], "fieldConfig": { "defaults": { - "unit": "suffix: transactions/s", + "unit": "si: transactions/s", + "decimals": 0, "custom": { "axisLabel": "Transactions / Sec", "spanNulls": 1800000, @@ -618,7 +622,8 @@ ], "fieldConfig": { "defaults": { - "unit": "suffix: enqueues/s", + "unit": "si: enqueues/s", + "decimals": 0, "custom": { "axisLabel": "Enqueues / Sec", "spanNulls": 1800000, @@ -713,7 +718,8 @@ ], "fieldConfig": { "defaults": { - "unit": "suffix: cleanups/s", + "unit": "si: cleanups/s", + "decimals": 0, "custom": { "axisLabel": "Cleanups / Sec", "spanNulls": 1800000, @@ -860,7 +866,8 @@ ], "fieldConfig": { "defaults": { - "unit": "suffix: failures/s", + "unit": "si: failures/s", + "decimals": 0, "custom": { "axisLabel": "Failures / Sec", "spanNulls": 1800000, From 5c8495e230149e1a45d32c8f7cc9ffb53c873416 Mon Sep 17 00:00:00 2001 From: Pratik Mankawde <3397372+pratikmankawde@users.noreply.github.com> Date: Mon, 21 Sep 2026 19:06:03 +0100 Subject: [PATCH 2/3] feat(telemetry): scale count units and drop meaningless decimals Panels whose unit counts whole things switch from a custom `suffix:` unit to `si:`, so a large value reads 15 k nodes/s instead of 15000 nodes/s. A custom suffix unit is formatted by toFixedUnit, which never scales; si: goes through SIPrefix and does. decimals is set to 0 on the same panels, because a fraction of a ledger or a node says nothing. The two settings need each other: on its own decimals 0 would round a slow rate down to zero, and si: shifts it to the milli step instead. Left alone: the one panel whose unit is a seconds-per-second ratio. 26 panels across 9 dashboards, plus 3 legends and one name placement. --- .../grafana/dashboards/consensus-health.json | 3 ++- .../grafana/dashboards/ledger-data-sync.json | 22 ++++++++++++------- .../grafana/dashboards/ledger-operations.json | 9 +++++--- .../grafana/dashboards/network-traffic.json | 12 ++++++---- .../grafana/dashboards/node-health.json | 6 +++-- .../dashboards/overlay-traffic-detail.json | 9 +++++--- .../grafana/dashboards/rpc-pathfinding.json | 15 ++++++++----- .../grafana/dashboards/rpc-performance.json | 3 ++- .../dashboards/transaction-overview.json | 3 ++- 9 files changed, 54 insertions(+), 28 deletions(-) diff --git a/docker/telemetry/grafana/dashboards/consensus-health.json b/docker/telemetry/grafana/dashboards/consensus-health.json index 80646b94ee..f6a3d21dc3 100644 --- a/docker/telemetry/grafana/dashboards/consensus-health.json +++ b/docker/telemetry/grafana/dashboards/consensus-health.json @@ -119,7 +119,8 @@ ], "fieldConfig": { "defaults": { - "unit": "suffix: validations/s" + "unit": "si: validations/s", + "decimals": 0 }, "overrides": [] }, diff --git a/docker/telemetry/grafana/dashboards/ledger-data-sync.json b/docker/telemetry/grafana/dashboards/ledger-data-sync.json index 0d32621d9d..204f9c1b96 100644 --- a/docker/telemetry/grafana/dashboards/ledger-data-sync.json +++ b/docker/telemetry/grafana/dashboards/ledger-data-sync.json @@ -26,7 +26,7 @@ "sort": "desc" }, "displayMode": "gradient", - "namePlacement": "top", + "namePlacement": "auto", "orientation": "horizontal", "reduceOptions": { "calcs": ["lastNotNull"], @@ -625,7 +625,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.series} [${__field.labels.service_instance_id} ${__field.labels.xrpl_branch} ${__field.labels.xrpl_node_role} ${__field.labels.xrpl_work_item}]", - "unit": "suffix: messages/s", + "unit": "si: messages/s", + "decimals": 0, "custom": { "axisLabel": "Messages / Sec", "spanNulls": 1800000, @@ -679,7 +680,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.series} [${__field.labels.service_instance_id} ${__field.labels.xrpl_branch} ${__field.labels.xrpl_node_role} ${__field.labels.xrpl_work_item}]", - "unit": "suffix: messages/s", + "unit": "si: messages/s", + "decimals": 0, "custom": { "axisLabel": "Messages / Sec", "spanNulls": 1800000, @@ -727,7 +729,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.series} [${__field.labels.service_instance_id} ${__field.labels.xrpl_branch} ${__field.labels.xrpl_node_role} ${__field.labels.xrpl_work_item}]", - "unit": "suffix: messages/s", + "unit": "si: messages/s", + "decimals": 0, "custom": { "axisLabel": "Messages / Sec", "spanNulls": 1800000, @@ -787,7 +790,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.series} [${__field.labels.service_instance_id} ${__field.labels.xrpl_branch} ${__field.labels.xrpl_node_role} ${__field.labels.xrpl_work_item}]", - "unit": "suffix: messages/s", + "unit": "si: messages/s", + "decimals": 0, "custom": { "axisLabel": "Messages / Sec", "spanNulls": 1800000, @@ -1128,7 +1132,7 @@ ], "fieldConfig": { "defaults": { - "displayName": "State ${__field.labels.xrpl_ident}", + "displayName": "${__field.labels.xrpl_ident}", "unit": "none", "custom": { "fillOpacity": 80, @@ -1243,7 +1247,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.series} ${__field.labels.xrpl_ident}", - "unit": "suffix: ledgers/s", + "unit": "si: ledgers/s", + "decimals": 0, "custom": { "axisLabel": "Ledgers / Sec & Fetches / Sec", "spanNulls": 1800000, @@ -1554,7 +1559,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.series} ${__field.labels.xrpl_ident}", - "unit": "suffix: reads/s", + "unit": "si: reads/s", + "decimals": 0, "custom": { "axisLabel": "Reads / Sec & Depth", "spanNulls": 1800000, diff --git a/docker/telemetry/grafana/dashboards/ledger-operations.json b/docker/telemetry/grafana/dashboards/ledger-operations.json index 5797cbcc6b..89b2506313 100644 --- a/docker/telemetry/grafana/dashboards/ledger-operations.json +++ b/docker/telemetry/grafana/dashboards/ledger-operations.json @@ -49,7 +49,8 @@ ], "fieldConfig": { "defaults": { - "unit": "suffix: ledgers/s" + "unit": "si: ledgers/s", + "decimals": 0 }, "overrides": [] }, @@ -86,7 +87,8 @@ ], "fieldConfig": { "defaults": { - "unit": "suffix: ledgers/s" + "unit": "si: ledgers/s", + "decimals": 0 }, "overrides": [] }, @@ -364,7 +366,8 @@ ], "fieldConfig": { "defaults": { - "unit": "suffix: ledgers/s" + "unit": "si: ledgers/s", + "decimals": 0 }, "overrides": [] }, diff --git a/docker/telemetry/grafana/dashboards/network-traffic.json b/docker/telemetry/grafana/dashboards/network-traffic.json index 2e3d8e89eb..6e9dbc1a6d 100644 --- a/docker/telemetry/grafana/dashboards/network-traffic.json +++ b/docker/telemetry/grafana/dashboards/network-traffic.json @@ -218,7 +218,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.series} [${__field.labels.service_instance_id} ${__field.labels.xrpl_branch} ${__field.labels.xrpl_node_role} ${__field.labels.xrpl_work_item}]", - "unit": "suffix: messages/s", + "unit": "si: messages/s", + "decimals": 0, "custom": { "axisLabel": "Messages / Sec", "spanNulls": 1800000, @@ -278,7 +279,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.series} [${__field.labels.service_instance_id} ${__field.labels.xrpl_branch} ${__field.labels.xrpl_node_role} ${__field.labels.xrpl_work_item}]", - "unit": "suffix: messages/s", + "unit": "si: messages/s", + "decimals": 0, "custom": { "axisLabel": "Messages / Sec", "spanNulls": 1800000, @@ -344,7 +346,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.series} [${__field.labels.service_instance_id} ${__field.labels.xrpl_branch} ${__field.labels.xrpl_node_role} ${__field.labels.xrpl_work_item}]", - "unit": "suffix: messages/s", + "unit": "si: messages/s", + "decimals": 0, "custom": { "axisLabel": "Messages / Sec", "spanNulls": 1800000, @@ -410,7 +413,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.series} [${__field.labels.service_instance_id} ${__field.labels.xrpl_branch} ${__field.labels.xrpl_node_role} ${__field.labels.xrpl_work_item}]", - "unit": "suffix: messages/s", + "unit": "si: messages/s", + "decimals": 0, "custom": { "axisLabel": "Messages / Sec", "spanNulls": 1800000, diff --git a/docker/telemetry/grafana/dashboards/node-health.json b/docker/telemetry/grafana/dashboards/node-health.json index 6501e82369..9102791961 100644 --- a/docker/telemetry/grafana/dashboards/node-health.json +++ b/docker/telemetry/grafana/dashboards/node-health.json @@ -140,7 +140,8 @@ ], "fieldConfig": { "defaults": { - "unit": "suffix: fetches/s" + "unit": "si: fetches/s", + "decimals": 0 }, "overrides": [] }, @@ -176,7 +177,8 @@ ], "fieldConfig": { "defaults": { - "unit": "suffix: mismatches/s", + "unit": "si: mismatches/s", + "decimals": 0, "thresholds": { "steps": [ { diff --git a/docker/telemetry/grafana/dashboards/overlay-traffic-detail.json b/docker/telemetry/grafana/dashboards/overlay-traffic-detail.json index 6ce38c9271..1fc334288b 100644 --- a/docker/telemetry/grafana/dashboards/overlay-traffic-detail.json +++ b/docker/telemetry/grafana/dashboards/overlay-traffic-detail.json @@ -71,7 +71,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.series} [${__field.labels.service_instance_id} ${__field.labels.xrpl_branch} ${__field.labels.xrpl_node_role} ${__field.labels.xrpl_work_item}]", - "unit": "suffix: messages/s", + "unit": "si: messages/s", + "decimals": 0, "custom": { "axisLabel": "Messages / Sec", "spanNulls": 1800000, @@ -215,7 +216,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.series} [${__field.labels.service_instance_id} ${__field.labels.xrpl_branch} ${__field.labels.xrpl_node_role} ${__field.labels.xrpl_work_item}]", - "unit": "suffix: messages/s", + "unit": "si: messages/s", + "decimals": 0, "custom": { "axisLabel": "Messages / Sec & Bytes / Sec", "spanNulls": 1800000, @@ -364,7 +366,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.series} [${__field.labels.service_instance_id} ${__field.labels.xrpl_branch} ${__field.labels.xrpl_node_role} ${__field.labels.xrpl_work_item}]", - "unit": "suffix: messages/s", + "unit": "si: messages/s", + "decimals": 0, "custom": { "axisLabel": "Messages / Sec", "spanNulls": 1800000, diff --git a/docker/telemetry/grafana/dashboards/rpc-pathfinding.json b/docker/telemetry/grafana/dashboards/rpc-pathfinding.json index aa7cf2e579..da69f37df2 100644 --- a/docker/telemetry/grafana/dashboards/rpc-pathfinding.json +++ b/docker/telemetry/grafana/dashboards/rpc-pathfinding.json @@ -287,7 +287,8 @@ ], "fieldConfig": { "defaults": { - "unit": "suffix: warnings/s", + "unit": "si: warnings/s", + "decimals": 0, "thresholds": { "steps": [ { @@ -340,7 +341,8 @@ ], "fieldConfig": { "defaults": { - "unit": "suffix: drops/s", + "unit": "si: drops/s", + "decimals": 0, "thresholds": { "steps": [ { @@ -525,7 +527,8 @@ ], "fieldConfig": { "defaults": { - "unit": "suffix: calls/s", + "unit": "si: calls/s", + "decimals": 0, "custom": { "axisLabel": "Calls / Sec", "spanNulls": 1800000, @@ -623,7 +626,8 @@ ], "fieldConfig": { "defaults": { - "unit": "suffix: calls/s", + "unit": "si: calls/s", + "decimals": 0, "custom": { "axisLabel": "Calls / Sec", "spanNulls": 1800000, @@ -737,7 +741,8 @@ ], "fieldConfig": { "defaults": { - "unit": "suffix: operations/s", + "unit": "si: operations/s", + "decimals": 0, "custom": { "axisLabel": "Operations / Sec", "spanNulls": 1800000, diff --git a/docker/telemetry/grafana/dashboards/rpc-performance.json b/docker/telemetry/grafana/dashboards/rpc-performance.json index bb264b823d..8e19832dd0 100644 --- a/docker/telemetry/grafana/dashboards/rpc-performance.json +++ b/docker/telemetry/grafana/dashboards/rpc-performance.json @@ -126,7 +126,8 @@ ], "fieldConfig": { "defaults": { - "unit": "suffix: messages/s" + "unit": "si: messages/s", + "decimals": 0 }, "overrides": [] }, diff --git a/docker/telemetry/grafana/dashboards/transaction-overview.json b/docker/telemetry/grafana/dashboards/transaction-overview.json index 6c52b04c9c..7b61eb78d5 100644 --- a/docker/telemetry/grafana/dashboards/transaction-overview.json +++ b/docker/telemetry/grafana/dashboards/transaction-overview.json @@ -37,7 +37,8 @@ ], "fieldConfig": { "defaults": { - "unit": "suffix: transactions/s", + "unit": "si: transactions/s", + "decimals": 0, "thresholds": { "steps": [ { From 7d38d1bff88215ae903271837424a813dccb0fe9 Mon Sep 17 00:00:00 2001 From: Pratik Mankawde <3397372+pratikmankawde@users.noreply.github.com> Date: Mon, 21 Sep 2026 19:06:05 +0100 Subject: [PATCH 3/3] feat(telemetry): scale count units and drop meaningless decimals Panels whose unit counts whole things switch from a custom `suffix:` unit to `si:`, so a large value reads 15 k nodes/s instead of 15000 nodes/s. A custom suffix unit is formatted by toFixedUnit, which never scales; si: goes through SIPrefix and does. decimals is set to 0 on the same panels, because a fraction of a ledger or a node says nothing. The two settings need each other: on its own decimals 0 would round a slow rate down to zero, and si: shifts it to the milli step instead. Left alone: the one panel whose unit is a seconds-per-second ratio. 42 panels across 10 dashboards, plus 5 name placements and one title. --- .../grafana/dashboards/consensus-health.json | 10 +++-- .../grafana/dashboards/fee-market.json | 6 ++- .../grafana/dashboards/job-queue.json | 12 +++-- .../grafana/dashboards/ledger-data-sync.json | 12 +++-- .../dashboards/log-derived-insights.json | 44 ++++++++++++------- .../grafana/dashboards/node-health.json | 14 +++--- .../dashboards/overlay-traffic-detail.json | 6 ++- .../grafana/dashboards/peer-quality.json | 2 +- .../grafana/dashboards/rpc-performance.json | 9 ++-- .../dashboards/transaction-overview.json | 3 +- .../grafana/dashboards/validator-health.json | 19 +++++--- 11 files changed, 89 insertions(+), 48 deletions(-) diff --git a/docker/telemetry/grafana/dashboards/consensus-health.json b/docker/telemetry/grafana/dashboards/consensus-health.json index 65b4b75a30..08255c9b98 100644 --- a/docker/telemetry/grafana/dashboards/consensus-health.json +++ b/docker/telemetry/grafana/dashboards/consensus-health.json @@ -585,7 +585,7 @@ "overrides": [] }, "options": { - "namePlacement": "top", + "namePlacement": "auto", "orientation": "horizontal", "displayMode": "gradient", "showUnfilled": true, @@ -661,7 +661,7 @@ "overrides": [] }, "options": { - "namePlacement": "top", + "namePlacement": "auto", "orientation": "horizontal", "displayMode": "gradient", "showUnfilled": true, @@ -910,7 +910,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.series} ${__field.labels.xrpl_ident}", - "unit": "suffix: rounds/s", + "unit": "si: rounds/s", + "decimals": 0, "custom": { "axisLabel": "Rounds / Sec", "spanNulls": 1800000, @@ -1284,7 +1285,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.series} ${__field.labels.xrpl_ident}", - "unit": "suffix: mismatches/s", + "unit": "si: mismatches/s", + "decimals": 0, "custom": { "axisLabel": "Mismatches / Sec", "spanNulls": 1800000, diff --git a/docker/telemetry/grafana/dashboards/fee-market.json b/docker/telemetry/grafana/dashboards/fee-market.json index 6c1229a753..c7d0eef388 100644 --- a/docker/telemetry/grafana/dashboards/fee-market.json +++ b/docker/telemetry/grafana/dashboards/fee-market.json @@ -474,7 +474,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.series} ${__field.labels.xrpl_ident}", - "unit": "suffix: transactions/s", + "unit": "si: transactions/s", + "decimals": 0, "custom": { "axisLabel": "Transactions / Sec", "spanNulls": 1800000, @@ -523,7 +524,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.series} ${__field.labels.xrpl_ident}", - "unit": "suffix: transactions/s", + "unit": "si: transactions/s", + "decimals": 0, "custom": { "axisLabel": "Transactions / Sec", "spanNulls": 1800000, diff --git a/docker/telemetry/grafana/dashboards/job-queue.json b/docker/telemetry/grafana/dashboards/job-queue.json index 5c52372a40..0516079768 100644 --- a/docker/telemetry/grafana/dashboards/job-queue.json +++ b/docker/telemetry/grafana/dashboards/job-queue.json @@ -190,7 +190,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.series} [${__field.labels.service_instance_id} ${__field.labels.xrpl_branch} ${__field.labels.xrpl_node_role} ${__field.labels.xrpl_work_item}]", - "unit": "suffix: jobs/s", + "unit": "si: jobs/s", + "decimals": 0, "custom": { "drawStyle": "line", "lineWidth": 1, @@ -247,7 +248,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.series} [${__field.labels.service_instance_id} ${__field.labels.xrpl_branch} ${__field.labels.xrpl_node_role} ${__field.labels.xrpl_work_item}]", - "unit": "suffix: jobs/s", + "unit": "si: jobs/s", + "decimals": 0, "custom": { "drawStyle": "line", "lineWidth": 1, @@ -304,7 +306,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.series} [${__field.labels.service_instance_id} ${__field.labels.xrpl_branch} ${__field.labels.xrpl_node_role} ${__field.labels.xrpl_work_item}]", - "unit": "suffix: jobs/s", + "unit": "si: jobs/s", + "decimals": 0, "custom": { "drawStyle": "line", "lineWidth": 1, @@ -555,7 +558,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.series} [${__field.labels.service_instance_id} ${__field.labels.xrpl_branch} ${__field.labels.xrpl_node_role} ${__field.labels.xrpl_work_item}]", - "unit": "suffix: overflows/min", + "unit": "si: overflows/min", + "decimals": 0, "thresholds": { "steps": [ { diff --git a/docker/telemetry/grafana/dashboards/ledger-data-sync.json b/docker/telemetry/grafana/dashboards/ledger-data-sync.json index 0cd17c3a09..ad0b624faa 100644 --- a/docker/telemetry/grafana/dashboards/ledger-data-sync.json +++ b/docker/telemetry/grafana/dashboards/ledger-data-sync.json @@ -2138,7 +2138,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.series} ${__field.labels.xrpl_ident}", - "unit": "suffix: events/s", + "unit": "si: events/s", + "decimals": 0, "custom": { "axisLabel": "Events / Sec", "spanNulls": 1800000, @@ -2201,7 +2202,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.series} ${__field.labels.xrpl_ident}", - "unit": "suffix: outcomes/s", + "unit": "si: outcomes/s", + "decimals": 0, "custom": { "axisLabel": "Outcomes / Sec", "spanNulls": 1800000, @@ -2257,7 +2259,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.series} ${__field.labels.xrpl_ident}", - "unit": "suffix: acquisitions/s", + "unit": "si: acquisitions/s", + "decimals": 0, "custom": { "axisLabel": "Acquisitions / Sec", "spanNulls": 1800000, @@ -2313,7 +2316,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.series} ${__field.labels.xrpl_ident}", - "unit": "suffix: events/s", + "unit": "si: events/s", + "decimals": 0, "custom": { "axisLabel": "Events / Sec", "spanNulls": 1800000, diff --git a/docker/telemetry/grafana/dashboards/log-derived-insights.json b/docker/telemetry/grafana/dashboards/log-derived-insights.json index 0205d6f370..dc26f76a27 100644 --- a/docker/telemetry/grafana/dashboards/log-derived-insights.json +++ b/docker/telemetry/grafana/dashboards/log-derived-insights.json @@ -918,7 +918,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.state} [${__field.labels.service_instance_id}]", - "unit": "suffix: transitions/s", + "unit": "si: transitions/s", + "decimals": 0, "min": 0, "custom": { "drawStyle": "line", @@ -1054,7 +1055,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.severity} [${__field.labels.service_instance_id}]", - "unit": "suffix: lines/s", + "unit": "si: lines/s", + "decimals": 0, "custom": { "drawStyle": "line", "lineWidth": 1, @@ -1118,7 +1120,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.partition} [${__field.labels.service_instance_id}]", - "unit": "suffix: lines/s", + "unit": "si: lines/s", + "decimals": 0, "custom": { "drawStyle": "line", "lineWidth": 1, @@ -1195,7 +1198,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.action} [${__field.labels.service_instance_id}]", - "unit": "suffix: manifests/s", + "unit": "si: manifests/s", + "decimals": 0, "custom": { "drawStyle": "line", "lineWidth": 1, @@ -1258,7 +1262,8 @@ }, "fieldConfig": { "defaults": { - "unit": "suffix: manifests/s", + "unit": "si: manifests/s", + "decimals": 0, "custom": { "drawStyle": "line", "lineWidth": 1, @@ -1485,7 +1490,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.reason} [${__field.labels.service_instance_id}]", - "unit": "suffix: charges/s", + "unit": "si: charges/s", + "decimals": 0, "custom": { "drawStyle": "line", "lineWidth": 1, @@ -1549,7 +1555,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.reason} [${__field.labels.service_instance_id}]", - "unit": "suffix: fee/s", + "unit": "si: fee/s", + "decimals": 0, "custom": { "drawStyle": "line", "lineWidth": 1, @@ -1860,7 +1867,8 @@ }, "fieldConfig": { "defaults": { - "unit": "suffix: nodes/s", + "unit": "si: nodes/s", + "decimals": 0, "custom": { "drawStyle": "line", "lineWidth": 1, @@ -1956,7 +1964,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.outcome} [${__field.labels.service_instance_id}]", - "unit": "suffix: events/s", + "unit": "si: events/s", + "decimals": 0, "custom": { "drawStyle": "line", "lineWidth": 1, @@ -2019,7 +2028,8 @@ }, "fieldConfig": { "defaults": { - "unit": "suffix: events/s", + "unit": "si: events/s", + "decimals": 0, "custom": { "drawStyle": "line", "lineWidth": 1, @@ -2106,7 +2116,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.phase} [${__field.labels.service_instance_id}]", - "unit": "suffix: transitions/s", + "unit": "si: transitions/s", + "decimals": 0, "custom": { "drawStyle": "line", "lineWidth": 1, @@ -2170,7 +2181,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.mode} [${__field.labels.service_instance_id}]", - "unit": "suffix: beats/s", + "unit": "si: beats/s", + "decimals": 0, "custom": { "drawStyle": "line", "lineWidth": 1, @@ -2233,7 +2245,7 @@ }, "fieldConfig": { "defaults": { - "unit": "suffix: validators", + "unit": "si: validators", "min": 0, "custom": { "drawStyle": "line", @@ -2387,7 +2399,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.jobname} [${__field.labels.service_instance_id}]", - "unit": "suffix: breaches/s", + "unit": "si: breaches/s", + "decimals": 0, "custom": { "drawStyle": "line", "lineWidth": 1, @@ -2529,7 +2542,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.partition} ${__field.labels.severity} [${__field.labels.service_instance_id}]", - "unit": "suffix: lines/s", + "unit": "si: lines/s", + "decimals": 0, "custom": { "drawStyle": "line", "lineWidth": 1, diff --git a/docker/telemetry/grafana/dashboards/node-health.json b/docker/telemetry/grafana/dashboards/node-health.json index 5106965d1c..55ba2d23e6 100644 --- a/docker/telemetry/grafana/dashboards/node-health.json +++ b/docker/telemetry/grafana/dashboards/node-health.json @@ -1296,7 +1296,8 @@ } ] }, - "unit": "suffix: operations/s" + "unit": "si: operations/s", + "decimals": 0 } }, "gridPos": { @@ -3531,7 +3532,7 @@ "refId": "A" } ], - "title": "Validated Ledger Seq — Convergence (Max − Min, per network) [$xrpl_network_type]", + "title": "Validated Ledger Seq \u2014 Convergence (Max \u2212 Min, per Network) [$xrpl_network_type]", "type": "stat", "repeat": "xrpl_network_type", "repeatDirection": "h", @@ -4251,7 +4252,8 @@ } ] }, - "unit": "suffix: fetches/min" + "unit": "si: fetches/min", + "decimals": 0 } }, "gridPos": { @@ -4972,7 +4974,8 @@ } ] }, - "unit": "suffix: transactions/s" + "unit": "si: transactions/s", + "decimals": 0 } }, "gridPos": { @@ -5178,7 +5181,8 @@ } ] }, - "unit": "suffix: acquisitions/s" + "unit": "si: acquisitions/s", + "decimals": 0 } }, "gridPos": { diff --git a/docker/telemetry/grafana/dashboards/overlay-traffic-detail.json b/docker/telemetry/grafana/dashboards/overlay-traffic-detail.json index ea7a918cdb..1fa31f342b 100644 --- a/docker/telemetry/grafana/dashboards/overlay-traffic-detail.json +++ b/docker/telemetry/grafana/dashboards/overlay-traffic-detail.json @@ -836,7 +836,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.series} ${__field.labels.xrpl_ident}", - "unit": "suffix: lookups/s", + "unit": "si: lookups/s", + "decimals": 0, "custom": { "axisLabel": "Lookups / Sec", "spanNulls": 1800000, @@ -884,7 +885,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.series} ${__field.labels.xrpl_ident}", - "unit": "suffix: rejections/s", + "unit": "si: rejections/s", + "decimals": 0, "custom": { "axisLabel": "Rejections / Sec", "spanNulls": 1800000, diff --git a/docker/telemetry/grafana/dashboards/peer-quality.json b/docker/telemetry/grafana/dashboards/peer-quality.json index 4c3bac2053..9d64c0cbce 100644 --- a/docker/telemetry/grafana/dashboards/peer-quality.json +++ b/docker/telemetry/grafana/dashboards/peer-quality.json @@ -359,7 +359,7 @@ "y": 43 }, "options": { - "namePlacement": "top", + "namePlacement": "auto", "orientation": "horizontal", "displayMode": "gradient", "tooltip": { diff --git a/docker/telemetry/grafana/dashboards/rpc-performance.json b/docker/telemetry/grafana/dashboards/rpc-performance.json index 6632f4c021..5c591fdfaa 100644 --- a/docker/telemetry/grafana/dashboards/rpc-performance.json +++ b/docker/telemetry/grafana/dashboards/rpc-performance.json @@ -687,7 +687,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.series} ${__field.labels.xrpl_ident}", - "unit": "suffix: calls/s", + "unit": "si: calls/s", + "decimals": 0, "custom": { "drawStyle": "line", "lineWidth": 1, @@ -745,7 +746,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.series} ${__field.labels.xrpl_ident}", - "unit": "suffix: calls/s", + "unit": "si: calls/s", + "decimals": 0, "custom": { "drawStyle": "line", "lineWidth": 1, @@ -803,7 +805,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.series} ${__field.labels.xrpl_ident}", - "unit": "suffix: errors/s", + "unit": "si: errors/s", + "decimals": 0, "custom": { "drawStyle": "line", "lineWidth": 1, diff --git a/docker/telemetry/grafana/dashboards/transaction-overview.json b/docker/telemetry/grafana/dashboards/transaction-overview.json index 9567a54ebc..4a99abff01 100644 --- a/docker/telemetry/grafana/dashboards/transaction-overview.json +++ b/docker/telemetry/grafana/dashboards/transaction-overview.json @@ -925,7 +925,8 @@ ], "fieldConfig": { "defaults": { - "unit": "suffix: failures/s", + "unit": "si: failures/s", + "decimals": 0, "custom": { "axisLabel": "Failures / Sec", "spanNulls": 1800000, diff --git a/docker/telemetry/grafana/dashboards/validator-health.json b/docker/telemetry/grafana/dashboards/validator-health.json index 37f96893ce..c679f5f577 100644 --- a/docker/telemetry/grafana/dashboards/validator-health.json +++ b/docker/telemetry/grafana/dashboards/validator-health.json @@ -194,7 +194,7 @@ "y": 21 }, "options": { - "namePlacement": "top", + "namePlacement": "auto", "orientation": "horizontal", "displayMode": "lcd", "tooltip": { @@ -267,7 +267,7 @@ "y": 31 }, "options": { - "namePlacement": "top", + "namePlacement": "auto", "orientation": "horizontal", "displayMode": "lcd", "tooltip": { @@ -371,7 +371,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.series} ${__field.labels.xrpl_ident}", - "unit": "suffix: validations/min", + "unit": "si: validations/min", + "decimals": 0, "thresholds": { "steps": [ { @@ -426,7 +427,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.xrpl_ident}", - "unit": "suffix: validations/min", + "unit": "si: validations/min", + "decimals": 0, "custom": {} }, "overrides": [] @@ -673,7 +675,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.series} ${__field.labels.xrpl_ident}", - "unit": "suffix: validations/min", + "unit": "si: validations/min", + "decimals": 0, "custom": { "axisLabel": "Validations / Min", "drawStyle": "line", @@ -830,7 +833,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.xrpl_ident}", - "unit": "suffix: changes/hr", + "unit": "si: changes/hr", + "decimals": 0, "thresholds": { "steps": [ { @@ -885,7 +889,8 @@ "fieldConfig": { "defaults": { "displayName": "${__field.labels.xrpl_ident}", - "unit": "suffix: ledgers/min", + "unit": "si: ledgers/min", + "decimals": 0, "thresholds": { "steps": [ {