From 725b4fb5cbe7da86d17565c7aa992e108484c44f Mon Sep 17 00:00:00 2001 From: Pratik Mankawde <3397372+pratikmankawde@users.noreply.github.com> Date: Thu, 11 Jun 2026 23:12:42 +0100 Subject: [PATCH] docs(telemetry): drop the dotted ledger-hash exception in 09 doc The peer.validation.receive span now records the ledger hash and full-validation flag under the shared bare keys ledger_hash / full_validation (same keys the consensus validation spans use), so there is no longer a dotted span attribute. Remove the "only dotted span attribute" note and update the peer attribute table. --- OpenTelemetryPlan/09-data-collection-reference.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/OpenTelemetryPlan/09-data-collection-reference.md b/OpenTelemetryPlan/09-data-collection-reference.md index b33d1523ae..9662169444 100644 --- a/OpenTelemetryPlan/09-data-collection-reference.md +++ b/OpenTelemetryPlan/09-data-collection-reference.md @@ -239,14 +239,14 @@ aggregation. Per the 2026-05-13 naming redesign, span-attribute keys use the `_` underscore form where a bare name would collide (e.g. `rpc_status`, `grpc_status`, `tx_status`, `txq_status`). -> **Dotted exceptions** (do not confuse with span attributes): +> **Dotted keys are resource attributes, never span attributes:** > -> - `xrpl.ledger.hash` is the **only** dotted span attribute. It is a shared -> constant set on `peer.validation.receive`. Note that `consensus.validation.send` -> uses the **bare** `ledger_hash` instead. > - `xrpl.network.id` and `xrpl.network.type` are **resource** attributes set > once at startup on the OTel resource — not span attributes. They appear on > every span's resource scope, queried as `{resource.xrpl.network.id=...}`. +> - The ledger hash uses the bare `ledger_hash` key on every span that records +> it (both `consensus.validation.send` and `peer.validation.receive`) — there +> is no dotted span attribute. #### RPC Attributes @@ -359,7 +359,7 @@ aggregation. Per the 2026-05-13 naming redesign, span-attribute keys use the | `close_time_vote_bins` | string | `consensus.accept.apply` | Distribution of close-time votes | | `resolution_direction` | string | `consensus.accept.apply` | Whether close resolution increased/decreased/unchanged | | `tx_count` | int64 | `consensus.accept.apply` | Transactions in the accepted set | -| `ledger_hash` | string | `consensus.validation.send` | Full hash of the validated ledger (**bare**, not dotted) | +| `ledger_hash` | string | `consensus.validation.send` | Full hash of the validated ledger (shared with peer) | | `full_validation` | boolean | `consensus.validation.send` | Whether this is a full validation | | `validation_sign_time` | int64 | `consensus.validation.send` | Validation signing time | | `mode_old` | string | `consensus.mode_change` | Operating mode before the transition | @@ -393,8 +393,8 @@ the parent `ledger.build` carries `ledger_seq` and the close-time attributes. | `peer_id` | int64 | `tx.receive`, `peer.proposal.receive`, `peer.validation.receive` | Peer identifier | | `proposal_trusted` | boolean | `peer.proposal.receive` | Whether the proposal came from a trusted validator | | `validation_trusted` | boolean | `peer.validation.receive` | Whether the validation came from a trusted validator | -| `validation_full` | boolean | `peer.validation.receive` | Whether the validation is a full validation | -| `xrpl.ledger.hash` | string | `peer.validation.receive` | Validated ledger hash (**dotted** — shared constant) | +| `full_validation` | boolean | `peer.validation.receive` | Whether the validation is a full validation | +| `ledger_hash` | string | `peer.validation.receive` | Validated ledger hash (shared with consensus spans) | **Prometheus labels**: `proposal_trusted`, `validation_trusted` (SpanMetrics dimensions).