github open-telemetry/opentelemetry-cpp v1.28.0
v1.28.0 release

5 hours ago

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 of IsValidKey, IsValidKeyRegEx, and IsValidKeyNonRegEx
      changes (see docs/abi-policy.md).
  • [API+SDK] apply filtering EmitLogRecord (#4079)
    #4079

    • [API] (ABI v2) Logger::EmitLogRecord(...) templates now apply the
      Enabled filter chain when a Severity is in args. v1 behavior is
      unchanged.

    • [API/SDK] (ABI v2) Add Logger::CreateLogRecord virtual taking
      const nostd::variant<trace::SpanContext, context::Context> &
      for explicit-context record creation. Logger::EmitLogRecord(args...)
      also detects a Context, SpanContext
      or TraceId + 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
      to true. Built-in SimpleLogRecordProcessor and
      BatchLogRecordProcessor override to false since they use the default
      Enabled.

    • [API/SDK] Replace Context-only signatures on
      LogRecordProcessor::Enabled,
      LogRecordProcessor::EnabledImplementation,
      Logger::EnabledImplementation (v2), and Logger::CreateLogRecord (v2)
      with nostd::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_PREVIEW option 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 MacOS job 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-initialization warnings 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- and cppcoreguidelines-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

Full Changelog: v1.27.0...v1.28.0

Don't miss a new opentelemetry-cpp release

NewReleases is sending notifications on new releases.