Skip to content

Commit 5bc053e

Browse files
authored
[SDK] Support OTEL_SDK_DISABLED environment variable (open-telemetry#3245)
1 parent 3506a7a commit 5bc053e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+691
-120
lines changed

CHANGELOG.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,28 @@ Increment the:
1818
* [SDK] Add tracer scope configurator
1919
[#3137](https://github.com/open-telemetry/opentelemetry-cpp/pull/3137)
2020

21+
* [SDK] Support OTEL_SDK_DISABLED environment variable
22+
[#3245](https://github.com/open-telemetry/opentelemetry-cpp/pull/3245)
23+
24+
Important changes:
25+
26+
* [SDK] Support OTEL_SDK_DISABLED environment variable
27+
[#3245](https://github.com/open-telemetry/opentelemetry-cpp/pull/3245)
28+
29+
* The SDK now exposes the following new methods:
30+
31+
* opentelemetry::sdk::trace::Provider::SetTracerProvider()
32+
* opentelemetry::sdk::metrics::Provider::SetMeterProvider()
33+
* opentelemetry::sdk::logs::Provider::SetLoggerProvider()
34+
35+
* These methods do support the `OTEL_SDK_DISABLED` environment variable,
36+
unlike the corresponding existing API Provider classes.
37+
38+
* Applications are encouraged to migrate from the API to the SDK
39+
`Provider` classes, to benefit from this feature.
40+
41+
* All the example code has been updated to reflect the new usage.
42+
2143
## [1.19 2025-01-22]
2244

2345
* [PROMETHEUS_EXPORTER] Fix default for emitting otel_scope attributes

api/include/opentelemetry/metrics/provider.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55

66
#include <mutex>
77

8-
#include "opentelemetry/common/macros.h"
98
#include "opentelemetry/common/spin_lock_mutex.h"
9+
#include "opentelemetry/metrics/meter_provider.h"
1010
#include "opentelemetry/metrics/noop.h"
1111
#include "opentelemetry/nostd/shared_ptr.h"
1212
#include "opentelemetry/version.h"
@@ -15,8 +15,6 @@ OPENTELEMETRY_BEGIN_NAMESPACE
1515
namespace metrics
1616
{
1717

18-
class MeterProvider;
19-
2018
/**
2119
* Stores the singleton global MeterProvider.
2220
*/

api/test/metrics/meter_provider_test.cc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
#include <gtest/gtest.h>
55

6+
#include "opentelemetry/metrics/meter_provider.h"
67
#include "opentelemetry/metrics/noop.h"
78
#include "opentelemetry/metrics/provider.h"
89
#include "opentelemetry/nostd/shared_ptr.h"

examples/batch/main.cc

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#include "opentelemetry/sdk/trace/batch_span_processor_options.h"
1717
#include "opentelemetry/sdk/trace/exporter.h"
1818
#include "opentelemetry/sdk/trace/processor.h"
19+
#include "opentelemetry/sdk/trace/provider.h"
1920
#include "opentelemetry/sdk/trace/tracer_provider.h"
2021
#include "opentelemetry/sdk/trace/tracer_provider_factory.h"
2122
#include "opentelemetry/trace/provider.h"
@@ -56,13 +57,13 @@ void InitTracer()
5657
trace_sdk::TracerProviderFactory::Create(std::move(processor), resource);
5758

5859
// Set the global trace provider.
59-
trace_api::Provider::SetTracerProvider(provider);
60+
trace_sdk::Provider::SetTracerProvider(provider);
6061
}
6162

6263
void CleanupTracer()
6364
{
6465
std::shared_ptr<opentelemetry::trace::TracerProvider> none;
65-
trace_api::Provider::SetTracerProvider(none);
66+
trace_sdk::Provider::SetTracerProvider(none);
6667
}
6768

6869
opentelemetry::nostd::shared_ptr<trace_api::Tracer> get_tracer()

examples/grpc/tracer_common.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
#include "opentelemetry/nostd/shared_ptr.h"
1010
#include "opentelemetry/sdk/trace/exporter.h"
1111
#include "opentelemetry/sdk/trace/processor.h"
12+
#include "opentelemetry/sdk/trace/provider.h"
1213
#include "opentelemetry/sdk/trace/simple_processor_factory.h"
1314
#include "opentelemetry/sdk/trace/tracer_context.h"
1415
#include "opentelemetry/sdk/trace/tracer_context_factory.h"
@@ -85,7 +86,7 @@ void InitTracer()
8586
std::shared_ptr<opentelemetry::trace::TracerProvider> provider =
8687
opentelemetry::sdk::trace::TracerProviderFactory::Create(std::move(context));
8788
// Set the global trace provider
88-
opentelemetry::trace::Provider::SetTracerProvider(provider);
89+
opentelemetry::sdk::trace::Provider::SetTracerProvider(provider);
8990

9091
// set global propagator
9192
opentelemetry::context::propagation::GlobalTextMapPropagator::SetGlobalPropagator(
@@ -96,7 +97,7 @@ void InitTracer()
9697
void CleanupTracer()
9798
{
9899
std::shared_ptr<opentelemetry::trace::TracerProvider> none;
99-
opentelemetry::trace::Provider::SetTracerProvider(none);
100+
opentelemetry::sdk::trace::Provider::SetTracerProvider(none);
100101
}
101102

102103
opentelemetry::nostd::shared_ptr<opentelemetry::trace::Tracer> get_tracer(std::string tracer_name)

examples/http/tracer_common.h

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,24 @@
33

44
#pragma once
55

6+
#include <cstring>
7+
#include <iostream>
8+
#include <vector>
9+
10+
#include "opentelemetry/context/propagation/global_propagator.h"
11+
#include "opentelemetry/context/propagation/text_map_propagator.h"
612
#include "opentelemetry/exporters/ostream/span_exporter_factory.h"
13+
#include "opentelemetry/ext/http/client/http_client.h"
14+
#include "opentelemetry/nostd/shared_ptr.h"
715
#include "opentelemetry/sdk/trace/exporter.h"
816
#include "opentelemetry/sdk/trace/processor.h"
17+
#include "opentelemetry/sdk/trace/provider.h"
918
#include "opentelemetry/sdk/trace/simple_processor_factory.h"
1019
#include "opentelemetry/sdk/trace/tracer_context.h"
1120
#include "opentelemetry/sdk/trace/tracer_context_factory.h"
1221
#include "opentelemetry/sdk/trace/tracer_provider_factory.h"
13-
#include "opentelemetry/trace/provider.h"
14-
15-
#include "opentelemetry/context/propagation/global_propagator.h"
16-
#include "opentelemetry/context/propagation/text_map_propagator.h"
1722
#include "opentelemetry/trace/propagation/http_trace_context.h"
18-
19-
#include <cstring>
20-
#include <iostream>
21-
#include <vector>
22-
#include "opentelemetry/ext/http/client/http_client.h"
23-
#include "opentelemetry/nostd/shared_ptr.h"
23+
#include "opentelemetry/trace/provider.h"
2424

2525
namespace
2626
{
@@ -75,7 +75,7 @@ void InitTracer()
7575
std::shared_ptr<opentelemetry::trace::TracerProvider> provider =
7676
opentelemetry::sdk::trace::TracerProviderFactory::Create(std::move(context));
7777
// Set the global trace provider
78-
opentelemetry::trace::Provider::SetTracerProvider(provider);
78+
opentelemetry::sdk::trace::Provider::SetTracerProvider(provider);
7979

8080
// set global propagator
8181
opentelemetry::context::propagation::GlobalTextMapPropagator::SetGlobalPropagator(
@@ -86,7 +86,7 @@ void InitTracer()
8686
void CleanupTracer()
8787
{
8888
std::shared_ptr<opentelemetry::trace::TracerProvider> none;
89-
opentelemetry::trace::Provider::SetTracerProvider(none);
89+
opentelemetry::sdk::trace::Provider::SetTracerProvider(none);
9090
}
9191

9292
opentelemetry::nostd::shared_ptr<opentelemetry::trace::Tracer> get_tracer(std::string tracer_name)

examples/logs_simple/main.cc

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,18 @@
77
#include "opentelemetry/exporters/ostream/log_record_exporter.h"
88
#include "opentelemetry/exporters/ostream/span_exporter_factory.h"
99
#include "opentelemetry/logs/logger_provider.h"
10-
#include "opentelemetry/logs/provider.h"
1110
#include "opentelemetry/sdk/logs/exporter.h"
1211
#include "opentelemetry/sdk/logs/logger_provider.h"
1312
#include "opentelemetry/sdk/logs/logger_provider_factory.h"
1413
#include "opentelemetry/sdk/logs/processor.h"
14+
#include "opentelemetry/sdk/logs/provider.h"
1515
#include "opentelemetry/sdk/logs/simple_log_record_processor_factory.h"
1616
#include "opentelemetry/sdk/trace/exporter.h"
1717
#include "opentelemetry/sdk/trace/processor.h"
18+
#include "opentelemetry/sdk/trace/provider.h"
1819
#include "opentelemetry/sdk/trace/simple_processor_factory.h"
1920
#include "opentelemetry/sdk/trace/tracer_provider.h"
2021
#include "opentelemetry/sdk/trace/tracer_provider_factory.h"
21-
#include "opentelemetry/trace/provider.h"
2222
#include "opentelemetry/trace/tracer_provider.h"
2323

2424
#ifdef BAZEL_BUILD
@@ -48,13 +48,13 @@ void InitTracer()
4848

4949
// Set the global trace provider
5050
const std::shared_ptr<trace_api::TracerProvider> &api_provider = sdk_provider;
51-
trace_api::Provider::SetTracerProvider(api_provider);
51+
trace_sdk::Provider::SetTracerProvider(api_provider);
5252
}
5353

5454
void CleanupTracer()
5555
{
5656
std::shared_ptr<trace_api::TracerProvider> noop;
57-
trace_api::Provider::SetTracerProvider(noop);
57+
trace_sdk::Provider::SetTracerProvider(noop);
5858
}
5959

6060
void InitLogger()
@@ -69,13 +69,13 @@ void InitLogger()
6969

7070
// Set the global logger provider
7171
const std::shared_ptr<logs_api::LoggerProvider> &api_provider = sdk_provider;
72-
logs_api::Provider::SetLoggerProvider(api_provider);
72+
logs_sdk::Provider::SetLoggerProvider(api_provider);
7373
}
7474

7575
void CleanupLogger()
7676
{
7777
std::shared_ptr<logs_api::LoggerProvider> noop;
78-
logs_api::Provider::SetLoggerProvider(noop);
78+
logs_sdk::Provider::SetLoggerProvider(noop);
7979
}
8080

8181
} // namespace

examples/metrics_simple/metrics_ostream.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@
1111
#include "opentelemetry/common/attribute_value.h"
1212
#include "opentelemetry/exporters/ostream/metric_exporter_factory.h"
1313
#include "opentelemetry/metrics/meter_provider.h"
14-
#include "opentelemetry/metrics/provider.h"
1514
#include "opentelemetry/sdk/metrics/aggregation/aggregation_config.h"
1615
#include "opentelemetry/sdk/metrics/export/periodic_exporting_metric_reader_factory.h"
1716
#include "opentelemetry/sdk/metrics/export/periodic_exporting_metric_reader_options.h"
1817
#include "opentelemetry/sdk/metrics/instruments.h"
1918
#include "opentelemetry/sdk/metrics/meter_provider.h"
2019
#include "opentelemetry/sdk/metrics/meter_provider_factory.h"
2120
#include "opentelemetry/sdk/metrics/metric_reader.h"
21+
#include "opentelemetry/sdk/metrics/provider.h"
2222
#include "opentelemetry/sdk/metrics/push_metric_exporter.h"
2323
#include "opentelemetry/sdk/metrics/view/instrument_selector.h"
2424
#include "opentelemetry/sdk/metrics/view/instrument_selector_factory.h"
@@ -114,13 +114,13 @@ void InitMetrics(const std::string &name)
114114

115115
std::shared_ptr<opentelemetry::metrics::MeterProvider> api_provider(std::move(provider));
116116

117-
metrics_api::Provider::SetMeterProvider(api_provider);
117+
metrics_sdk::Provider::SetMeterProvider(api_provider);
118118
}
119119

120120
void CleanupMetrics()
121121
{
122122
std::shared_ptr<metrics_api::MeterProvider> none;
123-
metrics_api::Provider::SetMeterProvider(none);
123+
metrics_sdk::Provider::SetMeterProvider(none);
124124
}
125125
} // namespace
126126

examples/multi_processor/main.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@
1616
#include "opentelemetry/nostd/string_view.h"
1717
#include "opentelemetry/sdk/trace/exporter.h"
1818
#include "opentelemetry/sdk/trace/processor.h"
19+
#include "opentelemetry/sdk/trace/provider.h"
1920
#include "opentelemetry/sdk/trace/simple_processor_factory.h"
2021
#include "opentelemetry/sdk/trace/span_data.h"
2122
#include "opentelemetry/sdk/trace/tracer_provider.h"
2223
#include "opentelemetry/sdk/trace/tracer_provider_factory.h"
23-
#include "opentelemetry/trace/provider.h"
2424
#include "opentelemetry/trace/span_id.h"
2525
#include "opentelemetry/trace/span_metadata.h"
2626
#include "opentelemetry/trace/trace_id.h"
@@ -55,15 +55,15 @@ std::shared_ptr<InMemorySpanData> InitTracer()
5555
trace_sdk::TracerProviderFactory::Create(std::move(processors));
5656

5757
// Set the global trace provider
58-
trace_api::Provider::SetTracerProvider(std::move(provider));
58+
trace_sdk::Provider::SetTracerProvider(std::move(provider));
5959

6060
return data;
6161
}
6262

6363
void CleanupTracer()
6464
{
6565
std::shared_ptr<opentelemetry::trace::TracerProvider> none;
66-
trace_api::Provider::SetTracerProvider(none);
66+
trace_sdk::Provider::SetTracerProvider(none);
6767
}
6868

6969
void dumpSpans(std::vector<std::unique_ptr<trace_sdk::SpanData>> &spans)

examples/multithreaded/main.cc

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
#include "opentelemetry/sdk/resource/resource.h"
1313
#include "opentelemetry/sdk/trace/exporter.h"
1414
#include "opentelemetry/sdk/trace/processor.h"
15+
#include "opentelemetry/sdk/trace/provider.h"
1516
#include "opentelemetry/sdk/trace/simple_processor_factory.h"
1617
#include "opentelemetry/sdk/trace/tracer_provider.h"
1718
#include "opentelemetry/sdk/trace/tracer_provider_factory.h"
@@ -34,13 +35,13 @@ void InitTracer()
3435
trace_sdk::TracerProviderFactory::Create(std::move(processor),
3536
opentelemetry::sdk::resource::Resource::Create({}));
3637
// Set the global trace provider
37-
trace_api::Provider::SetTracerProvider(provider);
38+
trace_sdk::Provider::SetTracerProvider(provider);
3839
}
3940

4041
void CleanupTracer()
4142
{
4243
std::shared_ptr<opentelemetry::trace::TracerProvider> none;
43-
trace_api::Provider::SetTracerProvider(none);
44+
trace_sdk::Provider::SetTracerProvider(none);
4445
}
4546

4647
opentelemetry::nostd::shared_ptr<trace_api::Tracer> get_tracer()

0 commit comments

Comments
 (0)