v1.28.0 release
Release of:
- opentelemetry-api
- opentelemetry-sdk
- exporter packages
Important changes
-
[API] fix the trace state regex to comply with the w3c trace context level 2 (#4194)
#4194- [API] Fix
TraceState::IsValidKey()to comply with the W3C Trace Context
Level 2, where keys containing@and keys with more than 241 characters
before@or more than 14 characters after@are now accepted.
Only the total 256-character key length limit is enforced.
Note: this is a correctness fix to an inline API header; the observable
behavior ofIsValidKey,IsValidKeyRegEx, andIsValidKeyNonRegEx
changes (seedocs/abi-policy.md).
- [API] Fix
-
[API+SDK] apply filtering EmitLogRecord (#4079)
#4079-
[API] (ABI v2)
Logger::EmitLogRecord(...)templates now apply the
Enabledfilter chain when aSeverityis in args. v1 behavior is
unchanged. -
[API/SDK] (ABI v2) Add
Logger::CreateLogRecordvirtual taking
const nostd::variant<trace::SpanContext, context::Context> &
for explicit-context record creation.Logger::EmitLogRecord(args...)
also detects aContext,SpanContext
orTraceId+SpanId[+TraceFlags] in args and routes filtering. -
[SDK] Add
LogRecordProcessor::HasEnabledFilter()so the SDK Logger can
include processor-level filtering in its extended-enabled cache. Defaults
totrue. Built-inSimpleLogRecordProcessorand
BatchLogRecordProcessoroverride tofalsesince they use the default
Enabled. -
[API/SDK] Replace
Context-only signatures on
LogRecordProcessor::Enabled,
LogRecordProcessor::EnabledImplementation,
Logger::EnabledImplementation(v2), andLogger::CreateLogRecord(v2)
withnostd::variant<trace::SpanContext, context::Context>.
-
Deprecations
This release contains deprecations, see file DEPRECATED.md
What's Changed
- [RELEASE] Bump main branch to 1.28.0-dev by @marcalff in #4081
- Bump step-security/harden-runner from 2.19.1 to 2.19.2 by @dependabot[bot] in #4082
- Bump step-security/harden-runner from 2.19.2 to 2.19.3 by @dependabot[bot] in #4084
- Fix IWYU Clang22 warnings by @marcalff in #4083
- Bump github/codeql-action from 4.35.4 to 4.35.5 by @dependabot[bot] in #4087
- [CODE HEALTH] Remove unused alias declarations by @thc1006 in #4091
- Bump codecov/codecov-action from 6.0.0 to 6.0.1 by @dependabot[bot] in #4092
- [SDK] MeterProvider: do not warn in destructor after explicit Shutdown by @jaehyeong-cho in #4085
- Fix: preserve delta start timestamp in fast path by @fmutlu68 in #4069
- Bump step-security/harden-runner from 2.19.3 to 2.19.4 by @dependabot[bot] in #4098
- Bump docker/build-push-action from 7.1.0 to 7.2.0 by @dependabot[bot] in #4097
- Bump actions/stale from 10.2.0 to 10.3.0 by @dependabot[bot] in #4096
- docs: update custom log handler example by @Galileo927 in #4089
- [BUILD] Suppress deprecated warnings in generated semconv metric headers by @RaviTriv in #4088
- Bump docker/setup-buildx-action from 4.0.0 to 4.1.0 by @dependabot[bot] in #4103
- Bump github/codeql-action from 4.35.5 to 4.36.0 by @dependabot[bot] in #4102
- Bump docker/setup-qemu-action from 4.0.0 to 4.1.0 by @dependabot[bot] in #4107
- [CI] add cmake gcc maintainer abiv2 job by @dbarker in #4105
- [DOC] Fix typos in SDK header comments by @DucMinhNe in #4111
- [CI] update codeql to cover all options with abiv2 by @dbarker in #4106
- [EXPORTER] Convert uint64_t attribute values exceeding INT64_MAX to string per OTel spec by @thc1006 in #4090
- [CODE HEALTH] Remove last unused nostd namespace alias in otlp_populate_attribute_utils by @thc1006 in #4114
- [CODE HEALTH] Move curl_http_test classes into anonymous namespace by @thc1006 in #4115
- [CODE HEALTH] Move simple_log_record_processor_test into anonymous namespace by @thc1006 in #4116
- Bump actions/checkout from 6.0.2 to 6.0.3 by @dependabot[bot] in #4118
- Bump github/codeql-action from 4.36.0 to 4.36.1 by @dependabot[bot] in #4117
- [CODE HEALTH] Move registry.cc propagator builders into anonymous namespace by @thc1006 in #4121
- [CODE HEALTH] Move sdk_builder.cc builders into anonymous namespace by @thc1006 in #4122
- Bump github/codeql-action from 4.36.1 to 4.36.2 by @dependabot[bot] in #4123
- [CODE HEALTH] Fix clang-tidy bugprone-exception-escape in sum_aggregation.cc by @jensecrest in #4109
- [CODE HEALTH] Move logger_sdk_test classes into anonymous namespace by @thc1006 in #4124
- [CODE HEALTH] Move func_http_main classes into anonymous namespace by @thc1006 in #4128
- [CODE HEALTH] Move func_grpc_main classes into anonymous namespace by @thc1006 in #4129
- [CONFIGURATION] Implementing minimum_severity and trace_based attributes for LoggerConfig by @om7057 in #4131
- [SDK] Support TracerConfigurator updates by @dbarker in #4065
- Bump codecov/codecov-action from 6.0.1 to 7.0.0 by @dependabot[bot] in #4143
- Bump bazel-contrib/publish-to-bcr/.github/workflows/publish.yaml from 1.2.0 to 1.3.0 by @dependabot[bot] in #4142
- [CODE HEALTH] Fix clang-tidy bugprone-exception-escape warnings in API by @dbarker in #3964
- [API+SDK] apply filtering EmitLogRecord by @proost in #4079
- [CI] iwyu clang tidy install thirdparty script to unify dev container by @proost in #4136
- [CONTEXT] Fix env carrier key normalization to be spec compliant by @pranitaurlam in #4141
- [SDK] Delta temporality: use per-instrument creation time for first interval start_ts by @thc1006 in #4144
- Bump bazel-contrib/publish-to-bcr/.github/workflows/publish.yaml from 1.3.0 to 1.4.0 by @dependabot[bot] in #4147
- [EXPORTER] Add custom HTTP client by @ltowarek in #4071
- docs: add CNCF Slack join instructions by @cijothomas in #4153
- [SDK] Add ComposableSampler interface and CompositeSampler by @mateenali66 in #4133
- Bump bazel-contrib/publish-to-bcr/.github/workflows/publish.yaml from 1.4.0 to 1.4.1 by @dependabot[bot] in #4150
- [SDK] File configuration: declarative resource detection types by @thc1006 in #4148
- [BUILD] Fix protobuf build failure by @marcalff in #4154
- [SEMANTIC CONVENTIONS] Upgrade to semconv 1.42.0 by @marcalff in #4156
- Bump rules_cc from 0.2.18 to 0.2.19 by @dependabot[bot] in #4120
- [CMAKE] upgrade grpc and protobuf by @dbarker in #4167
- Bump actions/checkout from 6.0.3 to 7.0.0 by @dependabot[bot] in #4169
- [BENCHMARK] add span otlp recordable benchmark by @dbarker in #4165
- [METRICS] Enable synchronous gauge delta temporality and add tests for multi reader path by @niqiangpro-cell in #4159
- Add preview support for bound instruments by @lalitb in #4042
- [API/SDK] add
WITH_LOG_FILTERING_PREVIEWoption by @dbarker in #4160 - [SEMANTIC CONVENTIONS] semconv generate events by @proost in #4171
- [EXPORTER] Handle OTLP partial success response by @RaviTriv in #4104
- Bump rules_cc from 0.2.19 to 0.2.20 by @dependabot[bot] in #4173
- [CI] pin ci
Bazel on MacOSjob runner to macos-15 by @dbarker in #4176 - [ADMIN] Revert log filtering preview option by @dbarker in #4174
- [TEST] fix metrics simple example by @dbarker in #4175
- [EXPORTER] Replace new operator with std::make_unique by @owent in #4181
- [DOC] update ABI policy docs to clarify breaking changes by @dbarker in #4180
- [CODE HEALTH] Fix clang-tidy bugprone-exception-escape in ostream exporters by @jensecrest in #4137
- [CMAKE] Upgrade ryml to 0.15.2 by @dbarker in #4185
- [CONFIGURATION] Apply default sampler when none is specified by @RaviTriv in #4170
- [CMAKE] Upgrade curl to 8.21.0 by @dbarker in #4187
- Bump actions/cache from 5.0.5 to 6.0.0 by @dependabot[bot] in #4177
- Bump actions/cache from 6.0.0 to 6.1.0 by @dependabot[bot] in #4189
- [API] fix the trace state regex to comply with the w3c trace context level 2 by @dbarker in #4194
- [CODE HEALTH] Move trace and baggage propagation test classes into anonymous namespace by @mateenali66 in #4199
- [CMAKE] Add pkg-config support for OpenTelemetry proto installation by @owent in #4192
- [CMAKE] Fix CMake WITH_API_ONLY option by @dbarker in #4201
- [CODE HEALTH] Move context propagation test classes into anonymous namespace by @mateenali66 in #4200
- [CODE HEALTH] Fix clang-tidy bugprone-unused-local-non-trivial-variable warnings by @thc1006 in #4202
- [SDK] LogRecord attribute limits enforcement by @thc1006 in #4157
- [SDK] Rename ComposableTraceIdRatioBasedSampler to ComposableProbabilitySampler by @BlackPool25 in #4210
- Bump docker/build-push-action from 7.2.0 to 7.3.0 by @dependabot[bot] in #4204
- Bump docker/setup-qemu-action from 4.1.0 to 4.2.0 by @dependabot[bot] in #4205
- Bump docker/setup-buildx-action from 4.1.0 to 4.2.0 by @dependabot[bot] in #4207
- Bump rules_cc from 0.2.20 to 0.2.21 by @dependabot[bot] in #4214
- Bump github/codeql-action/upload-sarif from 4.36.2 to 4.36.3 by @dependabot[bot] in #4213
- Bump fossas/fossa-action from 1.9.0 to 2.0.0 by @dependabot[bot] in #4212
- Bump github/codeql-action/init from 4.36.2 to 4.36.3 by @dependabot[bot] in #4209
- [CODE HEALTH] Move api/test and sdk/test classes into anonymous namespace by @thc1006 in #4217
- [CODE HEALTH] Fix clang-tidy bugprone-unchecked-string-to-number-conversion warnings by @thc1006 in #4216
- [CODE HEALTH] Fix clang-tidy misc-override-with-different-visibility warnings by @thc1006 in #4215
- [BUILD] add missing link dependency for bazel by @grrtrr in #4220
- [CODE HEALTH] Fix clang-tidy
bugprone-throwing-static-initializationwarnings by @RaviTriv in #4206 - Bump rules_cc from 0.2.21 to 0.2.22 by @dependabot[bot] in #4223
- Bump step-security/harden-runner from 2.19.4 to 2.20.0 by @dependabot[bot] in #4222
- Bump bazel-contrib/publish-to-bcr/.github/workflows/publish.yaml from 1.4.1 to 1.4.2 by @dependabot[bot] in #4221
- [CODE HEALTH] Move ext and exporters test classes into anonymous namespace by @mateenali66 in #4225
- Bump github/codeql-action/upload-sarif from 4.36.3 to 4.37.0 by @dependabot[bot] in #4227
- Bump github/codeql-action/init from 4.36.3 to 4.37.0 by @dependabot[bot] in #4229
- [SEMANTIC CONVENTIONS] Upgrade to semantic conventions 1.43.0 by @marcalff in #4230
- [CODE HEALTH] Move otlp, zipkin and prometheus test classes into anonymous namespace by @mateenali66 in #4231
- [BAZEL] Upgrade to rapidyaml 1.15.2 by @marcalff in #4234
- [BENCHMARK] add SpanData recordable benchmark and unify common utils by @dbarker in #4203
- [CI] Add
modernize-andcppcoreguidelines-pro-checks to clang-tidy by @dbarker in #4238 - [METRICS SDK] Apply cardinality limits only to non-overflow attributesets by @ThomsonTan in #4236
- [SDK] Fix yaml configuration of the logger configurator by @dbarker in #4241
- [SDK] Support LoggerConfigurator updates and example by @dbarker in #4224
- Bump actions/stale from 10.3.0 to 10.4.0 by @dependabot[bot] in #4242
- [CMAKE] Remove environment variable support from the add external components script by @dbarker in #4211
- [ETW] Make spans own their names by @ThomsonTan in #4247
- [SDK] Span limits configuration by @dbarker in #4232
- [CONFIGURATION] Define and set spec default values in configuration objects by @dbarker in #4244
- [CMAKE] Upgrade to protobuf 35.1 and grpc 1.82.1 by @dbarker in #4255
- [RELEASE] Release opentelemetry-cpp 1.28.0 by @marcalff in #4233
New Contributors
- @fmutlu68 made their first contribution in #4069
- @Galileo927 made their first contribution in #4089
- @RaviTriv made their first contribution in #4088
- @DucMinhNe made their first contribution in #4111
- @jensecrest made their first contribution in #4109
- @om7057 made their first contribution in #4131
- @pranitaurlam made their first contribution in #4141
- @ltowarek made their first contribution in #4071
- @niqiangpro-cell made their first contribution in #4159
- @BlackPool25 made their first contribution in #4210
- @grrtrr made their first contribution in #4220
Full Changelog: v1.27.0...v1.28.0