Merge branch 'pratik/otel-phase9-metric-gap-fill' into pratik/otel-phase10-workload-validation

This commit is contained in:
Pratik Mankawde
2026-07-20 16:34:17 +01:00

View File

@@ -67,15 +67,23 @@ endif()
# The telemetry test module exercises SpanGuard/Telemetry, which link against
# the OpenTelemetry SDK when the telemetry build option is enabled.
if(telemetry)
# The umbrella opentelemetry-cpp target does NOT include the in-memory
# exporter in its link set, so link that component explicitly: the
# SpanGuardScope tests drive an InMemorySpanExporter to read exported
# spans. Test-only -- production code never uses this exporter.
# The SpanGuardScope tests drive an InMemorySpanExporter to read exported
# spans (test-only; production never uses it). The Conan package ships
# libopentelemetry_exporter_in_memory.a but declares the component with no
# 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.
find_library(
OTEL_IN_MEMORY_EXPORTER_LIB
NAMES opentelemetry_exporter_in_memory
HINTS "${opentelemetry-cpp_PACKAGE_FOLDER_RELEASE}/lib"
REQUIRED
)
target_link_libraries(
xrpl_tests
PRIVATE
"${OTEL_IN_MEMORY_EXPORTER_LIB}"
opentelemetry-cpp::opentelemetry-cpp
opentelemetry-cpp::exporter_in_memory
)
# ValidationTracker lives in src/xrpld/ (not libxrpl), so we compile its
# implementation directly into the test binary and put src/ on the include