mirror of
https://github.com/XRPLF/rippled.git
synced 2026-07-24 07:30:30 +00:00
fix(telemetry): use underscore attr names and SpanNames constants in Phase 4
- tempo.yaml: align consensus filter tags with emitted keys (consensus_mode, consensus_round, ledger_seq) instead of dotted form - haveConsensus(): set span attributes before early-return paths so the consensus.check span carries diagnostics even when consensus is not reached - replace hardcoded consensus phase/result/vote literals with ConsensusSpanNames.h val constants; add val::phaseOpen/Establish/Accepted - ConsensusReceiveTracing.h: use canonical consensus::span constants instead of duplicate inline detail:: names - SpanGuardFactory test: use rpc_span / consensus::span constants now that levelization permits the dependency Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -1,12 +1,13 @@
|
||||
#include <xrpld/consensus/ConsensusSpanNames.h>
|
||||
#include <xrpld/rpc/detail/RpcSpanNames.h>
|
||||
|
||||
#include <xrpl/telemetry/SpanGuard.h>
|
||||
#include <xrpl/telemetry/SpanNames.h>
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include <cstdint>
|
||||
#include <exception>
|
||||
#include <stdexcept>
|
||||
#include <string>
|
||||
#include <utility>
|
||||
|
||||
using namespace xrpl;
|
||||
@@ -30,8 +31,8 @@ TEST(SpanGuardFactory, category_span_returns_null_when_disabled)
|
||||
auto span = SpanGuard::span(TraceCategory::Rpc, "rpc", "test");
|
||||
EXPECT_FALSE(span);
|
||||
|
||||
span.setAttribute("xrpl.rpc.command", "test");
|
||||
span.setAttribute("xrpl.rpc.status", "success");
|
||||
span.setAttribute(rpc_span::attr::command, "test");
|
||||
span.setAttribute(rpc_span::attr::rpcStatus, rpc_span::val::success);
|
||||
}
|
||||
|
||||
TEST(SpanGuardFactory, child_span_null_when_no_parent)
|
||||
@@ -87,21 +88,22 @@ TEST(SpanGuardFactory, consensus_close_time_attributes)
|
||||
{
|
||||
// Verify the consensus attribute pattern compiles and
|
||||
// doesn't crash with null SpanGuard.
|
||||
namespace cs = consensus::span;
|
||||
{
|
||||
auto span = telemetry::SpanGuard::span(
|
||||
telemetry::TraceCategory::Consensus, telemetry::seg::consensus, "accept.apply");
|
||||
span.setAttribute("xrpl.consensus.ledger.seq", static_cast<int64_t>(42));
|
||||
span.setAttribute("xrpl.consensus.close_time", static_cast<int64_t>(780000000));
|
||||
span.setAttribute("xrpl.consensus.close_time_correct", true);
|
||||
span.setAttribute("xrpl.consensus.close_resolution_ms", static_cast<int64_t>(30000));
|
||||
span.setAttribute("xrpl.consensus.state", std::string("finished"));
|
||||
span.setAttribute("xrpl.consensus.proposing", true);
|
||||
span.setAttribute("xrpl.consensus.round_time_ms", static_cast<int64_t>(3500));
|
||||
telemetry::TraceCategory::Consensus, telemetry::seg::consensus, cs::op::acceptApply);
|
||||
span.setAttribute(cs::attr::ledgerSeq, static_cast<int64_t>(42));
|
||||
span.setAttribute(cs::attr::closeTime, static_cast<int64_t>(780000000));
|
||||
span.setAttribute(cs::attr::closeTimeCorrect, true);
|
||||
span.setAttribute(cs::attr::closeResolutionMs, static_cast<int64_t>(30000));
|
||||
span.setAttribute(cs::attr::consensusState, cs::val::finished);
|
||||
span.setAttribute(cs::attr::proposing, true);
|
||||
span.setAttribute(cs::attr::roundTimeMs, static_cast<int64_t>(3500));
|
||||
}
|
||||
{
|
||||
auto span = telemetry::SpanGuard::span(
|
||||
telemetry::TraceCategory::Consensus, telemetry::seg::consensus, "accept.apply");
|
||||
span.setAttribute("xrpl.consensus.close_time_correct", false);
|
||||
span.setAttribute("xrpl.consensus.state", std::string("moved_on"));
|
||||
telemetry::TraceCategory::Consensus, telemetry::seg::consensus, cs::op::acceptApply);
|
||||
span.setAttribute(cs::attr::closeTimeCorrect, false);
|
||||
span.setAttribute(cs::attr::consensusState, cs::val::movedOn);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#include <xrpl/basics/BasicConfig.h>
|
||||
#include <xrpl/beast/utility/Journal.h>
|
||||
#include <xrpl/config/BasicConfig.h>
|
||||
#include <xrpl/telemetry/Telemetry.h>
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
Reference in New Issue
Block a user