Repository navigation
opentelemetry-cpp 1.29.0 - #310576
Merged
Merged
opentelemetry-cpp 1.29.0#310576
Conversation
p-linnane
approved these changes
Sep 13, 2026
Contributor
|
Caution Please do not push to this PR branch before the bottle commits have been pushed, as this results in a state that is difficult to recover from. If you need to resolve a merge conflict, please use a merge commit. Do not force-push to this PR branch. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Created by
brew bumpCreated with
brew bump-formula-pr.resourceblocks have been checked for updates.release notes
Breaking changes:
[CONFIGURATION] Align declarative configuration schema defaults with
OpenTelemetry Configuration Schema v1.1.0
#4432
these schema defaults instead of the previous legacy values:
attribute_limits.attribute_value_length_limit,logger_provider.limits.attribute_value_length_limit, andtracer_provider.limits.attribute_value_length_limitdefault to no limit(unlimited attribute value length) instead of 4096 bytes.
batchlog record processorschedule_delaydefaults to 1000 ms insteadof 5000 ms (more frequent batch exports when the field is omitted).
periodicmetric readerintervaldefaults to 60000 ms instead of 5000 ms(less frequent metric exports when the field is omitted).
trace_id_ratio_basedsamplerratiodefaults to 1.0 instead of 0.0(sample all traces instead of dropping all when the field is omitted).
[CONFIGURATION] SDK default component builder libraries and example
#4367
the default SDK component builders are provided optionally through
the
opentelemetry-cpp::configuration_registry_factorylibrary andthe
opentelemetry::sdk::configuration::RegistryFactory::Create()method.[BUILD] Install an explicit list of ext headers instead of the whole
directory
#4327
ext_commoncomponent installedinclude/opentelemetry/extwith a*.hglob. It now installs a named list, and these five headers are nolonger part of the package:
opentelemetry/ext/http/client/curl/http_client_curl.hopentelemetry/ext/http/client/curl/http_operation_curl.hopentelemetry/ext/http/client/detail/default_factory.hopentelemetry/ext/http/server/http_server.hopentelemetry/ext/http/server/socket_tools.hcompile. A curl client is created through
http_client_factory_curl.h,which needs only the abstract
http_client_factory.h. The two serverheaders are an embedded test server; moving them out of
extis trackedin #4332.
[CMAKE] Rename cmake options with prefix
OTELCPP_#4268
OTELCPP_prefix to avoidname collisions with user and third-party project variables. For example,
WITH_OTLP_HTTP,WITH_CONFIGURATION, andWITH_OTLP_RETRY_PREVIEWarenow
OTELCPP_WITH_OTLP_HTTP,OTELCPP_WITH_CONFIGURATION, andOTELCPP_WITH_OTLP_RETRY_PREVIEW.BUILD_TESTINGbecomesOTELCPP_BUILD_TESTING, but is not treated as adeprecated alias:
BUILD_TESTINGsets thedefault value of
OTELCPP_BUILD_TESTING.BUILD_TESTINGno longer controls opentelemetry-cpp tests, which defaultto
OFF.OTELCPP_BUILD_TESTINGexplicitly to enable or disableopentelemetry-cpp tests in either top-level or subproject builds.
OTELCPP_WITH_BENCHMARKnow defaults to the value ofOTELCPP_BUILD_TESTINGinstead of always defaulting toON.deprecation warning is emitted at configure time, and the
OTELCPP_nametakes precedence when both names are set.
[METRICS SDK] Rename Base2 Exponential Histogram Aggregation config field
#4253
max_buckets_was renamed tomax_size_tomatch the configuration schema. Please adjust SDK configuration accordingly.
[CONFIGURATION] Update prometheus config to schema v1.1.0
#4383
translation_strategyhave been replacedUnderscoreEscapingWithSuffixesis replaced byunderscore_escaping_with_suffixesUnderscoreEscapingWithoutSuffixesis replaced byunderscore_escaping_without_suffixes/developmentNoUTF8EscapingWithSuffixesis replaced byno_utf8_escaping_with_suffixes/developmentNoTranslationis replaced byno_translation/development[METRICS SDK] Add an
ExemplarFilterTypeparameter to theMeterContextconstructor when metrics exemplars are enabled. The parameter has a default
value, so existing source calls remain valid, but the constructor signature
and SDK ABI change. Applications using the preview exemplar feature must be
rebuilt.
#4328
[METRICS SDK] Remove the
SystemTimestampparameter from the previewExemplarReservoir::OfferMeasurement()overloads#4267
Implementations and callers must remove the timestamp parameter.
[METRICS SDK] Breaking change to the preview metrics exemplar surface: the
SyncMetricStorage/AsyncMetricStorageconstructors now take anExemplarFilterType, andExemplarData::Createtakes theSpanContextby value.
#4267
Important changes
[CONFIGURATION] Complete resource detection support in SdkBuilder (#4424)
#4424
SetResourceno longer runsOTELResourceDetectorand nolonger injects a default
service.name, since neither is part of theconfiguration model. Use the
servicedetector or set the attributes inthe configuration file instead.
[API] Never set a null global provider or propagator
#4420
trace::Provider::SetTracerProvider(),metrics::Provider::SetMeterProvider(),logs::Provider::SetLoggerProvider(),logs::Provider::SetEventLoggerProvider()andcontext::propagation::GlobalTextMapPropagator::SetGlobalPropagator()now install the corresponding no-op implementation when passed a null
pointer, instead of storing the null. The matching getters therefore never
return
nullptr, as already documented, and code that resets a globalduring cleanup no longer risks a nullptr de-ref on a later use.
Note: this is a correctness fix to an inline API header; the observable
behavior of these methods changes towards the already documented contract
(see
docs/abi-policy.md).[SDK] Enforce Span Status transition rules (#4547)
#4547
SetStatuscall overwrote the recorded status. It nowfollows the specification, which changes behavior for users in three ways:
StatusCode::kUnsetis ignored.kOk, it is final. So a later call can no longerchange an explicit
kOk.kError; it is dropped forkOkandkUnset.ETWSpan::SetStatusin the ETW exporter follows the same rules.Deprecations
This release contains deprecations, see file DEPRECATED.md
What's Changed
SpinLockMutextostd::mutexpart 1 by @dbarker in [SDK] ConvertSpinLockMutextostd::mutexpart 1聽open-telemetry/opentelemetry-cpp#4323/proc/self/mountinfoby @dbarker in [RESOURCE DETECTOR] Container ID detection from/proc/self/mountinfo聽open-telemetry/opentelemetry-cpp#4525configuration_coredependency on the SDKmetricslibrary by @dbarker in [CONFIGURATION] Break theconfiguration_coredependency on the SDKmetricslibrary聽open-telemetry/opentelemetry-cpp#4554configuration_coredependency on the SDKlogslibrary by @dbarker in [CONFIGURATION] Break theconfiguration_coredependency on the SDKlogslibrary聽open-telemetry/opentelemetry-cpp#4553configuration_coredependency on the SDKtracelibrary by @dbarker in [CONFIGURATION] Break theconfiguration_coredependency on the SDKtracelibrary聽open-telemetry/opentelemetry-cpp#4555New Contributors
View the full release notes at https://github.com/open-telemetry/opentelemetry-cpp/releases/tag/v1.29.0.