Skip to content

Commit d8d7532

Browse files
committed
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 open-telemetry#465.
1 parent d953d32 commit d8d7532

File tree

2 files changed

+20
-3
lines changed

2 files changed

+20
-3
lines changed

exporters/fluentd/test/trace/fluentd_recordable_test.cc

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
#include "opentelemetry/sdk/trace/simple_processor.h"
2828
#include "opentelemetry/sdk/trace/span_data.h"
2929
#include "opentelemetry/sdk/trace/tracer_provider.h"
30+
#include "opentelemetry/sdk/trace/tracer_provider_factory.h"
3031
#include "opentelemetry/trace/provider.h"
3132

3233
#include "opentelemetry/sdk/trace/exporter.h"
@@ -380,11 +381,17 @@ TEST(FluentdExporter, SendTraceEvents) {
380381
auto processor = std::unique_ptr<SpanProcessor>(
381382
new sdktrace::SimpleSpanProcessor(std::move(exporter)));
382383

383-
auto provider = nostd::shared_ptr<trace::TracerProvider>(
384-
new TracerProvider(std::move(processor)));
384+
#ifdef OPENTELEMETRY_DEPRECATED_SDK_FACTORY
385+
nostd::shared_ptr<trace::TracerProvider> provider =
386+
sdktrace::TracerProviderFactory::Create(std::move(processor));
387+
#else
388+
nostd::shared_ptr<sdktrace::TracerProvider> provider =
389+
sdktrace::TracerProviderFactory::Create(std::move(processor));
390+
#endif /* OPENTELEMETRY_DEPRECATED_SDK_FACTORY */
385391

392+
nostd::shared_ptr<trace::TracerProvider> api_provider = provider;
386393
// Set the global trace provider
387-
opentelemetry::trace::Provider::SetTracerProvider(provider);
394+
opentelemetry::trace::Provider::SetTracerProvider(api_provider);
388395

389396
std::string providerName = "MyInstrumentationName";
390397
auto tracer = provider->GetTracer(providerName);
@@ -426,8 +433,16 @@ TEST(FluentdExporter, SendTraceEvents) {
426433
}
427434
span1->End(); // end MySpanL1
428435

436+
#if OPENTELEMETRY_ABI_VERSION_NO == 1
429437
tracer->ForceFlushWithMicroseconds(1000);
430438
tracer->CloseWithMicroseconds(0);
439+
#else
440+
/* In ABI 2 >= otel-cpp v1.16.0, only the sdk Tracer objects
441+
* have the ForceFlush...() and Close...() methods. The Close()
442+
* method simply calls ForceFlush(). Use the SDK provider ForceFlush() instead.
443+
*/
444+
provider->ForceFlush();
445+
#endif /* OPENTELEMETRY_ABI_VERSION_NO == 1 */
431446

432447
testServer.WaitForEvents(6, 200); // 6 batches must arrive in 200ms
433448
testServer.Stop();

instrumentation/otel-webserver-module/test/unit/mocks/mock_OpenTelemetry.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,10 @@ class MockTracer : public opentelemetry::trace::Tracer
5252
MOCK_METHOD(nostd::shared_ptr<trace::Span>, StartSpanInternal,
5353
(nostd::string_view name, trace::SpanKind kind));
5454

55+
#if OPENTELEMETRY_ABI_VERSION_NO == 1
5556
MOCK_METHOD(void, ForceFlushWithMicroseconds, (uint64_t timeout), (noexcept));
5657
MOCK_METHOD(void, CloseWithMicroseconds, (uint64_t timeout), (noexcept));
58+
#endif /* OPENTELEMETRY_ABI_VERSION_NO == 1 */
5759
};
5860

5961
class MockSpan : public opentelemetry::trace::Span

0 commit comments

Comments
 (0)