From e495b437930f1b75ad2cbe590253f80b2755b90f Mon Sep 17 00:00:00 2001 From: Justin McCann Date: Sat, 13 Jul 2024 13:21:21 +0000 Subject: [PATCH 1/2] Update usage of ABI 2 to match breaking changes in opentelemetry-cpp v1.16.0 release. See https://github.com/open-telemetry/opentelemetry-cpp/blob/v1.16.0/CHANGELOG.md#1160-2024-06-21 for details on the v1.16.0 changes. Fixes #465. --- .../fluentd/test/trace/fluentd_recordable_test.cc | 13 +++++++++++-- .../test/unit/mocks/mock_OpenTelemetry.h | 2 ++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/exporters/fluentd/test/trace/fluentd_recordable_test.cc b/exporters/fluentd/test/trace/fluentd_recordable_test.cc index 7739ad472..a6fc93695 100644 --- a/exporters/fluentd/test/trace/fluentd_recordable_test.cc +++ b/exporters/fluentd/test/trace/fluentd_recordable_test.cc @@ -380,11 +380,12 @@ TEST(FluentdExporter, SendTraceEvents) { auto processor = std::unique_ptr( new sdktrace::SimpleSpanProcessor(std::move(exporter))); - auto provider = nostd::shared_ptr( + auto provider = std::shared_ptr( new TracerProvider(std::move(processor))); + std::shared_ptr api_provider = provider; // Set the global trace provider - opentelemetry::trace::Provider::SetTracerProvider(provider); + opentelemetry::trace::Provider::SetTracerProvider(api_provider); std::string providerName = "MyInstrumentationName"; auto tracer = provider->GetTracer(providerName); @@ -426,8 +427,16 @@ TEST(FluentdExporter, SendTraceEvents) { } span1->End(); // end MySpanL1 +#if OPENTELEMETRY_ABI_VERSION_NO == 1 tracer->ForceFlushWithMicroseconds(1000); tracer->CloseWithMicroseconds(0); +#else + /* In ABI 2 >= otel-cpp v1.16.0, only the sdk Tracer objects + * have the ForceFlush...() and Close...() methods. The Close() + * method simply calls ForceFlush(). Use the SDK provider ForceFlush() instead. + */ + provider->ForceFlush(); +#endif /* OPENTELEMETRY_ABI_VERSION_NO == 1 */ testServer.WaitForEvents(6, 200); // 6 batches must arrive in 200ms testServer.Stop(); diff --git a/instrumentation/otel-webserver-module/test/unit/mocks/mock_OpenTelemetry.h b/instrumentation/otel-webserver-module/test/unit/mocks/mock_OpenTelemetry.h index 519bce667..d569df9e1 100644 --- a/instrumentation/otel-webserver-module/test/unit/mocks/mock_OpenTelemetry.h +++ b/instrumentation/otel-webserver-module/test/unit/mocks/mock_OpenTelemetry.h @@ -52,8 +52,10 @@ class MockTracer : public opentelemetry::trace::Tracer MOCK_METHOD(nostd::shared_ptr, StartSpanInternal, (nostd::string_view name, trace::SpanKind kind)); +#if OPENTELEMETRY_ABI_VERSION_NO == 1 MOCK_METHOD(void, ForceFlushWithMicroseconds, (uint64_t timeout), (noexcept)); MOCK_METHOD(void, CloseWithMicroseconds, (uint64_t timeout), (noexcept)); +#endif /* OPENTELEMETRY_ABI_VERSION_NO == 1 */ }; class MockSpan : public opentelemetry::trace::Span From 4afbfd6f2dec34f5cddbec809135e9d6e3d981e0 Mon Sep 17 00:00:00 2001 From: Justin McCann Date: Sat, 13 Jul 2024 13:23:43 +0000 Subject: [PATCH 2/2] Whitespace cleanup in an otel-webserver-module mock --- .../test/unit/mocks/mock_OpenTelemetry.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/instrumentation/otel-webserver-module/test/unit/mocks/mock_OpenTelemetry.h b/instrumentation/otel-webserver-module/test/unit/mocks/mock_OpenTelemetry.h index d569df9e1..eefbbc25c 100644 --- a/instrumentation/otel-webserver-module/test/unit/mocks/mock_OpenTelemetry.h +++ b/instrumentation/otel-webserver-module/test/unit/mocks/mock_OpenTelemetry.h @@ -102,10 +102,10 @@ class MockPropagator : public context::propagation::TextMapPropagator const context::Context &context) noexcept override { InjectImpl(carrier); } - + MOCK_METHOD(void, ExtractImpl, (const context::propagation::TextMapCarrier &carrier)); MOCK_METHOD(void, InjectImpl, (context::propagation::TextMapCarrier &carrier)); - MOCK_METHOD(bool, Fields, (nostd::function_ref callback), + MOCK_METHOD(bool, Fields, (nostd::function_ref callback), (const, noexcept, override)); };