Releases: open-telemetry/opentelemetry-cpp
v1.21.0 release
v1.21.0 release
Release of:
- opentelemetry-api
- opentelemetry-sdk
- exporter packages
What's Changed
- [BUILD] Remove
WITH_ABSEIL
by @owent in #3318 - [INSTALL] add cmake components to the package by @dbarker in #3220
- [CI] Harden GitHub Actions by @khanhtc1202 in #3338
- [StepSecurity] Harden GibHub Actions, part 2 by @marcalff in #3340
- Bump github/codeql-action from 3.28.12 to 3.28.13 by @dependabot in #3341
- [DEVCONTAINER] expose cmake version setting as docker arg and environment variable by @dbarker in #3347
- [CI] disable bzip2 in conan builds by @dbarker in #3352
- [SEMANTIC CONVENTIONS] Upgrade semantic conventions to 1.32.0 by @marcalff in #3351
- Bump github/codeql-action from 3.28.13 to 3.28.15 by @dependabot in #3353
- [CMAKE] bump cmake minimum required version to 3.14 by @dbarker in #3349
- Bump codecov/codecov-action from 5.4.0 to 5.4.2 by @dependabot in #3362
- [DOC] Fix documentation tags in logger API by @zurex in #3371
- [CI] fix artifacts download/upload by @esigo in #3369
- [API] Add Enabled method to Tracer by @psx95 in #3357
- [BUILD] Fixes warnings of ciso646 in C++17 by @owent in #3360
- Bump github/codeql-action from 3.28.15 to 3.28.16 by @dependabot in #3377
- Bump step-security/harden-runner from 2.11.1 to 2.12.0 by @dependabot in #3373
- Bump docker/build-push-action from 6.15.0 to 6.16.0 by @dependabot in #3382
- Bump actions/download-artifact from 4.2.1 to 4.3.0 by @dependabot in #3381
- [CI] Harden Github actions - pinned-dependencies (part -1) by @lalitb in #3380
- [StepSecurity] ci: Harden GitHub Actions by @step-security-bot in #3378
- [SDK] Base2 exponential histogram aggregation by @ethandmd in #3346
- [StepSecurity] ci: Harden GitHub Actions by @step-security-bot in #3379
- [BUILD] Fixes glibc++ 5 checking by @owent in #3355
- [TEST] Add stress test for histogram metric for multiple threads validation by @ThomsonTan in #3388
- Bump github/codeql-action from 3.28.16 to 3.28.17 by @dependabot in #3389
- [SDK] Optimize PeriodicExportingMetricReader Thread Usage by @ColeVanOphem in #3383
- [Metrics SDK] Use nostd::function_ref in AttributesHashMap by @yashykt in #3393
- [SDK] support aggregation of identical instruments by @dbarker in #3358
- [BUILD] Fixes unused var by @owent in #3397
- [INSTALL] Unify cmake install functions and dynamically set component dependencies by @dbarker in #3368
- [BUILD] Upgrade nlohmann_json to 3.12.0 by @marcalff in #3406
- [BUILD] Upgrade opentelemetry-proto to 1.6.0 by @marcalff in #3407
- [CMAKE] add generated protobuf headers to the opentelemetry_proto target by @dbarker in #3400
- [MERGE] Fix accidental rollback of nlohmann-json submodule by @dbarker in #3415
- Bump fossas/fossa-action from 1.6.0 to 1.7.0 by @dependabot in #3414
- Bump docker/build-push-action from 6.16.0 to 6.17.0 by @dependabot in #3420
- Bump codecov/codecov-action from 5.4.2 to 5.4.3 by @dependabot in #3419
- [SEMANTIC CONVENTIONS] Upgrade semantic conventions to 1.33 by @marcalff in #3416
- [DOCS] update the INSTALL guide on cmake components by @dbarker in #3422
- Bump github/codeql-action from 3.28.17 to 3.28.18 by @dependabot in #3423
- [CMAKE] update cmake files in examples directory by @dbarker in #3421
- [SDK] Fix Base2ExponentialHistogramAggregation Merge with empty buckets by @dbarker in #3425
- [SDK] Fix MetricProducer interface by @yashykt in #3413
- [CMAKE] remove global include_directories usage and rely on target properties by @dbarker in #3426
- [BUILD] remove unused WITH_CURL build flag by @marcalff in #3429
- [SEMANTIC CONVENTIONS] Upgrade to semantic conventions 1.34.0 by @marcalff in #3428
- [EXPORTER] ostream log exporter, fix memory ownership issues by @marcalff in #3417
- [TEST] add all components to the cmake fetch content test by @dbarker in #3433
- [BUILD] Error out when building DLL without MSVC by @ThomsonTan in #3438
- [BUILD] Add missing CMake keyword for target_link_libraries by @ThomsonTan in #3442
- [CMAKE] Remove third-party version mismatch warning by @dbarker in #3432
- Bump docker/build-push-action from 6.17.0 to 6.18.0 by @dependabot in #3446
- [SEMANTIC CONVENTIONS] Fix comment style to preserve markup by @marcalff in #3444
- [EXPORTER] support unix sockets in grpc client by @ethandmd in #3410
- [BUILD] Propagate INTERFACE_COMPILE_DEFINITIONS from API through common_foo_library by @ThomsonTan in #3440
- [RELEASE] Release opentelemetry-cpp 1.21.0 by @marcalff in #3445
New Features
-
[SDK] Base2 exponential histogram aggregation
#3346- Add base2 exponential histogram aggregation. Includes a new aggregation type,
ostream exporter, and otlp/grpc exporter. Updated histogram aggregation and
benchmark tests.
- Add base2 exponential histogram aggregation. Includes a new aggregation type,
Important changes
-
[EXPORTER] ostream log exporter, fixed memory ownership issues
#3417-
In the SDK, the following classes implementation has changed:
- opentelemetry::sdk::logs::ReadableLogRecord
- opentelemetry::sdk::logs::ReadWriteLogRecord
-
An application implementing a custom log record exporter,
that reuses these classes from the opentelemetry-cpp SDK,
will need code adjustments, in particular for methods:- GetBody()
- GetAttributes()
-
Applications not using these SDK classes directly are not affected.
-
-
[BUILD] Remove WITH_ABSEIL
#3318-
The build option
WITH_ABSEIL
is no longer used, and opentelemetry-cpp
will no longer use any release of abseil provided externally,
for its own use. -
Instead, opentelemetry-cpp will only use an internal abseil version.
-
This change resolves long standing binary integrity issues,
that occurred in the past when mixing several versions of abseil
in the build.
-
Deprecations
- This release contains deprecations, see file DEPRECATED.md for details.
New Contributors
- @khanhtc1202 made their first contribution in #3338
- @step-security-bot made their first contribution in #3378
- @ethandmd made their first contribution in #3346
- @ColeVanOphem made their first contribution in #3383
Full Changelog: v1.20.0...v1.21.0
v1.20.0 release
v1.20.0 release
Release of:
- opentelemetry-api
- opentelemetry-sdk
- exporter packages
What's Changed
- [BUILD] Update opentelemetry-proto version by @santigimeno in #3254
- [BUILD] Build break with CURL 7.29.0 by @marcalff in #3255
- [SEMANTIC CONVENTIONS] Upgrade to semantic conventions 1.30.0 by @marcalff in #3258
- [SDK] Add tracer scope configurator by @psx95 in #3137
- [DOC] Add document and example for sharing gRPC Client by @owent in #3260
- [SDK] Fix BatchLogRecordProcessor to instrument shutdown by @marcalff in #3262
- [SDK] Support OTEL_SDK_DISABLED environment variable by @marcalff in #3245
- [CI] OTLP in Windows builds by @chusitoo in #3263
- [BUILD] Fixes compatibility of type_traits by @owent in #3274
- [BUILD] Fix compilation with Regex being disabled by @kylepl in #3276
- [EXPORTER] Support exporting event_name using OTLP Exporter by @perhapsmaple in #3277
- [CI] Add FOSSA scanning workflow by @opentelemetrybot in #3279
- [BUILD] Adding typecast without whom c++latest build fails by @jeremicmilan in #3281
- [ADMIN] Add FOSSA badges by @marcalff in #3280
- [BUILD] Fix compiling problems with abiv2 and MSVC by @owent in #3284
- [BUILD] Enable old behavior of CMP0092 by @ThomsonTan in #3269
- [SDK] Add meter scope configurator by @psx95 in #3268
- [DEVCONTAINER] support customization and run as non-root user by @dbarker in #3270
- [ETW] Add configuration to export 64-bit integer as timestamp by @ThomsonTan in #3286
- [API] Deprecate event logger by @owent in #3285
- [BUILD] Add link directory to support curl 8.12 by @owent in #3272
- [API] Change the param-pack unpacking order to start from left to right by @ThomsonTan in #3296
- [SDK] Implement spec: MetricFilter by @IcySteam in #3235
- [SEMANTIC CONVENTIONS] Upgrade semantic conventions to 1.31.0 by @marcalff in #3297
- [SDK] Add logger scope configurator by @psx95 in #3282
- [EXAMPLE] fix buffer overrun in the gRPC sample project by @lukeina2z in #3304
- [CI] Bump fossas/fossa-action from 1.5.0 to 1.6.0 by @dependabot in #3305
- [TEST] fix segfault in singleton test with cmake on macos-latest by @dbarker in #3316
- [TEST] fix test failure with elasticsearch exporter on cxx20 by @dbarker in #3308
- [TEST] otlp grpc exporter retry test fix by @dbarker in #3311
- [SDK] Use OPENTELEMETRY_EXPORT and static local variables by @psx95 in #3314
- [BUILD] Fix elasticsearch exporter json compatibility by @dbarker in #3313
- [BUILD] Fix missing exported definition for OTLP file exporter and forceflush by @ThomsonTan in #3319
- [BUILD] Remove gRPC header including in
OtlpGrpcClientFactory
. by @owent in #3321 - [ADMIN] Add Pranav Sharma in cpp-approvers by @psx95 in #3323
- [DEVCONTAINER] fix grpc install by @dbarker in #3325
- [ADMIN] Add Doug Barker to approvers by @dbarker in #3331
- [CI] Upgrade CI to ubuntu 22.04 by @marcalff in #3330
- Add ossf-scorecard scanning workflow by @opentelemetrybot in #3332
- [CI] pin cmake in ci and devcontainer by @dbarker in #3336
- [METRICS SDK] Fix hash collision in MetricAttributes by @ThomsonTan in #3322
- [RELEASE] Release opentelemetry-cpp 1.20.0 by @marcalff in #3328
Deprecations
- This release contains deprecations, see file DEPRECATED.md for details.
New Contributors
- @opentelemetrybot made their first contribution in #3279
- @jeremicmilan made their first contribution in #3281
- @IcySteam made their first contribution in #3235
- @lukeina2z made their first contribution in #3304
New Approvers
- @dbarker is now a member of @open-telemetry/cpp-approvers
- @psx95 is now a member of @open-telemetry/cpp-approvers
Full Changelog: v1.19.0...v1.20.0
v1.19.0 release
Errata
Due to a missing stability attribute in semantic conventions:
open-telemetry/semantic-conventions#1777
the semantic convention network.interface.name
was marked as stable during code generation.
Semantic convention network.interface.name
should be considered experimental instead,
and will become experimental in the next opentelemetry-cpp release.
v1.19.0 release
Release of:
- opentelemetry-api
- opentelemetry-sdk
- exporter packages
What's Changed
- [PROMETHEUS_EXPORTER] Fix default for emitting otel_scope attributes by @yashykt in #3171
- [Code health] Include what you use cleanup, part 5 by @marcalff in #3140
- [BUILD] Upgrade cmake by @owent in #3167
- [SHIM] Fix string_view mappings between OT and OTel by @chusitoo in #3181
- [EXPORTER] Refactor
ElasticSearchRecordable
by @sjinks in #3164 - [SEMANTIC CONVENTIONS] Upgrade to semantic conventions 1.29.0 by @marcalff in #3182
- [BUILD] Fix cross-compilation with protoc by @seanchann in #3186
- [Code health] Perform cppcheck cleanup by @chusitoo in #3150
- [EXPORTER] add instrumentation scope attributes to otlp proto messages for traces and metrics by @dbarker in #3185
- [SDK] Tracer provider shutdown blocks in-definitively by @marcalff in #3191
- [SEMANTIC CONVENTIONS] Upgrade to weaver 0.11.0 by @marcalff in #3194
- [DOC] Update existing maintaining dependencies doc by @zurex in #3195
- [TEST] Change
is_called_
andgot_response_
to use atomic by @owent in #3204 - [SEMANTIC CONVENTIONS] update links to openmetrics to reference the v1.0.0 release by @dashpole in #3205
- [CI] Fix CI on ubuntu-latest by @marcalff in #3207
- [BUILD] Build break using protoc 3.14 by @marcalff in #3211
- [TEST] Build the singleton test on windows. by @marcalff in #3183
- [BUILD] Add cxx feature detections by @owent in #3203
- [SDK] Do not frequently create and destroy http client threads by @xiehuc in #3198
- [EXPORTER] Optimize OTLP HTTP compression by @chusitoo in #3178
- [SDK] Fix include instrumentation scope attributes in equal method by @dbarker in #3214
- Upgrade to opentelemetry-proto 1.5.0 by @marcalff in #3210
- [TEST] Added support for SELINUX in functional tests by @marcalff in #3212
- [EDITORIAL] fix changelog entry for PR 3185 by @dbarker in #3217
- [TEST] Functional tests for OTLP/gRPC with mutual TLS by @chusitoo in #3227
- [SEMCONV] Metrics are incorrectly prefixed with
metric.
by @marcalff in #3228 - [BUILD] Add OTLP/file exporter for dll and examples by @owent in #3231
- [Code Health] Include what you use, part 6 by @marcalff in #3216
- [CI] Spurious test failures by @marcalff in #3233
- [BUILD] Fix error ‘uint8_t’ does not name a type with gcc-15 by @AngryLoki in #3240
- [EXPORTER] fix throw in OtlpGrpcMetricExporter with shared grpc client by @dbarker in #3243
- [SDK] Better control of threads executed by opentelemetry-cpp by @marcalff in #3175
- [Code Health] Include what you use, part 7 by @marcalff in #3238
- [SDK] Fix lifetime of GlobalLogHandler by @owent in #3221
- [MAINTAINER] Add devcontainer by @esigo in #3123
- [SDK] enable deriving from ResourceDetector to create a Resource by @dbarker in #3247
- [EXPORTER] Support handling retry-able errors for OTLP/HTTP by @chusitoo in #3223
- [CI] Add GRPC in maintainer CI by @marcalff in #3248
- [EXPORTER] Support handling retry-able errors for OTLP/gRPC by @chusitoo in #3219
- [SDK] Optimize Metric Processing for Single Collector with Delta Temporality by @lalitb in #3236
- [RELEASE] release opentelemetry-cpp 1.19.0 by @marcalff in #3249
New Features
-
[SDK] Better control of threads executed by opentelemetry-cpp
#3175- This feature is experimental,
protected by a WITH_THREAD_INSTRUMENTATION_PREVIEW
flag in CMake.
- This feature is experimental,
-
[EXPORTER] Support handling retry-able errors for OTLP/HTTP
#3223- This feature is experimental,
protected by a WITH_OTLP_RETRY_PREVIEW
flag in CMake.
- This feature is experimental,
-
[EXPORTER] Support handling retry-able errors for OTLP/gRPC
#3219- This feature is experimental,
protected by a WITH_OTLP_RETRY_PREVIEW
flag in CMake.
- This feature is experimental,
Deprecations
- This release contains deprecations, see file DEPRECATED.md for details.
New Contributors
- @dbarker made their first contribution in #3185
- @zurex made their first contribution in #3195
- @xiehuc made their first contribution in #3198
- @AngryLoki made their first contribution in #3240
Full Changelog: v1.18.0...v1.19.0
v1.18.0 release
v1.18.0 release
Release of:
- opentelemetry-api
- opentelemetry-sdk
- exporter packages
What's Changed
- [EXPORTER] Fix crash in ElasticsearchLogRecordExporter by @ShadowMaxLeb in #3082
- [BUILD] Avoid buggy warning with gcc <= 8 by @Romain-Geissler-1A in #3087
- [API] Jaeger Propagator should not be deprecated by @marcalff in #3086
- Update bzlmod version by @owent in #3093
- [BUILD] Remove
std::make_unique
by @owent in #3098 - [BUILD] Fix compiling problems for gcc 4.8 by @owent in #3100
- [TEST] Fix linking order and gmock linking by @owent in #3106
- [EXPORTER] Add config options to prometheus exporter by @psx95 in #3104
- [BUILD] Add a CMake option to disable shared libs by @tobim in #3095
- [EXPORTER] Remove out of date ETW exporter doc by @ThomsonTan in #3103
- [EXPORTER] Add logging for async gRPC errors by @santigimeno in #3108
- [BUILD] Remove aligned_storage from nostd by @ColoredCarrot in #3112
- [EXPORTER] Elastic Search exporter follow ECS guidelines by @ShadowMaxLeb in #3107
- [INSTALL] Resolve dependencies in opentelemetry-cpp-config.cmake by @tobim in #3094
- [API] Add synchronous gauge by @uuzay in #3029
- [BUILD] allow building with -DWITH_OTLP_HTTP_COMPRESSION=OFF without zlib by @cfstras in #3120
- [CI] Comment the arm64 CI by @marcalff in #3125
- [API] Comply with W3C Trace Context by @psx95 in #3115
- [EXPORTER] bump prometheus to v1.3.0 by @esigo in #3122
- [EXPORTER] Log SSL Connection Information by @chusitoo in #3113
- [BUILD] Improve how to handle yield() in ARM. by @santiagorr in #3129
- [BUILD] Fix -Wmissing-template-arg-list-after-template-kw warning by @yashykt in #3133
- [EXPORTER]: Elasticsearch exporter put log resource in root instead of under 'resources' by @ShadowMaxLeb in #3131
- [TEST] Rename w3c_tracecontext_test to w3c_tracecontext_http_test_server by @psx95 in #3132
- [BUILD] Patches for building on AIX by @tjcw in #3127
- [SEMANTIC CONVENTIONS] Migration to weaver by @marcalff in #3105
- [SEMANTIC CONVENTIONS] Upgrade to semantic conventions 1.28.0 by @marcalff in #3139
- [EXPORTER] handling of invalid ports in UrlParser by @sjinks in #3142
- [CI] speed up
clang-tidy
workflow by @sjinks in #3148 - [EXPORTER] Allow to share gRPC clients between OTLP exporters by @owent in #3041
- Bump codecov/codecov-action from 4 to 5 by @dependabot in #3143
- [CI] Add cppcheck in the build by @chusitoo in #3151
- [BUILD] Fix error message by @ThomsonTan in #3152
- [EXPORTER] fix clang-tidy warnings in UrlParser by @sjinks in #3146
- [EXPORTER] Upgrade to opentelemetry-proto 1.4.0 by @marcalff in #3157
- [TEST] refactor UrlParser tests to use value-paramterized tests by @sjinks in #3153
- [TEST] add a test for ElasticSearchRecordable by @sjinks in #3154
- [BUILD] Fix missing dependency on protoc compiler by @marcalff in #3159
- [bazel] Update prometheus-cpp in MODULE.bazel by @keith in #3162
- [bazel] Enable --incompatible_disallow_empty_glob by @keith in #2642
- [INSTALL] Fix cmake/opentelemetry-cpp-config.cmake.in by @marcalff in #3165
- [BUILD] Do not set OTELCPP_PROTO_PATH in the CMake cache by @marcalff in #3160
- [BUILD] Fix build for esp32 by @albkharisov in #3155
- [bazel] Update opentelemetry-proto in MODULE.bazel by @keith in #3163
- [RELEASE] Release opentelemetry-cpp 1.18.0 by @marcalff in #3168
Important changes
-
[API] Jaeger Propagator should not be deprecated
#3086- Deprecation of the Jaeger propagator, as announced on 2023-01-31
in version 1.8.2, is now reverted. - This deprecation turned out to be not justified,
as the Jaeger propagator can be used without the (now removed)
Jaeger exporter.
- Deprecation of the Jaeger propagator, as announced on 2023-01-31
-
[EXPORTER] Change log resources location for ElasticsearchLogRecordExporter
#3119- Moved from
root/resources
toroot
- Moved from
-
[SEMANTIC CONVENTIONS] Migration to weaver
#3105semantic_convention.h
header files are deprecated,
replaced bysemconv/xxx_attributes.h
header files,
for eachxxx
semantic attribute group.- See file DEPRECATED.md for details.
Deprecations
- This release contains deprecations, see file DEPRECATED.md for details.
New Contributors
- @Romain-Geissler-1A made their first contribution in #3087
- @psx95 made their first contribution in #3104
- @tobim made their first contribution in #3095
- @santigimeno made their first contribution in #3108
- @ColoredCarrot made their first contribution in #3112
- @uuzay made their first contribution in #3029
- @cfstras made their first contribution in #3120
- @santiagorr made their first contribution in #3129
- @yashykt made their first contribution in #3133
- @tjcw made their first contribution in #3127
- @sjinks made their first contribution in #3142
- @albkharisov made their first contribution in #3155
Full Changelog: v1.17.0...v1.18.0
v1.17.0 release
v1.17.0 release
Release of core packages
- opentelemetry-api
- opentelemetry-sdk
and exporter packages:
- opentelemetry-exporter-otlp (gRPC + HTTP/JSON)
- opentelemetry-exporter-prometheus
What's Changed
- [CI] Add a clang-tidy build by @msiddhu in #3001
- [BUILD] Upgrade to opentelemetry-proto 1.3.2 by @marcalff in #2991
- [REMOVAL] Remove build option
WITH_DEPRECATED_SDK_FACTORY
by @marcalff in #2717 - [EXPORTER] ForceFlush before canceling the running requests on shutdown. by @owent in #2727
- [SDK] Fix crash in
PeriodicExportingMetricReader
. by @owent in #2983 - [SDK] Fix memory leak in TlsRandomNumberGenerator() constructor by @hongweipeng in #2661
- [EXPORTER] Ignore exception when create thread in OTLP file exporter. by @owent in #3012
- [BUILD] Update the version in MODULE.bazel by @BYVoid in #3015
- [BUILD] Fix build without vcpkg on Windows when gRPC is disabled by @Corristo in #3016
- [BUILD] Add abi_version_no bazel flag. by @BYVoid in #3020
- [Code health] Expand iwyu coverage to include unit tests. by @marcalff in #3022
- [BUILD] Version opentelemetry_proto/proto_grpc shared libraries by @Troels51 in #2992
- [SEMANTIC CONVENTIONS] Upgrade semantic conventions to 1.27.0 by @marcalff in #3023
- [SDK] Support empty histogram buckets by @lalitb in #3027
- [TEST] Fix sync problems in OTLP File exporter tests. by @owent in #3031
- [SDK] PeriodicExportingMetricReader: future is never set, blocks until timeout by @owent in #3030
- [Code Health] Clang Tidy cleanup, Part 2 by @msiddhu in #3038
- [Code Health] include-what-you-use cleanup, part 3 by @marcalff in #3004
- [SDK] Fix overflow in timeout logic by @punya in #3046
- [TEST] Add missing tests to Bazel build by @punya in #3045
- [TEST] update collector tests with debug exporter by @codeboten in #3050
- [EXAMPLE] update collector example with debug exporter by @codeboten in #3049
- [TEST] update references to logging exporter by @codeboten in #3053
- [EXAMPLE] Clean the tracer initialization in OStream example by @ThomsonTan in #3051
- [EXPORTER] Fix the format of SpanLink for ETW by @ThomsonTan in #3054
- [EXPORTER] Implement in-memory metric exporter by @punya in #3043
- [Code Health] include-what-you-use cleanup, part 4 by @marcalff in #3040
- [BUILD] add loongarch info by @loong-hy in #3052
- [CI] Update otel-collector version by @fabriziomello in #3067
- [SDK] Update MetricProducer interface to match spec by @punya in #3044
- [EXPORTER] Fix URL in ES exporter, fix ipv6 supporting for http client. by @owent in #3081
- [EXPORTER] Add HttpHeaders in ElasticsearchLogRecordExporter by @ShadowMaxLeb in #3083
- [RELEASE] Release opentelemetry-cpp 1.17.0 by @marcalff in #3076
Breaking changes
-
[REMOVAL] Remove build option
WITH_DEPRECATED_SDK_FACTORY
#2717-
As announced in opentelemetry-cpp previous release 1.16.0,
CMake optionWITH_DEPRECATED_SDK_FACTORY
was temporary,
and to be removed by the next release. -
This option is now removed.
-
Code configuring the SDK must be adjusted, as previously described:
-
[API/SDK] Provider cleanup
#2664 -
Before this fix:
-
SDK factory methods such as:
- opentelemetry::sdk::trace::TracerProviderFactory::Create()
- opentelemetry::sdk::metrics::MeterProviderFactory::Create()
- opentelemetry::sdk::logs::LoggerProviderFactory::Create()
- opentelemetry::sdk::logs::EventLoggerProviderFactory::Create()
returned an API object (opentelemetry::trace::TracerProvider)
to the caller.
-
-
After this fix, these methods return an SDK level object
(opentelemetry::sdk::trace::TracerProvider) to the caller. -
Returning an SDK object is necessary for the application to
cleanup and invoke SDK level methods, such as ForceFlush(),
on a provider. -
The application code that configures the SDK, by calling
the various provider factories, may need adjustment. -
All the examples have been updated, and in particular no
longer perform static_cast do convert an API object to an SDK object.
Please refer to examples for guidance on how to adjust.
-
-
New Contributors
- @hongweipeng made their first contribution in #2661
- @BYVoid made their first contribution in #3015
- @Corristo made their first contribution in #3016
- @Troels51 made their first contribution in #2992
- @codeboten made their first contribution in #3050
- @loong-hy made their first contribution in #3052
- @fabriziomello made their first contribution in #3067
- @ShadowMaxLeb made their first contribution in #3083
Full Changelog: v1.16.1...v1.17.0
v1.16.1 release
v1.16.1 release
Release of core packages
- opentelemetry-api
- opentelemetry-sdk
and exporter packages:
- opentelemetry-exporter-otlp (gRPC + HTTP/JSON)
- opentelemetry-exporter-prometheus
What's Changed
- [BUILD] Add bazel missing BUILD file by @tdat00 in #2720
- [SDK] Added reserve for spans array in BatchSpanProcessor. by @msiddhu in #2724
- [DOC] Update "Using triplets" section in building-with-vcpkg documentation. by @Pravila00 in #2726
- [DOC] Remove comment for unused LoggerProvider initialization params by @herman5 in #2972
- [SECURITY] Remove OTLP HTTP support for TLS 1.0 and TLS 1.1, require TLS 1.2 by @marcalff in #2722
- [TEST] Fix opentelemetry-collector bind address by @marcalff in #2989
- [EXPORTER] Fix references in AttributeValueVisitor by @meastp in #2985
- [Code health] include-what-you-use cleanup, part 2 by @marcalff in #2704
- [Code Health] clang-tidy cleanup, part 1 by @msiddhu in #2990
- [CI] Build failures with ABSEIL 20240116 and CMAKE 3.30 by @marcalff in #3002
- [CI] Enable bzlmod by @keith in #2995
- [Metrics SDK] Fix hash calculation for nostd::string by @lalitb in #2999
- [RELEASE] Release opentelemetry-cpp version 1.16.1 by @marcalff in #3007
Breaking changes
- [SECURITY] Remove OTLP HTTP support for TLS 1.0 and TLS 1.1,
require TLS 1.2 or better
#2722- The OTLP HTTP exporter no longer accept options like:
- min_TLS = 1.0
- min_TLS = 1.1
- max_TLS = 1.0
- max_TLS = 1.1
- When connecting to an OTLP HTTP endpoint, using
https
,
the connection will require TLS 1.2 by default,
unless min_TLS is set to 1.3 - Plain
http
connections (insecure) are not affected.
- The OTLP HTTP exporter no longer accept options like:
New Contributors
- @tdat00 made their first contribution in #2720
- @msiddhu made their first contribution in #2724
- @Pravila00 made their first contribution in #2726
- @herman5 made their first contribution in #2972
Full Changelog: v1.16.0...v1.16.1
v1.16.0 release
v1.16.0 release
Release of core packages
- opentelemetry-api
- opentelemetry-sdk
and exporter packages:
- opentelemetry-exporter-otlp (gRPC + HTTP/JSON)
- opentelemetry-exporter-prometheus
What's Changed
- [BUILD] Upgrade bazel abseil from 20220623.1 to 20230802.2 by @marcalff in #2650
- [BUILD] Use
nostd::enable_if_t
instead ofstd::enable_if_t
by @owent in #2648 - [EXEMPLAR] Update ExemplarFilter and ExemplarReservoir for spec by @ThomsonTan in #2372
- [BUILD] Link CoreFoundation on apple systems because some dependency packages require it by @owent in #2655
- [SDK] Avoid missing conditional variable update and simplify atomic bool by @arekay in #2553
- [BUILD] Build break in OLTP_FILE tests by @marcalff in #2659
- [EXPORTER] General cleanup for is_shutdown_ flags in exporters. by @marcalff in #2663
- [CI] Upgrade Maintainers CI to ubuntu-24.04 by @marcalff in #2670
- [BUILD] Upgrade to opentelemetry-proto 1.3.1 by @marcalff in #2669
- [API] Return NoopLogRecord from NoopLogger by @marcalff in #2668
- [BUILD] Remove the hard-coded separator in tracestate by @ThomsonTan in #2672
- [SDK] Fix forceflush may wait for ever by @owent in #2584
- [API] DO not allow unsafe
Logger::EmitLogRecord
by @owent in #2673 - [BUILD] Read default proto version from
third_party_release
by @owent in #2677 - [CI] include-what-you-use by @marcalff in #2629
- [CI] Upgrade to clang-format 18 by @marcalff in #2684
- [CI] Fix CI failures on Ubuntu 24.04 by @lalitb in #2686
- [SEMANTIC CONVENTIONS] Upgrade to version 1.26.0 by @marcalff in #2687
- [API/SDK] Provider cleanup by @marcalff in #2664
- [ETW] Add table name mapping for Logs other than the default Log table by @ThomsonTan in #2691
- [CI] Remove benchmark overlay for vcpkg by @ThomsonTan in #2695
- [BUILD] Remove the incorrect set of CMAKE_MSVC_RUNTIME_LIBRARY for vcpkg by @ThomsonTan in #2696
- [BUILD] CMakeLists.txt: Enable CMAKE_MSVC_RUNTIME_LIBRARY support by @t-b in #2652
- [EXPORTER] OTLP file: use thread-safe file/io by @owent in #2675
- [bazel] Bump version and deps by @keith in #2679
- [BUILD] Add support for bzlmod by @keith in #2608
- [BUILD] Fix Import Abseil-cpp by @LeiZhang-Hunter in #2701
- [Code health] include-what-you-use cleanup by @marcalff in #2692
- [BUILD] Restore Bazel flag removed from public API by @dbolduc in #2702
- [DOC] Fix typo tace_id -> trace_id in logger.h by @yijiem in #2703
- Bump docker/build-push-action from 5 to 6 by @dependabot in #2705
- [CI] Enable ARM64 build in CI by @esigo in #2699
- [Code health] Remove Unicode Text from Source files by @perhapsmaple in #2707
- [BUILD] Add option
WITH_OTLP_GRPC_SSL_MTLS_PREVIEW
by @owent in #2714 - [EXPORTER] All 2xx return codes should be considered successful. by @owent in #2712
- [RELEASE] Release opentelemetry-cpp version 1.16.0 by @marcalff in #2711
Important changes
- [API/SDK] Provider cleanup
#2664- Before this fix:
- The API class
opentelemetry::trace::Tracer
exposed methods such
asForceFlush()
,ForceFlushWithMicroseconds()
,Close()
andCloseWithMicroseconds()
. - These methods are meant to be used when configuring the SDK,
and should not be part of the API. Exposing them was an oversight. - Two of these methods are virtual, and therefore part of the ABI.
- The API class
- After this fix:
- In
OPENTELEMETRY_ABI_VERSION_NO 1
, nothing is changed,
because removing this code would break the ABI. - In
OPENTELEMETRY_ABI_VERSION_NO 2
, these methods are moved
from the API to the SDK. This is a breaking change for ABI version 2,
which is still experimental.
- In
- In all cases, instrumenting an application should not
invoke flush or close on a tracer, do not use these methods.
- Before this fix:
Breaking changes
- [API/SDK] Provider cleanup
#2664- Before this fix:
- SDK factory methods such as:
- opentelemetry::sdk::trace::TracerProviderFactory::Create()
- opentelemetry::sdk::metrics::MeterProviderFactory::Create()
- opentelemetry::sdk::logs::LoggerProviderFactory::Create()
- opentelemetry::sdk::logs::EventLoggerProviderFactory::Create()
returned an API object (opentelemetry::trace::TracerProvider)
to the caller.
- SDK factory methods such as:
- After this fix, these methods return an SDK level object
(opentelemetry::sdk::trace::TracerProvider) to the caller. - Returning an SDK object is necessary for the application to
cleanup and invoke SDK level methods, such as ForceFlush(),
on a provider. - The application code that configures the SDK, by calling
the various provider factories, may need adjustment. - All the examples have been updated, and in particular no
longer perform static_cast do convert an API object to an SDK object.
Please refer to examples for guidance on how to adjust. - If adjusting application code is impractical,
an alternate and temporary solution is to build with option
WITH_DEPRECATED_SDK_FACTORY=ON in CMake. - Option WITH_DEPRECATED_SDK_FACTORY=ON will allow to build code
without application changes, posponing changes for later. - WITH_DEPRECATED_SDK_FACTORY=ON is temporary, only to provide
an easier migration path. Expect this flag to be removed,
as early as by the next release.
- Before this fix:
Notes on experimental features
- #2372
introducedMeterProvider::SetExemplar()
which accepts an
ExemplarFilterType
enumeration withkAlwaysOff
,kAlwaysOn
and
kTraceBased
.
New Contributors
- @arekay made their first contribution in #2553
- @t-b made their first contribution in #2652
- @LeiZhang-Hunter made their first contribution in #2701
Full Changelog: v1.15.0...v1.16.0
v1.15.0 release
v1.15.0 release
Release of core packages
- opentelemetry-api
- opentelemetry-sdk
and exporter packages:
- opentelemetry-exporter-otlp (gRPC + HTTP/JSON)
- opentelemetry-exporter-prometheus
What's Changed
- Reapply "Change OTLP HTTP content_type default to binary (#2558)" by @ThomsonTan in #2564
- [DOC] Fix OTLP documentation: Default endpoint is wrong for OTLP/HTTP by @alanwest in #2560
- [BUILD] Fix old style cast warning by @keith in #2567
- [EXPORTER] Gzip compression support for OTLP/HTTP and OTLP/gRPC exporter by @perhapsmaple in #2530
- [BUILD] update vcpkg submodule to 2024.02.14 by @ThomsonTan in #2575
- [SDK] Support for OTEL_SERVICE_NAME by @willie in #2577
- [EXPORTER] Support URL-encoded values for
OTEL_EXPORTER_OTLP_HEADERS
by @pyohannes in #2579 - [BUILD] CMake cleanup for message() by @marcalff in #2582
- [BUILD] Bump CMake minimum required version to 3.9 by @marcalff in #2581
- [BUILD] Provide LIKELY / UNLIKELY macros by @marcalff in #2580
- [EXPORTER] OTLP: Fix missing ResourceMetrics SchemaURL by @perhapsmaple in #2587
- [etw] cleanup include path by @ThomsonTan in #2594
- Upgrade to googletest 1.14.0 by @marcalff in #2596
- Upgrade to nlohmann_json 3.11.3 by @marcalff in #2595
- [bazel] Move -std=c++14 to .bazelrc by @keith in #2600
- [bazel] Fix -std=c++14 warning on Windows by @keith in #2601
- Upgrade to benchmark 1.8.3 by @marcalff in #2597
- Upgrade to prometheus 1.2.4 by @marcalff in #2598
- [doc] Fix typo: Asynchronouse -> Asynchronous in meter.h by @yijiem in #2604
- [BUILD] Do not link
prometheus-cpp::util
when it doesn't exist by @owent in #2606 - [SDK] Remove unused variable by @keith in #2609
- [METRICS SDK] Remove extra OfferMeasurement call in SyncMetricsStorage::OfferMeasurement by @ThomsonTan in #2610
- [MISC] Use set -e on all shell scripts and pass shellcheck --severity=error by @johnbley in #2616
- [CI] Add shellcheck --severity=error as a CI step by @johnbley in #2618
- [CI] Upgrade to abseil 20240116.1 (CMake only) by @marcalff in #2599
- [CI] Benchmark, provide units with --benchmark_min_time by @marcalff in #2621
- [EXPORTER] OTLP file exporter by @owent in #2540
- [CI] Use platform CMake by @marcalff in #2627
- [PROTO] Upgrade to opentelemetry-proto 1.2.0 by @marcalff in #2631
- [SDK] DefaultLogHandler to print errors to std::cerr, add LogLevel::None by @marcalff in #2622
- [SEMANTIC CONVENTIONS] Upgrade to semantic convention 1.25.0 by @esigo in #2633
- [DOC] Add readme and examples for OTLP FILE exporters. by @owent in #2638
- [SEMANTIC CONVENTIONS] Rework on semantic conventions 1.25.0 by @marcalff in #2640
- [DOC] Update INSTALL.md by @chenhong805 in #2592
- [RELEASE] Release opentelemetry-cpp version 1.15.0 by @marcalff in #2639
Important changes:
- [EXPORTER] Gzip compression support for OTLP/HTTP and OTLP/gRPC exporter
#2530- In the
OtlpHttpExporterOptions
andOtlpGrpcExporterOptions
, a new
field called compression has been introduced. This field can be set
to "gzip” to enable gzip compression. - The CMake option
WITH_OTLP_HTTP_COMPRESSION
is introduced to enable
gzip compression support for the OTLP HTTP Exporter and includes a
dependency on zlib.
- In the
- [SDK] Change OTLP HTTP content_type default to binary
#2558 - [CI] Use platform CMake
#2627- The
CI
in github no longer install a different version ofcmake
. - It now always use the
cmake
provided by the platform. - As part of this change, the script
ci/setup_cmake.sh
was renamed
toci/setup_googletest.sh
, for clarity, now that this script
only installs googletest.
- The
- [SDK] DefaultLogHandler to print to std::cerr, add LogLevel::None
#2622- Change DefaultLogHandler output
- Before, the default internal logger, DefaultLogHandler,
used to print to std::cout. - Now, DefaultLogHandler prints errors and warnings to std::cerr,
as expected, while printing info and debug messages to std::cout. - Applications that expected to find the opentelemetry-cpp internal
error log in std::cout may need adjustments, either by looking
at std::cerr instead, or by using a custom log handler.
- Before, the default internal logger, DefaultLogHandler,
- Additional LogLevel::None
- LogLevel::None is a new supported log level, which does not print
any message. - Custom log handlers may need to implement a new case, to avoid
compiler warnings. - Numbering of log levels like OTEL_INTERNAL_LOG_LEVEL_ERROR
has changed, which requires to rebuild, as the SDK ABI differs.
- LogLevel::None is a new supported log level, which does not print
- Change DefaultLogHandler output
New Contributors
- @alanwest made their first contribution in #2560
- @keith made their first contribution in #2567
- @willie made their first contribution in #2577
- @yijiem made their first contribution in #2604
- @johnbley made their first contribution in #2616
- @chenhong805 made their first contribution in #2592
Full Changelog: v1.14.2...v1.15.0
v1.14.2 release
Release of core packages
- opentelemetry-api
- opentelemetry-sdk
What's Changed
- [SDK] Fix observable attributes drop #2557
v1.14.1 release
v1.14.1 release
Release of core packages
- opentelemetry-api
- opentelemetry-sdk
and exporter packages:
- opentelemetry-exporter-otlp (gRPC + HTTP/JSON)
- opentelemetry-exporter-prometheus
What's Changed
- [DOC] Fix typo in benchmarks.rst by @orion160 in #2542
- [BUILD] Incorrect test on ENABLE_OTLP_GRPC_SSL_MTLS_PREVIEW by @marcalff in #2546
- [EXPORTER] Error when grpc endpoint is empty by @HennerM in #2507
- [DOC] Add missing 1.14.0 CHANGELOG by @marcalff in #2549
- [SDK] Restore Recordable API compatibility with versions < 1.14.0 by @dbolduc in #2547
- [RELEASE] Release opentelemetry-cpp version 1.14.1 by @marcalff in #2551
Important changes
- [SDK] Restore Recordable API compatibility with versions < 1.14.0
#2547- For third party extending the SDK, release 1.14.0 introduced
an API breaking change compared to 1.13.0 - This fix restores API (but not ABI) compatibility of
release 1.14.1 with release 1.13.0. - This allows to build a third party exporter with no source code changes,
for both releases 1.14.1 and 1.13.0.
- For third party extending the SDK, release 1.14.0 introduced
New Contributors
Full Changelog: v1.14.0...v1.14.1