diff --git a/OpenTelemetryPlan/09-data-collection-reference.md b/OpenTelemetryPlan/09-data-collection-reference.md index 9f4bc2fede..208b9ae5f8 100644 --- a/OpenTelemetryPlan/09-data-collection-reference.md +++ b/OpenTelemetryPlan/09-data-collection-reference.md @@ -100,7 +100,7 @@ Controlled by `trace_rpc=1` in `[telemetry]` config. **Where to find**: Tempo → TraceQL: `{resource.service.name="xrpld" && name=~"rpc.http_request|rpc.command.*"}` -**Grafana dashboard**: _RPC Performance_ (`xrpld-rpc-perf`) +**Grafana dashboard**: _RPC Performance_ (`rpc-performance`) #### gRPC Spans @@ -116,7 +116,7 @@ rates without TraceQL attribute filters. **Where to find**: Tempo → TraceQL: `{resource.service.name="xrpld" && name=~"grpc.*"}` -**Grafana dashboard**: _RPC Performance_ (`xrpld-rpc-perf`) +**Grafana dashboard**: _RPC Performance_ (`rpc-performance`) #### Transaction Spans @@ -140,7 +140,7 @@ later spans — the `stage` attribute identifies where it stopped. **Where to find**: Tempo → TraceQL: `{resource.service.name="xrpld" && name=~"tx.process|tx.receive"}` or, for the apply pipeline: `{resource.service.name="xrpld" && name=~"tx.preflight|tx.preclaim|tx.transactor"}` -**Grafana dashboard**: _Transaction Overview_ (`xrpld-transactions`) +**Grafana dashboard**: _Transaction Overview_ (`transaction-overview`) #### Transaction Queue (TxQ) Spans @@ -157,7 +157,7 @@ Controlled by `trace_transactions=1` in `[telemetry]` config. **Where to find**: Tempo → TraceQL: `{resource.service.name="xrpld" && name=~"txq.*"}` -**Grafana dashboard**: _Transaction Overview_ (`xrpld-transactions`) +**Grafana dashboard**: _Transaction Overview_ (`transaction-overview`) #### Consensus Spans @@ -185,7 +185,7 @@ round trace via context propagation rather than direct parenting. The **Where to find**: Tempo → TraceQL: `{resource.service.name="xrpld" && name=~"consensus.*"}` -**Grafana dashboard**: _Consensus Health_ (`xrpld-consensus`) +**Grafana dashboard**: _Consensus Health_ (`consensus-health`) #### Ledger Spans @@ -199,7 +199,7 @@ Controlled by `trace_ledger=1` in `[telemetry]` config. **Where to find**: Tempo → TraceQL: `{resource.service.name="xrpld" && name=~"ledger.*"}` -**Grafana dashboard**: _Ledger Operations_ (`xrpld-ledger-ops`) +**Grafana dashboard**: _Ledger Operations_ (`ledger-operations`) #### Peer Spans @@ -212,7 +212,7 @@ Controlled by `trace_peer` in `[telemetry]` config. **Enabled by default** (high **Where to find**: Tempo → TraceQL: `{resource.service.name="xrpld" && name=~"peer.*"}` -**Grafana dashboard**: _Peer Network_ (`xrpld-peer-net`) +**Grafana dashboard**: _Peer Network_ (`peer-network`) #### PathFind Spans @@ -519,7 +519,7 @@ prefix=xrpld | `xrpld_Overlay_Peer_Disconnects_Charges` | OverlayImpl.cpp | Disconnects due to resource limit charges | Low growth (subset of above) | | `xrpld_job_count` | JobQueue.cpp | Current job queue depth | 0–100 (healthy) | -**Grafana dashboard**: _Node Health_ (`xrpld-system-node-health`) +**Grafana dashboard**: _Node Health_ (`node-health`) ### 2.2 Counters @@ -533,7 +533,7 @@ prefix=xrpld **Note**: With `server=otel`, `xrpld_warn` and `xrpld_drop` are properly exported as OTel Counter instruments. The previous StatsD `|m` type limitation no longer applies. -**Grafana dashboard**: _RPC & Pathfinding_ (`xrpld-system-rpc`) +**Grafana dashboard**: _RPC & Pathfinding_ (`rpc-pathfinding`) ### 2.3 Histograms (Event timers) @@ -575,7 +575,7 @@ For each of the 45+ overlay traffic categories (defined in `TrafficCount.h`), fo | `ping` / `status` | Keepalive and status | | `set_get` | Set requests | -**Grafana dashboards**: _Network Traffic_ (`xrpld-system-network`), _Overlay Traffic Detail_ (`xrpld-system-overlay-detail`), _Ledger Data & Sync_ (`xrpld-system-ledger-sync`) +**Grafana dashboards**: _Network Traffic_ (`network-traffic`), _Overlay Traffic Detail_ (`overlay-traffic-detail`), _Ledger Data & Sync_ (`ledger-data-sync`) --- @@ -585,23 +585,23 @@ For each of the 45+ overlay traffic categories (defined in `TrafficCount.h`), fo ### 3.1 Span-Derived Dashboards (5) -| Dashboard | UID | Data Source | Key Panels | -| -------------------- | -------------------- | ------------------------ | ---------------------------------------------------------------------------------- | -| RPC Performance | `xrpld-rpc-perf` | Prometheus (SpanMetrics) | Request rate by command, p95 latency by command, error rate, heatmap, top commands | -| Transaction Overview | `xrpld-transactions` | Prometheus (SpanMetrics) | Processing rate, latency p95/p50, local vs relay split, apply duration, heatmap | -| Consensus Health | `xrpld-consensus` | Prometheus (SpanMetrics) | Round duration p95/p50, proposals rate, close duration, mode timeline, heatmap | -| Ledger Operations | `xrpld-ledger-ops` | Prometheus (SpanMetrics) | Build rate, build duration, validation rate, store rate, build vs close comparison | -| Peer Network | `xrpld-peer-net` | Prometheus (SpanMetrics) | Proposal receive rate, validation receive rate, trusted vs untrusted breakdown | +| Dashboard | UID | Data Source | Key Panels | +| -------------------- | ---------------------- | ------------------------ | ---------------------------------------------------------------------------------- | +| RPC Performance | `rpc-performance` | Prometheus (SpanMetrics) | Request rate by command, p95 latency by command, error rate, heatmap, top commands | +| Transaction Overview | `transaction-overview` | Prometheus (SpanMetrics) | Processing rate, latency p95/p50, local vs relay split, apply duration, heatmap | +| Consensus Health | `consensus-health` | Prometheus (SpanMetrics) | Round duration p95/p50, proposals rate, close duration, mode timeline, heatmap | +| Ledger Operations | `ledger-operations` | Prometheus (SpanMetrics) | Build rate, build duration, validation rate, store rate, build vs close comparison | +| Peer Network | `peer-network` | Prometheus (SpanMetrics) | Proposal receive rate, validation receive rate, trusted vs untrusted breakdown | ### 3.2 System Metrics Dashboards (5) -| Dashboard | UID | Data Source | Key Panels | -| ---------------------- | ----------------------------- | ----------------- | --------------------------------------------------------------------------------- | -| Node Health | `xrpld-system-node-health` | Prometheus (OTLP) | Ledger age, operating mode, I/O latency, job queue, fetch rate | -| Network Traffic | `xrpld-system-network` | Prometheus (OTLP) | Active peers, disconnects, bytes in/out, messages in/out, traffic by category | -| RPC & Pathfinding | `xrpld-system-rpc` | Prometheus (OTLP) | RPC rate, response time/size, pathfinding duration, resource warnings/drops | -| Overlay Traffic Detail | `xrpld-system-overlay-detail` | Prometheus (OTLP) | Squelch, overhead, validator lists, set get/share, have/requested tx, proof paths | -| Ledger Data & Sync | `xrpld-system-ledger-sync` | Prometheus (OTLP) | Ledger data exchange, legacy ledger share/get, getobject by type, traffic heatmap | +| Dashboard | UID | Data Source | Key Panels | +| ---------------------- | ------------------------ | ----------------- | --------------------------------------------------------------------------------- | +| Node Health | `node-health` | Prometheus (OTLP) | Ledger age, operating mode, I/O latency, job queue, fetch rate | +| Network Traffic | `network-traffic` | Prometheus (OTLP) | Active peers, disconnects, bytes in/out, messages in/out, traffic by category | +| RPC & Pathfinding | `rpc-pathfinding` | Prometheus (OTLP) | RPC rate, response time/size, pathfinding duration, resource warnings/drops | +| Overlay Traffic Detail | `overlay-traffic-detail` | Prometheus (OTLP) | Squelch, overhead, validator lists, set get/share, have/requested tx, proof paths | +| Ledger Data & Sync | `ledger-data-sync` | Prometheus (OTLP) | Ledger data exchange, legacy ledger share/get, getobject by type, traffic heatmap | ### 3.3 Deployment-Tier Template Variables diff --git a/docker/telemetry/grafana/dashboards/system-ledger-data-sync.json b/docker/telemetry/grafana/dashboards/ledger-data-sync.json similarity index 99% rename from docker/telemetry/grafana/dashboards/system-ledger-data-sync.json rename to docker/telemetry/grafana/dashboards/ledger-data-sync.json index 19d6e6c441..8b6b70f2cb 100644 --- a/docker/telemetry/grafana/dashboards/system-ledger-data-sync.json +++ b/docker/telemetry/grafana/dashboards/ledger-data-sync.json @@ -583,5 +583,5 @@ "to": "now" }, "title": "Ledger Data & Sync", - "uid": "xrpld-system-ledger-sync" + "uid": "ledger-data-sync" } diff --git a/docker/telemetry/grafana/dashboards/system-network-traffic.json b/docker/telemetry/grafana/dashboards/network-traffic.json similarity index 99% rename from docker/telemetry/grafana/dashboards/system-network-traffic.json rename to docker/telemetry/grafana/dashboards/network-traffic.json index 001258131d..0218e98972 100644 --- a/docker/telemetry/grafana/dashboards/system-network-traffic.json +++ b/docker/telemetry/grafana/dashboards/network-traffic.json @@ -861,5 +861,5 @@ "to": "now" }, "title": "Network Traffic", - "uid": "xrpld-system-network" + "uid": "network-traffic" } diff --git a/docker/telemetry/grafana/dashboards/system-node-health.json b/docker/telemetry/grafana/dashboards/node-health.json similarity index 99% rename from docker/telemetry/grafana/dashboards/system-node-health.json rename to docker/telemetry/grafana/dashboards/node-health.json index ea303ea136..ef5c00fe12 100644 --- a/docker/telemetry/grafana/dashboards/system-node-health.json +++ b/docker/telemetry/grafana/dashboards/node-health.json @@ -1017,5 +1017,5 @@ "to": "now" }, "title": "Node Health", - "uid": "xrpld-system-node-health" + "uid": "node-health" } diff --git a/docker/telemetry/grafana/dashboards/system-overlay-traffic-detail.json b/docker/telemetry/grafana/dashboards/overlay-traffic-detail.json similarity index 99% rename from docker/telemetry/grafana/dashboards/system-overlay-traffic-detail.json rename to docker/telemetry/grafana/dashboards/overlay-traffic-detail.json index a204adef1c..47c376858b 100644 --- a/docker/telemetry/grafana/dashboards/system-overlay-traffic-detail.json +++ b/docker/telemetry/grafana/dashboards/overlay-traffic-detail.json @@ -643,5 +643,5 @@ "to": "now" }, "title": "Overlay Traffic Detail", - "uid": "xrpld-system-overlay-detail" + "uid": "overlay-traffic-detail" } diff --git a/docker/telemetry/grafana/dashboards/system-rpc-pathfinding.json b/docker/telemetry/grafana/dashboards/rpc-pathfinding.json similarity index 99% rename from docker/telemetry/grafana/dashboards/system-rpc-pathfinding.json rename to docker/telemetry/grafana/dashboards/rpc-pathfinding.json index 852a560519..8b71b4a97b 100644 --- a/docker/telemetry/grafana/dashboards/system-rpc-pathfinding.json +++ b/docker/telemetry/grafana/dashboards/rpc-pathfinding.json @@ -702,5 +702,5 @@ "to": "now" }, "title": "RPC & Pathfinding", - "uid": "xrpld-system-rpc" + "uid": "rpc-pathfinding" } diff --git a/docs/superpowers/specs/2026-03-30-external-dashboard-parity-design.md b/docs/superpowers/specs/2026-03-30-external-dashboard-parity-design.md index 1223cbdbe7..1b7eeea724 100644 --- a/docs/superpowers/specs/2026-03-30-external-dashboard-parity-design.md +++ b/docs/superpowers/specs/2026-03-30-external-dashboard-parity-design.md @@ -432,7 +432,7 @@ Reads from the `ValidationTracker` (Task 7.8) to export rolling window stats. **Task 9.11: Validator Health Dashboard** -New Grafana dashboard: `xrpld-validator-health.json` +New Grafana dashboard: `validator-health.json` | Panel | Type | PromQL | | -------------------------- | ---------- | -------------------------------------------------------------- | @@ -456,7 +456,7 @@ New Grafana dashboard: `xrpld-validator-health.json` **Task 9.12: Peer Quality Dashboard** -New Grafana dashboard: `xrpld-peer-quality.json` +New Grafana dashboard: `peer-quality.json` | Panel | Type | PromQL | | ---------------------- | ---------- | -------------------------------------------------------------- | @@ -471,7 +471,7 @@ New Grafana dashboard: `xrpld-peer-quality.json` **Task 9.13: Ledger Economy Dashboard Panels** -Add a "Ledger Economy" row to the existing `system-node-health.json` dashboard: +Add a "Ledger Economy" row to the existing `node-health.json` dashboard: | Panel | Type | PromQL | | -------------------- | ---------- | --------------------------------------------------- | @@ -526,8 +526,8 @@ Add checks to `validate_telemetry.py` for all new span attributes and metrics. | Dashboard | | ------------------------------ | -| `xrpld-validator-health` | -| `xrpld-peer-quality` | +| `validator-health` | +| `peer-quality` | | `system-node-health` (updated) | **New metric value sanity checks (~4)**: diff --git a/docs/telemetry-runbook.md b/docs/telemetry-runbook.md index 8e48739641..f973be0576 100644 --- a/docs/telemetry-runbook.md +++ b/docs/telemetry-runbook.md @@ -601,7 +601,7 @@ three signals' attributes over OTLP directly. Ten dashboards are pre-provisioned in `docker/telemetry/grafana/dashboards/`: -### RPC Performance (`xrpld-rpc-perf`) +### RPC Performance (`rpc-performance`) | Panel | Type | PromQL | Labels Used | | --------------------------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ | @@ -614,7 +614,7 @@ Ten dashboards are pre-provisioned in `docker/telemetry/grafana/dashboards/`: | Top Commands by Volume | bargauge | `topk(10, ...)` by `command` | `command` | | WebSocket Message Rate | stat | `rpc.ws_message` rate | — | -### Transaction Overview (`xrpld-transactions`) +### Transaction Overview (`transaction-overview`) | Panel | Type | PromQL | Labels Used | | --------------------------------- | ---------- | ------------------------------------------------------------------------------------ | ------------- | @@ -627,7 +627,7 @@ Ten dashboards are pre-provisioned in `docker/telemetry/grafana/dashboards/`: | Peer TX Receive Rate | timeseries | `tx.receive` rate | — | | TX Apply Failed Rate | stat | `tx.apply` with `STATUS_CODE_ERROR` | `status_code` | -### Consensus Health (`xrpld-consensus`) +### Consensus Health (`consensus-health`) | Panel | Type | PromQL | Labels Used | | ----------------------------- | ---------- | ---------------------------------------------------------------------------------- | ---------------- | @@ -642,7 +642,7 @@ Ten dashboards are pre-provisioned in `docker/telemetry/grafana/dashboards/`: | Validation vs Close Rate | timeseries | `consensus.validation.send` vs `consensus.ledger_close` | — | | Accept Duration Heatmap | heatmap | `consensus.accept` histogram buckets | `le` | -### Ledger Operations (`xrpld-ledger-ops`) +### Ledger Operations (`ledger-operations`) | Panel | Type | PromQL | Labels Used | | ----------------------- | ---------- | ---------------------------------------------- | ----------- | @@ -655,7 +655,7 @@ Ten dashboards are pre-provisioned in `docker/telemetry/grafana/dashboards/`: | Ledger Store Rate | stat | `ledger.store` call rate | — | | Build vs Close Duration | timeseries | p95 `ledger.build` vs `consensus.ledger_close` | — | -### Peer Network (`xrpld-peer-net`) +### Peer Network (`peer-network`) Requires `trace_peer=1` in the `[telemetry]` config section. @@ -666,7 +666,7 @@ Requires `trace_peer=1` in the `[telemetry]` config section. | Proposals Trusted vs Untrusted | piechart | by `proposal_trusted` | `proposal_trusted` | | Validations Trusted vs Untrusted | piechart | by `validation_trusted` | `validation_trusted` | -### Node Health -- System Metrics (`xrpld-system-node-health`) +### Node Health -- System Metrics (`node-health`) | Panel | Type | PromQL | Labels Used | | -------------------------------------- | ---------- | --------------------------------------------------------------- | ----------- | @@ -687,7 +687,7 @@ Requires `trace_peer=1` in the `[telemetry]` config section. | All Jobs Execution Time (Detail) | timeseries | `{__name__=~"xrpld_", quantile="$quantile"}` | `quantile` | | All Jobs Dequeue Wait (Detail) | timeseries | `{__name__=~"xrpld__q", quantile="$quantile"}` | `quantile` | -### Network Traffic -- System Metrics (`xrpld-system-network`) +### Network Traffic -- System Metrics (`network-traffic`) | Panel | Type | PromQL | Labels Used | | ------------------------------------ | ---------- | ------------------------------------------ | ----------- | @@ -702,7 +702,7 @@ Requires `trace_peer=1` in the `[telemetry]` config section. | Duplicate Traffic (Wasted Bandwidth) | timeseries | `rate(xrpld_*_duplicate_Bytes_In/Out[5m])` | — | | All Traffic Categories (Detail) | timeseries | `topk(15, rate(xrpld_*_Bytes_In[5m]))` | — | -### RPC & Pathfinding -- System Metrics (`xrpld-system-rpc`) +### RPC & Pathfinding -- System Metrics (`rpc-pathfinding`) | Panel | Type | PromQL | Labels Used | | ------------------------- | ---------- | ------------------------------------------------------ | ----------- |