fix(telemetry): set units, axis labels, and readable legends on close-time panels

Apply the dashboard guidelines to the five close-time panels:

- Axis labels (Title Case) on every panel: "Close Time (Ripple
  Seconds)" for the value panels, "Count / Milliseconds" for vote
  bins/resolution, "Rounds in Window" for the count panels.
- Human-readable legends with the dimension in brackets per the legend
  convention: "Raw Close Time [{{resource.service.instance.id}}]",
  "Effective Close Time [...]", "Resolution Direction
  [{{span.resolution_direction}}]", "{{span.close_time_vote_bins}} Vote
  Bins" — replacing the bare label tokens.
- Unit "none" (plain number): the close-time values are Ripple-epoch
  seconds and TraceQL metrics cannot offset them to a wall-clock unit,
  and the others are counts/ms on a shared axis.

Verified rendered values against raw spans: close times ~833,998,8xx,
resolution 10000 ms, vote bins 1/2/3 — all correct.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Pratik Mankawde
2026-06-05 19:21:59 +01:00
parent 8dcd6f9b4a
commit 5c275ac476

View File

@@ -406,7 +406,8 @@
"custom": {
"drawStyle": "points",
"pointSize": 6,
"showPoints": "always"
"showPoints": "always",
"axisLabel": "Close Time (Ripple Seconds)"
}
},
"overrides": []
@@ -430,7 +431,7 @@
},
"queryType": "traceql",
"query": "{name=\"consensus.accept.apply\" && resource.service.instance.id=~\"$node\"} | avg_over_time(span.close_time_self) by (resource.service.instance.id)",
"legendFormat": "{{resource.service.instance.id}}",
"legendFormat": "Raw Close Time [{{resource.service.instance.id}}]",
"refId": "A"
}
]
@@ -451,7 +452,8 @@
"custom": {
"drawStyle": "points",
"pointSize": 6,
"showPoints": "always"
"showPoints": "always",
"axisLabel": "Close Time (Ripple Seconds)"
}
},
"overrides": []
@@ -475,7 +477,7 @@
},
"queryType": "traceql",
"query": "{name=\"consensus.accept.apply\" && resource.service.instance.id=~\"$node\"} | avg_over_time(span.close_time) by (resource.service.instance.id)",
"legendFormat": "{{resource.service.instance.id}}",
"legendFormat": "Effective Close Time [{{resource.service.instance.id}}]",
"refId": "A"
}
]
@@ -496,8 +498,10 @@
"drawStyle": "line",
"lineInterpolation": "stepAfter",
"pointSize": 5,
"showPoints": "auto"
}
"showPoints": "auto",
"axisLabel": "Count / Milliseconds"
},
"unit": "none"
},
"overrides": [
{
@@ -584,8 +588,10 @@
"drawStyle": "bars",
"fillOpacity": 40,
"pointSize": 5,
"showPoints": "auto"
}
"showPoints": "auto",
"axisLabel": "Rounds in Window"
},
"unit": "none"
},
"overrides": []
},
@@ -608,7 +614,7 @@
},
"queryType": "traceql",
"query": "{name=\"consensus.accept.apply\" && resource.service.instance.id=~\"$node\" && span.resolution_direction=~\"$resolution_direction\"} | count_over_time() by (span.resolution_direction)",
"legendFormat": "{{span.resolution_direction}}",
"legendFormat": "Resolution Direction [{{span.resolution_direction}}]",
"refId": "A"
}
]
@@ -625,9 +631,10 @@
},
"fieldConfig": {
"defaults": {
"unit": "short",
"unit": "none",
"custom": {
"fillOpacity": 60
"fillOpacity": 60,
"axisLabel": "Rounds in Window"
}
},
"overrides": []
@@ -654,7 +661,7 @@
},
"queryType": "traceql",
"query": "{name=\"consensus.accept.apply\" && resource.service.instance.id=~\"$node\"} | count_over_time() by (span.close_time_vote_bins)",
"legendFormat": "{{span.close_time_vote_bins}} bins",
"legendFormat": "{{span.close_time_vote_bins}} Vote Bins",
"refId": "A"
}
]