Files
rippled/docker/telemetry
Pratik Mankawde 143abfd8f6 fix(telemetry): stop requiring what the harness cannot guarantee
Two entries in the span contract could fail on healthy behaviour.

`ledger.serve` is emitted when this node answers another node's request for
ledger data, and was mandatory. A node only answers if a peer asks, and a
`TMGetLedger` request is constructed in exactly two places --
src/xrpld/app/ledger/detail/InboundLedger.cpp and
src/xrpld/app/ledger/detail/TransactionAcquire.cpp -- whose `ledger.acquire`
and `txset.acquire` spans are both already marked optional. A mandatory check
therefore rested on an optional cause. Marked optional, with the dependency
named in the note so it is promoted together with them rather than alone.

`peer.dial` covers one outbound connect attempt and required `outcome` and
`duration_ms`. Both are set only in `reportOutcome()`
(ConnectAttempt.cpp:158-199). The teardown path sets neither on purpose: an
attempt destroyed during overlay shutdown, or one whose connect was aborted,
ends its span in `~ConnectAttempt` (ConnectAttempt.cpp:89-102), whose own
comment states that a span ending with no `outcome` is the honest record of a
dial that never concluded. Since `peer.dial` is a freshRoot, each dial is its
own trace with exactly one instance of the span, and the validator inspects
only the most recent trace -- so one newly-aborted dial fails CI while the node
is behaving correctly. `remote_endpoint` stays required; it is set at
construction on every path.

Verified: both call sites read in current code; `TMGetLedger` construction
confined to those two files; the counters recomputed -- 48 span types (matches
len(spans)) and 74 unique attributes, unchanged, because `outcome` and
`duration_ms` are still required by `txset.acquire` and the `ledger.acquire`
family. Not verified: that a run with these entries relaxed still exercises
both spans, which only a CI dispatch can show. Neither entry can now fail on
healthy behaviour, so a green run proves less than before by design.
2026-08-26 19:43:46 +01:00
..