mirror of
https://github.com/XRPLF/rippled.git
synced 2026-09-27 15:28:03 +00:00
Merge branch 'pratik/otel-sync-diagnostics' into pratik/otel-sync-diagnostics-freshen-fix
This commit is contained in:
@@ -732,6 +732,21 @@
|
||||
"description": "phase child, emitted only when a rotation waits",
|
||||
"skip": true,
|
||||
"skip_reason": "nodestore.rotate never fires under the harness; see the span note."
|
||||
},
|
||||
{
|
||||
"parent": "tx.process",
|
||||
"child": "tx.receive",
|
||||
"description": "CROSS-NODE. The submitting node's tx.process span is the parent of the tx.receive span on every peer the transaction is relayed to. NetworkOPs::apply() injects the tx.process span's own context into the relayed TMTransaction (NetworkOPs.cpp:1979, the span created at :1630 by txProcessSpan), and PeerImp extracts it into a child span. Both ends emit on every run: tx_submitter.py submits to one node and the cluster relays."
|
||||
},
|
||||
{
|
||||
"parent": "consensus.proposal.send",
|
||||
"child": "consensus.proposal.receive",
|
||||
"description": "CROSS-NODE. RCLConsensus::Adaptor::propose() injects the send span's own context into the TMProposeSet, and the receiving peer parents consensus.proposal.receive to it (ConsensusReceiveTracing.h, the has_trace_context() branch). Asserted rather than joined on a hash, because this pair really is parent and child. Until the send side was fixed it injected the AMBIENT context, which is never set on that thread, so every receiver silently took its freshRoot fallback and this relationship held for nobody."
|
||||
},
|
||||
{
|
||||
"parent": "consensus.validation.send",
|
||||
"child": "consensus.validation.receive",
|
||||
"description": "CROSS-NODE. The same pairing for validations, injected by RCLConsensus::Adaptor::validate(). Declared separately from the proposal pair because the two send sites are independent, and a regression in one says nothing about the other."
|
||||
}
|
||||
],
|
||||
"trace_join_groups": {
|
||||
|
||||
@@ -105,10 +105,17 @@ if(telemetry)
|
||||
# libs, so neither the umbrella target nor opentelemetry-cpp::exporter_in_memory
|
||||
# puts the archive on the link line. Locate it by path and link it BEFORE
|
||||
# the umbrella so its undefined SDK references resolve against the umbrella.
|
||||
# CMakeDeps suffixes its variables with the upper-cased build type, so a
|
||||
# hardcoded _RELEASE hint is empty in any other config and the archive is
|
||||
# then only found by luck. Derive the suffix instead. An empty hint is not
|
||||
# fatal on its own: the Conan toolchain puts the package on
|
||||
# CMAKE_PREFIX_PATH, which find_library searches anyway. REQUIRED turns a
|
||||
# miss into a configure error rather than a link error.
|
||||
string(TOUPPER "${CMAKE_BUILD_TYPE}" otel_build_type)
|
||||
find_library(
|
||||
OTEL_IN_MEMORY_EXPORTER_LIB
|
||||
NAMES opentelemetry_exporter_in_memory
|
||||
HINTS "${opentelemetry-cpp_PACKAGE_FOLDER_RELEASE}/lib"
|
||||
HINTS "${opentelemetry-cpp_LIB_DIRS_${otel_build_type}}"
|
||||
REQUIRED
|
||||
)
|
||||
target_link_libraries(
|
||||
|
||||
Reference in New Issue
Block a user