From 497dd007d9ffb190968e517e06095779014bb2db Mon Sep 17 00:00:00 2001 From: Pratik Mankawde <3397372+pratikmankawde@users.noreply.github.com> Date: Wed, 13 May 2026 15:57:36 +0100 Subject: [PATCH] =?UTF-8?q?refactor(telemetry):=20simplify=20attr=20naming?= =?UTF-8?q?=20on=20phase-2=20=E2=80=94=20drop=20xrpl.pathfind.=20prefix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Drop xrpl.pathfind.* prefix from per-span attrs (source_account, dest_account, fast, search_level, num_complete_paths, num_paths, num_requests). - Keep xrpl.pathfind.ledger_index qualified (rule 5: distinct from xrpl.ledger.seq). - Remove per-span nodeAmendmentBlocked/nodeServerState calls from RPCHandler — promoted to resource-level attrs. - Mark node-health attrs in SpanNames.h as RESOURCE-ONLY with doc. Co-Authored-By: Claude Opus 4.6 (1M context) --- include/xrpl/telemetry/SpanNames.h | 8 ++++-- src/xrpld/rpc/detail/PathFindSpanNames.h | 36 ++++++++++++------------ src/xrpld/rpc/detail/RPCHandler.cpp | 2 -- 3 files changed, 23 insertions(+), 23 deletions(-) diff --git a/include/xrpl/telemetry/SpanNames.h b/include/xrpl/telemetry/SpanNames.h index e5a9b125d6..685e88db6a 100644 --- a/include/xrpl/telemetry/SpanNames.h +++ b/include/xrpl/telemetry/SpanNames.h @@ -103,11 +103,13 @@ inline constexpr auto networkId = join(join(seg::xrpl, seg::network), makeStr("i inline constexpr auto networkType = join(join(seg::xrpl, seg::network), makeStr("type")); inline constexpr auto linkType = makeStr("link_type"); -/// Node health attributes (cross-cutting, used by RPC/consensus/tx spans). +/// Node health attributes — RESOURCE-ONLY (process identity, not per-span). +/// Set at Tracer init via resource::Resource::Create and refreshed on state +/// transitions. Do NOT use with span.setAttribute(). inline constexpr auto xrplNode = join(seg::xrpl, makeStr("node")); -/// "xrpl.node.amendment_blocked" +/// "xrpl.node.amendment_blocked" — resource attribute key. inline constexpr auto nodeAmendmentBlocked = join(xrplNode, makeStr("amendment_blocked")); -/// "xrpl.node.server_state" +/// "xrpl.node.server_state" — resource attribute key. inline constexpr auto nodeServerState = join(xrplNode, makeStr("server_state")); } // namespace attr diff --git a/src/xrpld/rpc/detail/PathFindSpanNames.h b/src/xrpld/rpc/detail/PathFindSpanNames.h index 40c9509cca..af61340b6f 100644 --- a/src/xrpld/rpc/detail/PathFindSpanNames.h +++ b/src/xrpld/rpc/detail/PathFindSpanNames.h @@ -63,24 +63,24 @@ inline constexpr auto rank = makeStr("rank"); // ===== Attribute keys ====================================================== namespace attr { -inline constexpr auto xrplPathfind = join(seg::xrpl, makeStr("pathfind")); - -/// "xrpl.pathfind.source_account" -inline constexpr auto sourceAccount = join(xrplPathfind, makeStr("source_account")); -/// "xrpl.pathfind.dest_account" -inline constexpr auto destAccount = join(xrplPathfind, makeStr("dest_account")); -/// "xrpl.pathfind.fast" -inline constexpr auto fast = join(xrplPathfind, makeStr("fast")); -/// "xrpl.pathfind.search_level" -inline constexpr auto searchLevel = join(xrplPathfind, makeStr("search_level")); -/// "xrpl.pathfind.num_complete_paths" -inline constexpr auto numCompletePaths = join(xrplPathfind, makeStr("num_complete_paths")); -/// "xrpl.pathfind.num_paths" -inline constexpr auto numPaths = join(xrplPathfind, makeStr("num_paths")); -/// "xrpl.pathfind.num_requests" -inline constexpr auto numRequests = join(xrplPathfind, makeStr("num_requests")); -/// "xrpl.pathfind.ledger_index" -inline constexpr auto ledgerIndex = join(xrplPathfind, makeStr("ledger_index")); +/// "source_account" — originating account for path search. +inline constexpr auto sourceAccount = makeStr("source_account"); +/// "dest_account" — destination account. +inline constexpr auto destAccount = makeStr("dest_account"); +/// "fast" — whether fast pathfinding mode enabled. +inline constexpr auto fast = makeStr("fast"); +/// "search_level" — depth of graph exploration. +inline constexpr auto searchLevel = makeStr("search_level"); +/// "num_complete_paths" — complete paths found. +inline constexpr auto numCompletePaths = makeStr("num_complete_paths"); +/// "num_paths" — total paths returned. +inline constexpr auto numPaths = makeStr("num_paths"); +/// "num_requests" — active path requests. +inline constexpr auto numRequests = makeStr("num_requests"); +/// "xrpl.pathfind.ledger_index" — kept qualified (rule 5): pathfind target +/// ledger is distinct from xrpl.ledger.seq. +inline constexpr auto ledgerIndex = + join(join(seg::xrpl, makeStr("pathfind")), makeStr("ledger_index")); } // namespace attr } // namespace xrpl::telemetry::pathfind_span diff --git a/src/xrpld/rpc/detail/RPCHandler.cpp b/src/xrpld/rpc/detail/RPCHandler.cpp index 45756b00aa..210e0e25fe 100644 --- a/src/xrpld/rpc/detail/RPCHandler.cpp +++ b/src/xrpld/rpc/detail/RPCHandler.cpp @@ -171,8 +171,6 @@ callMethod(JsonContext& context, Method method, std::string const& name, Object& rpc_span::attr::rpcRole, context.role == Role::ADMIN ? std::string_view(rpc_span::val::admin) : std::string_view(rpc_span::val::user)); - span.setAttribute(attr::nodeAmendmentBlocked, context.app.getOPs().isAmendmentBlocked()); - span.setAttribute(attr::nodeServerState, context.app.getOPs().strOperatingMode()); static std::atomic requestId{0}; auto& perfLog = context.app.getPerfLog();