1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
|
# Deprecated
This document lists all the items currently deprecated in opentelemetry-cpp.
Deprecated items will be removed in the future.
## Guidelines
### Maintainer guidelines
See the [deprecation-process](./docs/deprecation-process.md)
## [TEMPLATE]
### New Deprecation Title (Template)
#### Announcement (Template)
#### Motivation (Template)
#### Scope (Template)
#### Mitigation (Template)
#### Planned removal (Template)
## [Platforms]
N/A
## [Compilers]
N/A
## [Third party dependencies]
N/A
## [Build tools]
N/A
## [Build scripts]
### CMake WITH_OTLP_RETRY_PREVIEW
#### Announcement (WITH_OTLP_RETRY_PREVIEW)
The CMake compile flag WITH_OTLP_RETRY_PREVIEW is deprecated by:
* Enable WITH_OTLP_RETRY_PREVIEW by default
[#3953](https://github.com/open-telemetry/opentelemetry-cpp/pull/3953)
#### Motivation (WITH_OTLP_RETRY_PREVIEW)
Flags like `WITH_OTLP_RETRY_PREVIEW` are used to conditionally compile
new features, when they are introduced in the code base.
Now that this feature is stable, conditional compilation is no longer
necessary.
#### Scope (WITH_OTLP_RETRY_PREVIEW)
Remove compilation flag WITH_OTLP_RETRY_PREVIEW in CMake.
Remove ifdef ENABLE_OTLP_RETRY_PREVIEW in C++ .
#### Mitigation (WITH_OTLP_RETRY_PREVIEW)
Applications built with `WITH_OTLP_RETRY_PREVIEW=ON` need to:
* remove the WITH_OTLP_RETRY_PREVIEW flag from CMake scripts
Applications built with `WITH_OTLP_RETRY_PREVIEW=OFF` need to:
* remove the WITH_OTLP_RETRY_PREVIEW flag from CMake scripts
* use `retry_policy_max_attempts` = 0 in the OTLP exporter options.
For Bazel, no compilation option exists,
the bazel build enables unconditionally ENABLE_OTLP_RETRY_PREVIEW.
Make sure to properly initialize `retry_policy_max_attempts`
to enable or disable the retry feature.
#### Planned removal (WITH_OTLP_RETRY_PREVIEW)
This compilation flag will be removed after October 1st, 2026.
### CMake WITH_OTLP_GRPC_SSL_MTLS_PREVIEW
#### Announcement (WITH_OTLP_GRPC_SSL_MTLS_PREVIEW)
The CMake compile flag WITH_OTLP_GRPC_SSL_MTLS_PREVIEW is deprecated by:
* Enable WITH_OTLP_GRPC_SSL_MTLS_PREVIEW by default
[#3970](https://github.com/open-telemetry/opentelemetry-cpp/pull/3970)
#### Motivation (WITH_OTLP_GRPC_SSL_MTLS_PREVIEW)
Flags like `WITH_OTLP_GRPC_SSL_MTLS_PREVIEW` are used to conditionally compile
new features, when they are introduced in the code base.
Now that this feature is stable, conditional compilation is no longer
necessary.
#### Scope (WITH_OTLP_GRPC_SSL_MTLS_PREVIEW)
Remove compilation flag WITH_OTLP_GRPC_SSL_MTLS_PREVIEW in CMake.
Remove ifdef ENABLE_OTLP_GRPC_SSL_MTLS_PREVIEW in C++ .
#### Mitigation (WITH_OTLP_GRPC_SSL_MTLS_PREVIEW)
Applications built with `WITH_OTLP_GRPC_SSL_MTLS_PREVIEW=ON` need to:
* remove the WITH_OTLP_GRPC_SSL_MTLS_PREVIEW flag from CMake scripts
Applications built with `WITH_OTLP_GRPC_SSL_MTLS_PREVIEW=OFF` need to:
* remove the WITH_OTLP_GRPC_SSL_MTLS_PREVIEW flag from CMake scripts
* initialize ssl client properties in the OTLP GRPC exporter options,
either with real KEY and CERT data, or with empty strings.
See:
* struct `OtlpGrpcClientOptions`
* struct `OtlpGrpcLogRecordExporterOptions`
* struct `OtlpGrpcMetricExporterOptions`
* struct `OtlpGrpcExporterOptions`
For Bazel, no compilation flag exists, the code is always built using
ENABLE_OTLP_GRPC_SSL_MTLS_PREVIEW.
Make sure to properly initialize ssl client properties
to enable or disable the feature.
#### Planned removal (WITH_OTLP_GRPC_SSL_MTLS_PREVIEW)
This compilation flag will be removed after October 1st, 2026.
## [opentelemetry-cpp API]
### Deprecation of EventLogger
#### Announcement (EventLogger)
The `EventLogger` API was deprecated by:
* [API] Deprecate event logger
[#3285](https://github.com/open-telemetry/opentelemetry-cpp/pull/3285)
on Feb 25, 2025, as published in release 1.20.
#### Motivation (EventLogger)
The specification for `EventLogger` was deprecated by:
* Deprecate Event API and SDK in favor of Emit Event in the Log API
[#4319](https://github.com/open-telemetry/opentelemetry-specification/pull/4319)
The opentelemetry-cpp API and SDK deprecates the EventLogger to be aligned
with the opentelemetry specification.
#### Scope (EventLogger)
The following classes or methods are deprecated in ABI version 1:
* API
* class opentelemetry::logs::EventLogger
* class opentelemetry::logs::EventLoggerProvider
* class opentelemetry::logs::NoopEventLogger
* class opentelemetry::logs::NoopEventLoggerProvider
* method opentelemetry::logs::Provider::GetEventLoggerProvider()
* method opentelemetry::logs::Provider::SetEventLoggerProvider()
* SDK
* class opentelemetry::sdk::logs::EventLogger
* class opentelemetry::sdk::logs::EventLoggerProvider
* class opentelemetry::sdk::logs::EventLoggerProviderFactory
The same are removed from ABI version 2.
#### Mitigation (EventLogger)
In respective order, the following should be used in place of `EventLogger`:
* API
* class opentelemetry::logs::Logger
* class opentelemetry::logs::LoggerProvider
* class opentelemetry::logs::NoopLogger
* class opentelemetry::logs::NoopLoggerProvider
* method opentelemetry::logs::Provider::GetLoggerProvider()
* method opentelemetry::logs::Provider::SetLoggerProvider()
* SDK
* class opentelemetry::sdk::logs::Logger
* class opentelemetry::sdk::logs::LoggerProvider
* class opentelemetry::sdk::logs::LoggerProviderFactory
Instrumented applications, that currently use
`opentelemetry::logs::Provider::GetEventLoggerProvider()`,
are strongly encouraged to migrate and use
`opentelemetry::logs::Provider::GetLoggerProvider()` instead.
Main applications, when installing and configuring an SDK, that currently use
`opentelemetry::logs::Provider::SetEventLoggerProvider()`,
are strongly encouraged to migrate and use
`opentelemetry::logs::Provider::SetLoggerProvider()` instead.
This migration can be implemented now,
as `Logger` is available already in ABI version 1.
This migration is mandatory and a pre requisite for adoption of ABI version 2 later.
#### Planned removal (EventLogger)
All the deprecated code is already removed from ABI version 2, since Feb
2025.
While EventLogger will not be removed from ABI version 1,
the ABI version 1 itself will be deprecated and decommissioned in the long
term, after ABI version 2 is declared stable.
By the time only ABI version 2 is available and supported,
any code still using the deprecated `EventLogger` will break.
### Deprecation of plugin
#### Announcement (plugin)
The `plugin` API was deprecated by:
* [API] Deprecate plugin
[#4021](https://github.com/open-telemetry/opentelemetry-cpp/pull/4021)
on Apr 21, 2026.
#### Motivation (plugin)
All the code in namespace `opentelemetry::plugin` is a framework designed
to help loading code from shared libraries.
This framework was never used.
Keeping the code in the repository has a maintenance cost
(include-what-you-use, cpp-check, clang-tidy, CI),
and also increases confusion.
This unused code is to be removed.
#### Scope (plugin)
The following files are to be removed from the API:
* `opentelemetry/plugin/*.h`
* `opentelemetry/plugin/detail/*.h`
The following files are to be removed from examples:
* `examples/plugin/*`
#### Mitigation (plugin)
None.
This code is unused, there is no replacement.
#### Planned removal (plugin)
API header files under the `opentelemetry::plugin` namespace
will be removed after October 1st, 2026.
## [opentelemetry-cpp SDK]
N/A
## [opentelemetry-cpp Exporter]
N/A
## [Documentation]
N/A
## Semantic conventions
N/A
|