From 2627ea7f65650ac38dbd36265257383889f6db89 Mon Sep 17 00:00:00 2001 From: Pratik Mankawde <3397372+pratikmankawde@users.noreply.github.com> Date: Thu, 4 Jun 2026 10:47:33 +0100 Subject: [PATCH] feat(telemetry): add TX Processing Latency by Type panel to dashboard Shows p95 latency of tx.process span broken down by tx_type. Works for both received and locally-processed transactions, unlike the tx.transactor panel which requires the node to be synced and applying. Co-Authored-By: Claude Opus 4.6 --- .../dashboards/transaction-overview.json | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/docker/telemetry/grafana/dashboards/transaction-overview.json b/docker/telemetry/grafana/dashboards/transaction-overview.json index 5c40c8b3fd..0d4072ff09 100644 --- a/docker/telemetry/grafana/dashboards/transaction-overview.json +++ b/docker/telemetry/grafana/dashboards/transaction-overview.json @@ -495,6 +495,50 @@ }, "overrides": [] } + }, + { + "title": "TX Processing Latency by Type (p95)", + "description": "Per-transaction-type processing latency (tx.process span duration). Shows which transaction types take longest to process end-to-end.", + "type": "timeseries", + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 48 + }, + "options": { + "tooltip": { + "mode": "multi", + "sort": "desc" + }, + "legend": { + "displayMode": "table", + "placement": "right", + "calcs": ["mean", "max", "lastNotNull"] + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "expr": "histogram_quantile(0.95, sum by (le, tx_type) (rate(traces_span_metrics_duration_milliseconds_bucket{exported_instance=~\"$node\", span_name=\"tx.process\", tx_type!=\"\"}[5m])))", + "legendFormat": "p95 {{tx_type}}" + } + ], + "fieldConfig": { + "defaults": { + "unit": "ms", + "custom": { + "axisLabel": "Latency (ms)", + "spanNulls": true, + "insertNulls": false, + "showPoints": "auto", + "pointSize": 3 + } + }, + "overrides": [] + } } ], "schemaVersion": 39,