|
27 | 27 | #include "opentelemetry/sdk/trace/simple_processor.h"
|
28 | 28 | #include "opentelemetry/sdk/trace/span_data.h"
|
29 | 29 | #include "opentelemetry/sdk/trace/tracer_provider.h"
|
| 30 | +#include "opentelemetry/sdk/trace/tracer_provider_factory.h" |
30 | 31 | #include "opentelemetry/trace/provider.h"
|
31 | 32 |
|
32 | 33 | #include "opentelemetry/sdk/trace/exporter.h"
|
@@ -380,11 +381,17 @@ TEST(FluentdExporter, SendTraceEvents) {
|
380 | 381 | auto processor = std::unique_ptr<SpanProcessor>(
|
381 | 382 | new sdktrace::SimpleSpanProcessor(std::move(exporter)));
|
382 | 383 |
|
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 */ |
385 | 391 |
|
| 392 | + nostd::shared_ptr<trace::TracerProvider> api_provider = provider; |
386 | 393 | // Set the global trace provider
|
387 |
| - opentelemetry::trace::Provider::SetTracerProvider(provider); |
| 394 | + opentelemetry::trace::Provider::SetTracerProvider(api_provider); |
388 | 395 |
|
389 | 396 | std::string providerName = "MyInstrumentationName";
|
390 | 397 | auto tracer = provider->GetTracer(providerName);
|
@@ -426,8 +433,16 @@ TEST(FluentdExporter, SendTraceEvents) {
|
426 | 433 | }
|
427 | 434 | span1->End(); // end MySpanL1
|
428 | 435 |
|
| 436 | +#if OPENTELEMETRY_ABI_VERSION_NO == 1 |
429 | 437 | tracer->ForceFlushWithMicroseconds(1000);
|
430 | 438 | 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 */ |
431 | 446 |
|
432 | 447 | testServer.WaitForEvents(6, 200); // 6 batches must arrive in 200ms
|
433 | 448 | testServer.Stop();
|
|
0 commit comments