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.
This commit is contained in:
Pratik Mankawde
2026-09-21 19:06:03 +01:00
parent 6b8462cddf
commit 5c8495e230
9 changed files with 54 additions and 28 deletions

View File

@@ -119,7 +119,8 @@
],
"fieldConfig": {
"defaults": {
"unit": "suffix: validations/s"
"unit": "si: validations/s",
"decimals": 0
},
"overrides": []
},

View File

@@ -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,

View File

@@ -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": []
},

View File

@@ -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,

View File

@@ -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": [
{

View File

@@ -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,

View File

@@ -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,

View File

@@ -126,7 +126,8 @@
],
"fieldConfig": {
"defaults": {
"unit": "suffix: messages/s"
"unit": "si: messages/s",
"decimals": 0
},
"overrides": []
},

View File

@@ -37,7 +37,8 @@
],
"fieldConfig": {
"defaults": {
"unit": "suffix: transactions/s",
"unit": "si: transactions/s",
"decimals": 0,
"thresholds": {
"steps": [
{