Releases: open-telemetry/opentelemetry-cpp
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
v1.14.0 release
v1.14.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] Remove gmock from GTEST_BOTH_LIBRARIES by @ThomsonTan in #2437
- Bump actions/stale from 8 to 9 by @dependabot in #2441
- [BUILD] Accept path list in OPENTELEMETRY_EXTERNAL_COMPONENT_PATH by @ThomsonTan in #2439
- [BUILD] Fix removing of NOMINMAX on Windows by @ThomsonTan in #2449
- [REMOVAL] Remove option WITH_OTLP_HTTP_SSL_PREVIEW by @marcalff in #2435
- Bump github/codeql-action from 2 to 3 by @dependabot in #2452
- [BUILD] Introduce CXX 20 CI pipeline for MSVC/Windows by @ThomsonTan in #2450
- [SEMANTIC CONVENTIONS] Code generation script fails on SELINUX by @marcalff in #2455
- Bump actions/upload-artifact from 3 to 4 by @dependabot in #2456
- [EXPORTER] Add option to disable Prometheus otel_scope_name and otel_scope_version attributes by @timwoj in #2451
- [EXPORTER] Fix Aggregation type detection in OTLP Exporter by @lalitb in #2467
- [EXPORTER] Do not use regex in
CleanUpString
because some implementations of STL may crash. by @owent in #2464 - [EXPORTER and SDK] Additional fixes after NOMINMAX removal on Windows by @meastp in #2475
- Remove duplicate install command in CMakeLists.txt for api by @meastp in #2474
- [EXPORTER] Set is_monotonic flag for Observable Counters by @samin36 in #2478
- [EXPORTER] Rename populate_otel_scope to without_otel_scope by @timwoj in #2479
- [BUILD] Skip patch alias target by @owent in #2457
- [PROTO] Upgrade to opentelemetry-proto v1.1.0 by @marcalff in #2488
- [EXPORTER] Fix forward protocol encoding for ETW exporter by @ThomsonTan in #2473
- Bump actions/cache from 3 to 4 by @dependabot in #2491
- [EXAMPLES] Use logs API instead of logs bridge API in the example by @ThomsonTan in #2494
- [BUILD] Fix checks on __cplusplus under MSVC, do not assume /Zc by @bcsgh in #2493
- [BUILD] Add DLL build CI pipeline with CXX20 by @ThomsonTan in #2465
- [BUILD] Fix variable shadow by @owent in #2498
- [DOCUMENTATION] Add api reference documentation for logs by @S-Bohn in #2497
- [CI] Make cmake.c++20*.test actualy use C++20 and add cmake.c++23*.test by @bcsgh in #2496
- [BUILD] Alternative way of exporting symbols (generating .def file) by @meastp in #2476
- [BUILD] Fix multiple assignment operators for SpinLockMutex by @SaiHarshaK in #2501
- [BUILD] Clang-15 warning about
__has_trivial_destructor
by @marcalff in #2502 - [EXAMPLES] Improve readme of Metrics example by @ThomsonTan in #2510
- [SEMANTIC CONVENTIONS] Upgrade to version 1.24.0 by @marcalff in #2461
- [BUILD] Remove unnecessary usage/includes of nostd/type_traits by @bogdandrutu in #2509
- Bump peter-evans/create-or-update-comment from 3.1.0 to 4.0.0 by @dependabot in #2512
- Updated the recorded vcpkg submodule version by @ThomsonTan in #2513
- [API] Propagators: do not overwrite the active span with a default invalid span by @ecourreges-orange in #2511
- [DOC] Fixes CI markdown error MD055 - Table pipe style by @marcalff in #2517
- [BUILD] Better handling of OPENTELEMETRY_STL_VERSION under Bazel. by @bcsgh in #2503
- Bump codecov/codecov-action from 3 to 4 by @dependabot in #2519
- Fix attribute filtering for synchronous instruments. by @lalitb in #2472
- [EXPORTER] Async exporting for otlp grpc by @owent in #2407
- Don't invoke vcpkg from this repo with CMAKE_TOOLCHAIN_FILE set by @ThomsonTan in #2527
- Remove namespace using in ETW exporter which affects global namespace by @ThomsonTan in #2531
- [DOC] Fix calendar link by @marcalff in #2532
- [API] Propagation: fix for hex conversion to binary for odd hex strings by @karusher in #2533
- [RELEASE] opentelemetry-cpp version 1.14.0 by @ThomsonTan in #2537
Breaking Changes:
-
[REMOVAL] Remove option WITH_OTLP_HTTP_SSL_PREVIEW
#2435- CMake options
WITH_OTLP_HTTP_SSL_PREVIEW
and
WITH_OTLP_HTTP_SSL_TLS_PREVIEW
are removed. Building opentelemetry-cpp
without SSL support is no longer possible.
- CMake options
-
[PROTO] Upgrade to opentelemetry-proto v1.1.0
#2488- Class
opentelemetry::sdk::trace::Recordable
has a new virtual method,
SetTraceFlags()
. - This is an incompatible change for the SDK Recordable API and ABI.
- Applications configuring the SDK are not affected.
- Third parties providing SDK extensions are affected,
and must provide aSetTraceFlags()
implementation,
starting with opentelemetry-cpp 1.14.0.
- Class
New Contributors
- @timwoj made their first contribution in #2451
- @samin36 made their first contribution in #2478
- @bcsgh made their first contribution in #2493
- @S-Bohn made their first contribution in #2497
- @SaiHarshaK made their first contribution in #2501
- @ecourreges-orange made their first contribution in #2511
- @karusher made their first contribution in #2533
Full Changelog: v1.13.0...v1.14.0
v1.13.0 release
v1.13.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] Remove WITH_REMOVE_METER_PREVIEW, use WITH_ABI_VERSION_2 instead by @marcalff in #2370
- [SDK] Metrics ObservableRegistry Cleanup by @perhapsmaple in #2376
- [BUILD] Make WITH_OTLP_HTTP_SSL_PREVIEW mainstream by @marcalff in #2378
- [SDK] Creating DoubleUpDownCounter with no matching view by @lalitb in #2379
- [API] Add InstrumentationScope attributes in TracerProvider::GetTracer() by @marcalff in #2371
- Bump peter-evans/create-or-update-comment from 3.0.2 to 3.1.0 by @dependabot in #2381
- [BUILD] DLL export interface for Metrics by @perhapsmaple in #2344
- [BUILD] enum CanonicalCode names too generic... conflict with old C defines by @marcalff in #2385
- [BUILD] Fix cpack broken package version by @jafonso in #2386
- [API] Add a new AddLink() operation to Span by @marcalff in #2380
- [opentracing-shim] Add check for sampled context by @chusitoo in #2390
- [BUILD] Fix exported definitions when building DLL with STL by @perhapsmaple in #2387
- [BUILD] Add missing includes to runtime_context_test by @perhapsmaple in #2395
- [ADMIN] Add file .github/repository-settings.md by @marcalff in #2392
- [SDK] Fix GetLogger with empty library name by @ThomsonTan in #2398
- [TEST] Fix compiling problem and removed -DENABLE_TEST by @owent in #2401
- [BUILD] Check windows options are not passed to non-Windows build by @ThomsonTan in #2399
- [EXPORTER] Rework OTLP/HTTP and OTLP/GRPC exporter options by @marcalff in #2388
- Bump actions/github-script from 6 to 7 by @dependabot in #2403
- [Build] Update vcpkg to latest release by @ThomsonTan in #2412
- [SDK] Cardinality limits for metrics streams (Sync Instruments + Delta Temporality) by @lalitb in #2255
- [EXPORTER] Prometheus: Add unit to names, convert to word by @esigo in #2213
- [Metrics] Make context optional for histogram instruments in Metrics SDK by @ThomsonTan in #2416
- [BUILD] Fix references to trace namespace to be fully qualified by @bogdandrutu in #2422
- [BUILD] Bump third_party/googletest to same version as bazel by @bogdandrutu in #2421
- [BUILD] Remove defining NOMINMAX from api by @ThomsonTan in #2420
- [BUILD] 'uint8_t' not declared in this scope with gcc 13.2.1 by @Thomas-Barbier-1A in #2423
- [BUILD] Improve the handling of OPENTELEMETRY_HAVE_WORKING_REGEX. by @kylepl in #2430
- [SEMANTIC CONVENTIONS] Upgrade to semconv version 1.23.1 by @marcalff in #2428
- [BUILD] Use fully qualified references to trace/common namespace by @bogdandrutu in #2424
- [API] Create root span with active span by @lalitb in #2427
- [REMOVAL] Remove ZPAGES by @marcalff in #2433
- [RELEASE] Prepare release 1.13.0 by @marcalff in #2432
Important changes
-
[API] Add InstrumentationScope attributes in TracerProvider::GetTracer()
#2371- TracerProvider::GetTracer() now accepts InstrumentationScope attributes.
- Because this is an
ABI
breaking change, the fix is only available
with theCMake
optionWITH_ABI_VERSION_2=ON
. - When building with
CMake
optionWITH_ABI_VERSION_1=ON
(by default)
theABI
is unchanged, and the fix is not available.
-
[API] Add a new AddLink() operation to Span
#2380- New
API
Span::AddLink() adds a single link to a span. - New
API
Span::AddLinks() adds multiple links to a span. - Because this is an
ABI
breaking change, the fix is only available
with theCMake
optionWITH_ABI_VERSION_2=ON
. - When building with
CMake
optionWITH_ABI_VERSION_1=ON
(by default)
theABI
is unchanged, and the fix is not available.
- New
-
[BUILD] Make WITH_OTLP_HTTP_SSL_PREVIEW mainstream
#2378- The experimental
CMake
optionWITH_OTLP_HTTP_SSL_PREVIEW
is now promoted to stable. The default is changed toON
. - The experimental
CMake
optionWITH_OTLP_HTTP_SSL_TLS_PREVIEW
is now promoted to stable. The default is changed toON
. - These build options are scheduled to be removed by the next release,
building without SSL/TLS will no longer be possible.
- The experimental
-
[EXPORTER] Rework OTLP/HTTP and OTLP/GRPC exporter options
#2388OtlpGrpcMetricExporterOptions
used to honor_TRACES_
environment variables, instead of_METRICS_
environment variables.- The implementation of
OtlpGrpcMetricExporterOptions
is now fixed. - Please check configuration variables,
to make sure_METRICS_
variables are set as expected.
Breaking changes
-
[BUILD] Remove WITH_REMOVE_METER_PREVIEW, use WITH_ABI_VERSION_2 instead
#2370- The experimental
CMake
optionWITH_REMOVE_METER_PREVIEW
is removed,
use optionWITH_ABI_VERSION_2
instead.
- The experimental
-
[BUILD] enum CanonicalCode names too generic... conflict with old C defines
#2385- Header file
opentelemetry/trace/canonical_code.h
is unused,
and is now removed. - This header should not be included directly in an application.
If this is the case, please remove any remaining include directives.
- Header file
-
[BUILD] Fix exported definitions when building DLL with STL
#2387- The MeterSelector, MeterSelectorFactory, InstrumentSelector,
and InstrumentSelectorFactory APIs now use const std::string&
instead of nostd::string_view for name, version and schema to
maintain a single export definition for DLL.
- The MeterSelector, MeterSelectorFactory, InstrumentSelector,
-
[EXPORTER] Rework OTLP/HTTP and OTLP/GRPC exporter options
#2388OtlpGrpcLogRecordExporter
incorrectly usedOtlpGrpcExporterOptions
,
which are options for traces and not logs.- This created a bug: the
OtlpGrpcLogRecordExporter
honors_TRACES_
environment variables, instead of_LOGS_
environment variables. OtlpGrpcLogRecordExporter
is changed to use
OtlpGrpcLogRecordExporterOptions
instead, fixing the bug.- User code that initializes the SDK with a GRPC Log exporter,
and uses exporter options, should adjust to replace
OtlpGrpcExporterOptions
withOtlpGrpcLogRecordExporterOptions
. - Please check configuration variables,
to make sure_LOGS_
variables are set as expected.
-
[REMOVAL] Remove ZPAGES
#2433- As announced in release 1.12.0,
the deprecated ZPAGES exporter is now removed.
- As announced in release 1.12.0,
New Contributors
- @perhapsmaple made their first contribution in #2376
- @jafonso made their first contribution in #2386
- @Thomas-Barbier-1A made their first contribution in #2423
Full Changelog: v1.12.0...v1.13.0
v1.12.0 release
v1.12.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] Support
pkg-config
by @dbolduc in #2269 - [CI] Do not automatically close stale issues by @marcalff in #2277
- [CI] Benchmark workflow fails, C++14 required to build grpc by @marcalff in #2278
- [SDK] Increase metric name maximum length from 63 to 255 characters by @marcalff in #2284
- [SEMANTIC CONVENTION] Deprecated semconv (in the spec) not deprecated (in C++) by @marcalff in #2285
- [SDK] Remove unused member variables from SyncMetricStorage by @lalitb in #2294
- Bump actions/checkout from 3 to 4 by @dependabot in #2295
- [DEPRECATION] Deprecate ZPAGES by @marcalff in #2291
- Bump docker/setup-qemu-action from 2 to 3 by @dependabot in #2306
- Bump docker/build-push-action from 4 to 5 by @dependabot in #2308
- Bump docker/setup-buildx-action from 2 to 3 by @dependabot in #2307
- [API] Deliver ABI breaking changes by @marcalff in #2222
- [SDK] Allow metric instrument names to contain / characters by @marcalff in #2310
- Bump codecov/codecov-action from 3 to 4 by @dependabot in #2314
- Revert "Bump codecov/codecov-action from 3 to 4" by @marcalff in #2315
- [SDK] Fix Observable Counters/UpDownCounters by @lalitb in #2298
- [SDK] Add exemplar reservoir to async metric storage by @ThomsonTan in #2319
- [TEST] Fix lifetime issues in prometheus test utils by @punya in #2322
- [EXPORTER] Prometheus: Remove explicit timestamps from metric points by @punya in #2324
- [EXPORTER] Prometheus: Handle attribute key collisions from sanitation by @punya in #2326
- [EXPORTER] Prometheus cleanup, test with TranslateToPrometheus by @punya in #2329
- [SDK] Fix log message in Meter::RegisterSyncMetricStorage by @ThomsonTan in #2325
- [DOC] Simplify the project status section by @reyang in #2332
- [EXPORTER] Prometheus: Sanitize labels according to spec by @punya in #2330
- [SDK] Fix deadlock when shuting down http client by @owent in #2337
- [Exporter] Group spans by resource and instrumentation scope in OTLP export requests by @mbrobbel in #2335
- [BUILD] Need fine-grained HAVE_CPP_STDLIB by @marcalff in #2304
- [API] Add InstrumentationScope attributes in MeterProvider::GetMeter() by @marcalff in #2224
- [REMOVAL] Drop C++11 support by @marcalff in #2342
- [EXPORTER] prometheus: add otel_scope_name and otel_scope_version labels by @dashpole in #2293
- [EXPORTER] Export resource for prometheus by @owent in #2301
- [BUILD] error: read-only reference ‘value’ used as ‘asm’ output by @marcalff in #2354
- [BUILD] Build break with external CMake nlohman_json package by @marcalff in #2353
- [BUILD] Upgrade libcurl to version 8.4.0 by @marcalff in #2358
- [BUILD] Fix opentracing-shim when added in super project by @andremarianiello in #2356
- [BUILD] Fix protoc searching with non-imported protobuf::protoc target by @owent in #2362
- [BUILD] Support to use different cmake package CONFIG of dependencies. by @owent in #2263
- [SEMANTIC CONVENTION] Upgrade to semconv 1.22.0 by @marcalff in #2368
- [RELEASE] Prepare release 1.12.0 by @marcalff in #2359
Important changes
- [API] Add InstrumentationScope attributes in MeterProvider::GetMeter()
#2224- MeterProvider::GetMeter() now accepts InstrumentationScope attributes.
- Because this is an
ABI
breaking change, the fix is only available
with theCMake
optionWITH_ABI_VERSION_2=ON
. - When building with
CMake
optionWITH_ABI_VERSION_1=ON
(by default)
theABI
is unchanged, and the fix is not available.
Breaking changes
-
[BUILD] Need fine-grained HAVE_CPP_STDLIB
#2304- In
CMAKE
, the boolean optionWITH_STL
as changed to an option
that accepts the valuesOFF
,ON
,CXX11
,CXX14
,CXX17
,
CXX20
andCXX23
. - Applications makefiles that did not set WITH_STL need to use
WITH_STL=OFF
instead (this is the default). - Applications makefiles that did set WITH_STL need to use
WITH_STL=ON
instead, or may choose to pick a specific value. - In the
API
header files, the preprocessor symbolHAVE_CPP_STDLIB
is no longer used. - Applications that did set
HAVE_CPP_STDLIB
before, need to set
OPENTELEMETRY_STL_VERSION=<version>
instead, to build with a
specific STL version (2011, 2014, 2017, 2020, 2023). - The opentelemetry-cpp makefile no longer sets
CMAKE_CXX_STANDARD by itself.
Instead, the CMAKE_CXX_STANDARD and/or compiler options -stdc++ used
by the caller are honored. - Applications that set neither CMAKE_CXX_STANDARD nor -stdc++
options may need to provide a C++ standard in their makefiles.
- In
-
[REMOVAL] Drop C++11 support
#2342- Building with C++11 is no longer supported.
New Contributors
- @punya made their first contribution in #2322
- @dashpole made their first contribution in #2293
- @andremarianiello made their first contribution in #2356
Full Changelog: v1.11.0...v1.12.0