All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Increment the:
[BUILD] Remove WITH_ABSEIL #3318
[INSTALL] Add CMake components to the opentelemetry-cpp package #3320
[CI] Harden GitHub Actions #3338
[StepSecurity] Harden GibHub Actions, part 2 #3340
Bump github/codeql-action from 3.28.12 to 3.28.13 #3341
[DEVCONTAINER] expose cmake version setting as docker arg and environment variable #3347
[CI] disable bzip2 in conan builds #3352
[SEMANTIC CONVENTIONS] Upgrade semantic conventions to 1.32.0 #3351
Bump github/codeql-action from 3.28.13 to 3.28.15 #3353
[CMAKE] bump cmake minimum required version to 3.14 #3349
Bump codecov/codecov-action from 5.4.0 to 5.4.2 #3362
[DOC] Fix documentation tags in logger API #3371
[CI] fix artifacts download/upload #3369
[API] Add Enabled method to Tracer #3357
[BUILD] Fixes warnings of ciso646 in C++17 #3360
Bump github/codeql-action from 3.28.15 to 3.28.16 #3377
Bump step-security/harden-runner from 2.11.1 to 2.12.0 #3373
Bump docker/build-push-action from 6.15.0 to 6.16.0 #3382
Bump actions/download-artifact from 4.2.1 to 4.3.0 #3381
[CI] Harden Github actions - pinned-dependencies (part -1) #3380
[StepSecurity] ci: Harden GitHub Actions #3378
[SDK] Base2 exponential histogram aggregation #3346
[StepSecurity] ci: Harden GitHub Actions #3379
[BUILD] Fixes glibc++ 5 checking #3355
[TEST] Add stress test for histogram metric for multiple threads validation #3388
Bump github/codeql-action from 3.28.16 to 3.28.17 #3389
[SDK] Optimize PeriodicExportingMetricReader Thread Usage #3383
[Metrics SDK] Use nostd::function_ref in AttributesHashMap #3393
[SDK] support aggregation of identical instruments #3358
[BUILD] Fixes unused var #3397
[INSTALL] Unify cmake install functions and dynamically set component dependencies #3368
[BUILD] Upgrade nlohmann_json to 3.12.0 #3406
[BUILD] Upgrade opentelemetry-proto to 1.6.0 #3407
[CMAKE] add generated protobuf headers to the opentelemetry_proto target #3400
[MERGE] Fix accidental rollback of nlohmann-json submodule #3415
Bump fossas/fossa-action from 1.6.0 to 1.7.0 #3414
Bump docker/build-push-action from 6.16.0 to 6.17.0 #3420
Bump codecov/codecov-action from 5.4.2 to 5.4.3 #3419
[SEMANTIC CONVENTIONS] Upgrade semantic conventions to 1.33 #3416
[DOCS] update the INSTALL guide on cmake components #3422
Bump github/codeql-action from 3.28.17 to 3.28.18 #3423
[CMAKE] update cmake files in examples directory #3421
[SDK] Fix Base2ExponentialHistogramAggregation Merge with empty buckets #3425
[SDK] Fix MetricProducer interface #3413
[CMAKE] remove global include_directories usage and rely on target properties #3426
[BUILD] remove unused WITH_CURL build flag #3429
[SEMANTIC CONVENTIONS] Upgrade to semantic conventions 1.34.0 #3428
[EXPORTER] ostream log exporter, fix memory ownership issues #3417
[TEST] add all components to the cmake fetch content test #3433
[BUILD] Error out when building DLL without MSVC #3438
[BUILD] Add missing CMake keyword for target_link_libraries #3442
[CMAKE] Remove third-party version mismatch warning #3432
Bump docker/build-push-action from 6.17.0 to 6.18.0 #3446
[SEMANTIC CONVENTIONS] Fix comment style to preserve markup. #3444
[EXPORTER] support unix sockets in grpc client #3410
[BUILD] Propagate INTERFACE_COMPILE_DEFINITIONS from API through common_foo_library #3440
New Features:
[SDK] Base2 exponential histogram aggregation #3346
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.
[BUILD] Update opentelemetry-proto version #3254
[BUILD] Build break with CURL 7.29.0 #3255
[SEMANTIC CONVENTIONS] Upgrade to semantic conventions 1.30.0 #3258
[SDK] Add tracer scope configurator #3137
[DOC] Add document and example for sharing gRPC Client #3260
[SDK] Fix BatchLogRecordProcessor to instrument shutdown #3262
[SDK] Support OTEL_SDK_DISABLED environment variable #3245
[CI] OTLP in Windows builds #3263
[BUILD] Fixes compatibility of type_traits #3274
[BUILD] Fix compilation with Regex being disabled #3276
[EXPORTER] Support exporting event_name using OTLP Exporter #3277
[CI] Add FOSSA scanning workflow #3279
[BUILD] Adding typecast without whom c++latest build fails #3281
[ADMIN] Add FOSSA badges #3280
[BUILD] Fix compiling problems with abiv2 and MSVC #3284
[BUILD] Enable old behavior of CMP0092 #3269
[SDK] Add meter scope configurator #3268
[DEVCONTAINER] Support customization and run as non-root user #3270
[ETW] Add configuration to export 64-bit integer as timestamp #3286
[API] Deprecate event logger #3285
[BUILD] Add link directory to support curl 8.12 #3272
[API] Change the param-pack unpacking order to start from left to right #3296
[SDK] Implement spec: MetricFilter #3235
[SEMANTIC CONVENTIONS] Upgrade semantic conventions to 1.31.0 #3297
[SDK] Add logger scope configurator #3282
[EXAMPLE] fix buffer overrun in the gRPC sample project #3304
[CI] Bump fossas/fossa-action from 1.5.0 to 1.6.0 #3305
[TEST] fix segfault in singleton test with cmake on macos-latest #3316
[TEST] fix test failure with elasticsearch exporter on cxx20 #3308
[TEST] otlp grpc exporter retry test fix #3311
[SDK] Use OPENTELEMETRY_EXPORT and static local variables #3314
[BUILD] Fix elasticsearch exporter json compatibility #3313
[BUILD] Fix missing exported definition for OTLP file exporter and forceflush #3319
[BUILD] Remove gRPC header including in OtlpGrpcClientFactory #3321
[ADMIN] Add Pranav Sharma in cpp-approvers #3323
[DEVCONTAINER] fix grpc install #3325
[ADMIN] Add dbarker to approvers #3331
[CI] Upgrade CI to ubuntu 22.04 #3330
[CI] Add ossf-scorecard scanning workflow #3332
[CI] pin cmake in ci and devcontainer #3336
[METRICS SDK] Fix hash collision in MetricAttributes #3322
Important changes:
[SDK] Support OTEL_SDK_DISABLED environment variable #3245
The SDK now exposes the following new methods:
opentelemetry::sdk::trace::Provider::SetTracerProvider()
opentelemetry::sdk::metrics::Provider::SetMeterProvider()
opentelemetry::sdk::logs::Provider::SetLoggerProvider()
These methods do support the OTEL_SDK_DISABLED environment variable,
unlike the corresponding existing API Provider classes.
Applications are encouraged to migrate from the API to the SDK
Provider classes, to benefit from this feature.
All the example code has been updated to reflect the new usage.
[PROMETHEUS_EXPORTER] Fix default for emitting otel_scope attributes #3171
[Code health] Include what you use cleanup, part 5 #3140
[BUILD] Upgrade cmake #3167
[SHIM] Fix string_view mappings between OT and OTel #3181
[EXPORTER] Refactor ElasticSearchRecordable #3164
[SEMANTIC CONVENTIONS] Upgrade to semantic conventions 1.29.0 #3182
[BUILD] Fix cross-compilation with protoc #3186
[Code health] Perform cppcheck cleanup #3150
[EXPORTER] add instrumentation scope attributes to otlp proto messages for traces and metrics #3185
[SDK] Tracer provider shutdown blocks in-definitively #3191
[SEMANTIC CONVENTIONS] Upgrade to weaver 0.11.0 #3194
[DOC] Update existing maintaining dependencies doc #3195
[TEST] Change iscalled and gotresponse to use atomic #3204
[SEMANTIC CONVENTIONS] update links to openmetrics to reference the v1.0.0 release #3205
[CI] Fix CI on ubuntu-latest #3207
[BUILD] Build break using protoc 3.14 #3211
[TEST] Build the singleton test on windows #3183
[BUILD] Add cxx feature detections #3203
[SDK] Do not frequently create and destroy http client threads #3198
[EXPORTER] Optimize OTLP HTTP compression #3178
[SDK] Fix include instrumentation scope attributes in equal method #3214
Upgrade to opentelemetry-proto 1.5.0 #3210
[TEST] Added support for SELINUX in functional tests #3212
[EDITORIAL] fix changelog entry for PR 3185 #3217
[TEST] Functional tests for OTLP/gRPC with mutual TLS #3227
[SEMCONV] Metrics are incorrectly prefixed with 'metric' #3228
[BUILD] Add OTLP/file exporter for dll and examples #3231
[Code Health] Include what you use, part 6 #3216
[CI] Spurious test failures #3233
[BUILD] Fix error ‘uint8_t’ does not name a type with gcc-15 #3240
[EXPORTER] fix throw in OtlpGrpcMetricExporter with shared grpc client #3243
[SDK] Better control of threads executed by opentelemetry-cpp #3175
[Code Health] Include what you use, part 7 #3238
[SDK] Fix lifetime of GlobalLogHandler #3221
[MAINTAINER] Add devcontainer #3123
[SDK] enable deriving from ResourceDetector to create a Resource #3247
[EXPORTER] Support handling retry-able errors for OTLP/HTTP #3223
[CI] Add GRPC in maintainer CI #3248
[EXPORTER] Support handling retry-able errors for OTLP/gRPC #3219
[SDK] Optimize Metric Processing for Single Collector with Delta Temporality #3236
New features:
[SDK] Better control of threads executed by opentelemetry-cpp #3175
This feature provides a way for applications, when configuring the SDK and exporters, to participate in the execution path of internal opentelemetry-cpp threads.
The opentelemetry-cpp library provides the following:
a new ThreadInstrumentation interface,
new runtime options structures, to optionally configure the SDK:
new runtime options structures, to optionally configure the OTLP HTTP exporters:
new ThreadInstrumentation parameters, to optionally configure the CURL HttpClient
new runtime options structures, to optionally configure the OTLP FILE exporters:
new runtime options structure, to optionally configure the OTLP FILE client:
Using the optional runtime options structures, an application can subclass the ThreadInstrumentation interface, and be notified of specific events of interest during the execution of an internal opentelemetry-cpp thread.
This allows an application to call, for example:
pthread_setaffinity_np(), for better performances,
setns(), to control the network namespace used by HTTP CURL connections
pthread_setname_np(), for better observability from the operating system
many more specific apis, as needed
See the documentation for ThreadInstrumentation for details.
A new example program, example_otlp_instrumented_http, shows how to use the feature, and add application logic in the thread execution code path.
Note that this feature is experimental, protected by a WITH_THREAD_INSTRUMENTATION_PREVIEW flag in CMake. Various runtime options structures, as well as the thread instrumentation interface, may change without notice before this feature is declared stable.
[EXPORTER] Support handling retry-able errors for OTLP/HTTP #3223
[EXPORTER] Support handling retry-able errors for OTLP/gRPC #3219
[EXPORTER] Fix crash in ElasticsearchLogRecordExporter #3082
[BUILD] Avoid buggy warning with gcc <= 8 #3087
[API] Jaeger Propagator should not be deprecated #3086
Update bzlmod version #3093
[BUILD] Remove std::make_unique #3098
[BUILD] Fix compiling problems for gcc 4.8 #3100
[TEST] Fix linking order and gmock linking #3106
[EXPORTER] Add config options to prometheus exporter #3104
[BUILD] Add a CMake option to disable shared libs #3095
[EXPORTER] Remove out of date ETW exporter doc #3103
[EXPORTER] Add logging for async gRPC errors #3108
[BUILD] Remove aligned_storage from nostd #3112
[EXPORTER] Elastic Search exporter follow ECS guidelines #3107
[INSTALL] Resolve dependencies in opentelemetry-cpp-config.cmake #3094
[API] Add synchronous gauge #3029
[BUILD] allow building with -DWITH_OTLP_HTTP_COMPRESSION=OFF without zlib #3120
[CI] Comment the arm64 CI #3125
[API] Comply with W3C Trace Context #3115
[EXPORTER] bump prometheus to v1.3.0 #3122
[EXPORTER] Log SSL Connection Information #3113
[BUILD] Improve how to handle yield() in ARM #3129
[BUILD] Fix -Wmissing-template-arg-list-after-template-kw warning #3133
[EXPORTER]: Elasticsearch exporter put log resource in root instead of under 'resources' #3131
[TEST] Rename w3c_tracecontext_test to w3c_tracecontext_http_test_server #3132
[BUILD] Patches for building on AIX #3127
[SEMANTIC CONVENTIONS] Migration to weaver #3105
[SEMANTIC CONVENTIONS] Upgrade to semantic conventions 1.28.0 #3139
[EXPORTER] handling of invalid ports in UrlParser #3142
[CI] speed up clang-tidy workflow #3148
[EXPORTER] Allow to share gRPC clients between OTLP exporters #3041
Bump codecov/codecov-action from 4 to 5 #3143
[CI] Add cppcheck in the build #3151
[BUILD] Fix error message #3152
[EXPORTER] fix clang-tidy warnings in UrlParser #3146
[EXPORTER] Upgrade to opentelemetry-proto 1.4.0 #3157
[TEST] refactor UrlParser tests to use value-paramterized tests #3153
[TEST] add a test for ElasticSearchRecordable #3154
[BUILD] Fix missing dependency on protoc compiler #3159
[bazel] Update prometheus-cpp in MODULE.bazel #3162
[bazel] Enable --incompatible_disallow_empty_glob #2642
[INSTALL] Fix cmake/opentelemetry-cpp-config.cmake.in #3165
[BUILD] Do not set OTELCPP_PROTO_PATH in the CMake cache #3160
[BUILD] Fix build for esp32 #3155
[bazel] Update opentelemetry-proto in MODULE.bazel #3163
Important changes:
[API] Jaeger Propagator should not be deprecated #3086
[EXPORTER] Change log resources location for ElasticsearchLogRecordExporter #3119
root/resources to root[SEMANTIC CONVENTIONS] Migration to weaver #3105
semantic_convention.h header files are deprecated,
replaced by semconv/xxx_attributes.h header files,
for each xxx semantic attribute group.Deprecations:
[CI] Add a clang-tidy build #3001
[BUILD] Upgrade to opentelemetry-proto 1.3.2 #2991
[REMOVAL] Remove build option WITH_DEPRECATED_SDK_FACTORY
#2717
[EXPORTER] ForceFlush before canceling the running requests on shutdown #2727
[SDK] Fix crash in PeriodicExportingMetricReader #2983
[SDK] Fix memory leak in TlsRandomNumberGenerator() constructor #2661
[EXPORTER] Ignore exception when create thread in OTLP file exporter #3012
[BUILD] Update the version in MODULE.bazel #3015
[BUILD] Fix build without vcpkg on Windows when gRPC is disabled #3016
[BUILD] Add abi_version_no bazel flag #3020
[Code health] Expand iwyu coverage to include unit tests #3022
[BUILD] Version opentelemetry_proto/proto_grpc shared libraries #2992
[SEMANTIC CONVENTIONS] Upgrade semantic conventions to 1.27.0 #3023
[SDK] Support empty histogram buckets #3027
[TEST] Fix sync problems in OTLP File exporter tests #3031
[SDK] PeriodicExportingMetricReader: future is never set, blocks until timeout #3030
[Code Health] Clang Tidy cleanup, Part 2 #3038
[Code Health] include-what-you-use cleanup, part 3 #3004
[SDK] Fix overflow in timeout logic #3046
[TEST] Add missing tests to Bazel build #3045
[TEST] update collector tests with debug exporter #3050
[EXAMPLE] update collector example with debug exporter #3049
[TEST] update references to logging exporter #3053
[EXAMPLE] Clean the tracer initialization in OStream example #3051
[EXPORTER] Fix the format of SpanLink for ETW #3054
[EXPORTER] Add in-memory metric exporter #3043
[Code Health] include-what-you-use cleanup, part 4 #3040
[BUILD] add loongarch info #3052
[CI] Update otel-collector version #3067
[SDK] Update MetricProducer interface to match spec #3044
[EXPORTER] Fix URL in ES exporter, fix ipv6 supporting for http client #3081
[EXPORTER] Add HttpHeaders in ElasticsearchLogRecordExporter #3083
Breaking changes:
[REMOVAL] Remove build option WITH_DEPRECATED_SDK_FACTORY
#2717
WITH_DEPRECATED_SDK_FACTORY was temporary,
and to be removed by the next release.Code configuring the SDK must be adjusted, as previously described:
[API/SDK] Provider cleanup #2664
Before this fix:
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.
[BUILD] Add bazel missing BUILD file #2720
[SDK] Added reserve for spans array in BatchSpanProcessor. #2724
[DOC] Update "Using triplets" section in building-with-vcpkg documentation. #2726
[DOC] Remove comment for unused LoggerProvider initialization params #2972
[SECURITY] Remove OTLP HTTP support for TLS 1.0 and TLS 1.1, require TLS 1.2 or better #2722
[TEST] Fix opentelemetry-collector bind address #2989
[EXPORTER] Fix references in AttributeValueVisitor #2985
[Code health] include-what-you-use cleanup, part 2 #2704
[Code Health] clang-tidy cleanup, part 1 #2990
[CI] Build failures with ABSEIL 20240116 and CMAKE 3.30 #3002
[CI] Enable bzlmod #2995
[Metrics SDK] Fix hash calculation for nostd::string #2999
Breaking changes:
https,
the connection will require TLS 1.2 by default,
unless min_TLS is set to 1.3http connections (insecure) are not affected.Important changes:
opentelemetry::trace::Tracer exposed methods such
as ForceFlush(), ForceFlushWithMicroseconds(), Close()
and CloseWithMicroseconds().OPENTELEMETRY_ABI_VERSION_NO 1, nothing is changed,
because removing this code would break the ABI.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.Breaking changes:
Notes on experimental features:
MeterProvider::SetExemplar() which accepts en
ExemplarFilterType enumeration with kAlwaysOff, kAlwaysOn and
kTraceBased.OTEL_EXPORTER_OTLP_HEADERS
#2579Important changes:
OtlpHttpExporterOptions and OtlpGrpcExporterOptions, a new
field called compression has been introduced. This field can be set
to "gzip” to enable gzip compression.WITH_OTLP_HTTP_COMPRESSION is introduced to enable
gzip compression support for the OTLP HTTP Exporter and includes a
dependency on zlib.CI in github no longer install a different version of cmake.cmake provided by the platform.ci/setup_cmake.sh was renamed
to ci/setup_googletest.sh, for clarity, now that this script
only installs googletest.Important changes:
is_monotonic flag for Observable Counters
#2478__has_trivial_destructor
#2502CleanUpString because some implementations of
STL may crash.
#2464Important changes:
Breaking changes:
[REMOVAL] Remove option WITH_OTLP_HTTP_SSL_PREVIEW #2435
WITH_OTLP_HTTP_SSL_PREVIEW and
WITH_OTLP_HTTP_SSL_TLS_PREVIEW are removed. Building opentelemetry-cpp
without SSL support is no longer possible.[PROTO] Upgrade to opentelemetry-proto v1.1.0 #2488
opentelemetry::sdk::trace::Recordable has a new virtual method,
SetTraceFlags().SetTraceFlags() implementation,
starting with opentelemetry-cpp 1.14.0.Important changes:
[API] Add InstrumentationScope attributes in TracerProvider::GetTracer() #2371
ABI breaking change, the fix is only available
with the CMake option WITH_ABI_VERSION_2=ON.CMake option WITH_ABI_VERSION_1=ON (by default)
the ABI is unchanged, and the fix is not available.[API] Add a new AddLink() operation to Span #2380
API Span::AddLink() adds a single link to a span.API Span::AddLinks() adds multiple links to a span.ABI breaking change, the fix is only available
with the CMake option WITH_ABI_VERSION_2=ON.CMake option WITH_ABI_VERSION_1=ON (by default)
the ABI is unchanged, and the fix is not available.[BUILD] Make WITH_OTLP_HTTP_SSL_PREVIEW mainstream #2378
CMake option WITH_OTLP_HTTP_SSL_PREVIEW
is now promoted to stable. The default is changed to ON.CMake option WITH_OTLP_HTTP_SSL_TLS_PREVIEW
is now promoted to stable. The default is changed to ON.[EXPORTER] Rework OTLP/HTTP and OTLP/GRPC exporter options #2388
OtlpGrpcMetricExporterOptions used to honor _TRACES_
environment variables, instead of _METRICS_ environment variables.OtlpGrpcMetricExporterOptions is now fixed._METRICS_ variables are set as expected.Breaking changes:
[BUILD] Remove WITH_REMOVE_METER_PREVIEW, use WITH_ABI_VERSION_2 instead #2370
CMake option WITH_REMOVE_METER_PREVIEW is removed,
use option WITH_ABI_VERSION_2 instead.[BUILD] enum CanonicalCode names too generic... conflict with old C defines #2385
opentelemetry/trace/canonical_code.h is unused,
and is now removed.[BUILD] Fix exported definitions when building DLL with STL #2387
[EXPORTER] Rework OTLP/HTTP and OTLP/GRPC exporter options #2388
OtlpGrpcLogRecordExporter incorrectly used OtlpGrpcExporterOptions,
which are options for traces and not logs.OtlpGrpcLogRecordExporter honors _TRACES_
environment variables, instead of _LOGS_ environment variables.OtlpGrpcLogRecordExporter is changed to use
OtlpGrpcLogRecordExporterOptions instead, fixing the bug.OtlpGrpcExporterOptions with OtlpGrpcLogRecordExporterOptions._LOGS_ variables are set as expected.[REMOVAL] Remove ZPAGES #2433
pkg-config
#2269Important changes:
ABI breaking change, the fix is only available
with the CMake option WITH_ABI_VERSION_2=ON.CMake option WITH_ABI_VERSION_1=ON (by default)
the ABI is unchanged, and the fix is not available.Breaking changes:
[BUILD] Need fine-grained HAVE_CPP_STDLIB #2304
CMAKE, the boolean option WITH_STL as changed to an option
that accepts the values OFF, ON, CXX11, CXX14, CXX17,
CXX20 and CXX23.WITH_STL=OFF instead (this is the default).WITH_STL=ON instead, or may choose to pick a specific value.API header files, the preprocessor symbol HAVE_CPP_STDLIB
is no longer used.HAVE_CPP_STDLIB before, need to set
OPENTELEMETRY_STL_VERSION=<version> instead, to build with a
specific STL version (2011, 2014, 2017, 2020, 2023).[REMOVAL] Drop C++11 support #2342
Deprecations:
opentelemetry_proto_grpc against gRPC lib (only
if gRPC library is shared)
#2268Breaking changes:
View constructor and ViewFactory::Create method now takes a
unit criteria as optional third argument.[REMOVAL] Remove the jaeger exporter #2031
[CI] Add a C++11 build #2152
[CI] Add Include what you use #2214
[CI] opentelemetry-cpp project CI #2071
[CI] Do not tag pull_request with the "need-triage" label #2228
[BUILD] Fixing CMake to build GTest on Windows #1887
[BUILD] Remove option WITH_OTLP #2161
[BUILD] Link to opentelemetry_logs even without OTLP #2177
[BUILD] Avoid dependency on protobuf from the OTLP HTTP metrics exporter header #2179
[BUILD] Add ctime header to metrics_exporter.cc #2187
[BUILD] Fix the exported symbol name for 32-bit win32 DLL #2190
[BUILD] Upgrade to opentelemetry-proto 0.20.0 #2195
[BUILD] SDK Header files cleanup, use forward declarations #2182
[BUILD] Enable building otel-cpp extensions from main repo #1937
[BUILD] Fix if check on environment variable and add CMake variable #2207
[BUILD] Add OPENTELEMETRY_CPP_FOUND into cmake CONFIG file
#2215
[BUILD] Upgrade opentelemetry-proto to 1.0.0 #2216
[BUILD] Include nostd/string_view which is used in severity.h #2219
[TEST] Expand api singleton test to cover explicit dlopen() #2164
[API] Remove include_trace_context #2194
[API] Remove Meters #2205
[SDK] Add AdaptingCircularBufferCounter for exponential histograms #2158
[SDK] Add base2 exponential histogram indexer #2173
[SDK] Simplify SDK version #2180
[SDK] Add benchmark for base2 exponential histogram indexer #2181
[SDK] Provide builders to avoid exposing Metrics SDK internals #2189
[SDK] MeterProvider should own MeterContext, not share it #2218
[SDK] TracerProvider should own TracerContext, not share it #2221
[EXPORTER] Change OTLP Json field name to camelCase #2162
[EXPORTER] Support empty arrays in OtlpRecordable attributes
#2166
[EXPORTER] set is_monotonic only for instrument type kCounter #2171
[EXPORTER] Fixed HTTP CURL for 32bits platforms #2178
[EXPORTER] Fix OTLP HTTP exporting in sync mode #2193
[EXPORTER] Prometheus exporter sanitizes invalid characters #1934
[EXPORTER] Prometheus: Error on ingesting samples with different value but same timestamp #2200
[EXPORTER] OTLP GRPC mTLS support #2120
[DOC] Small fix for Histogram documentation #2156
[DOC] Move Reiley Yang to emeritus #2198
Important changes:
WITH_REMOVE_METER_PREVIEW was added.Breaking changes:
[REMOVAL] Remove the jaeger exporter #2031
WITH_JAEGER option has been removedWITH_JAEGER from user scripts and makefiles.[SDK] MeterProvider should own MeterContext, not share it #2218
MeterProvider constructor now takes a unique_ptr on
MeterContext, instead of a shared_ptr.[SDK] TracerProvider should own TracerContext, not share it #2221
TracerProvider constructor now takes a unique_ptr on
TracerContext, instead of a shared_ptr.LoggerProvider constructor now takes a unique_ptr on
LoggerContext, instead of a shared_ptr.[DEPRECATION] Drop C++11 support #2146
[CI] Upgrade Bazel and Bazelisk version #2118
[CI] Upgrade Google Benchmark version from 1.6.0 to 1.7.1 #2116
[CI] Upgrade Nlohmann JSON library version from 3.10.5 to 3.11.2 #2115
[BUILD] Missed include #2143
[BUILD] Add opentelemetry_proto_grpc and allow build shared opentelemetry_proto and opentelemetry_proto_grpc on non-Windows platform. #2097
[BUILD] Warning cleanup, single character wrapped by std::string #2137
[BUILD] Add missing target dependencies #2128
[BUILD] Fix if JSON library already added another CMake target #2126
[BUILD] shared libraries with version suffix, along with the symbolic link #2109
[BUILD] Show warning message if WITH_OTLP is enabled #2112
[BUILD] Add missing STL header. #2107
[BUILD] Build break with old curl, macro CURL_VERSION_BITS unknown #2102
[BUILD] Transitive dependency issue with the otlp http exporter #2154
[TEST] Add unit test for log body implicit conversions. #2136
[TEST] Add event id to logger benchmark method #2133
[API] Fix inclusion header files and use forward declaration #2124
[API] Add user facing Logging API and Benchmarks #2094
[SDK] SDK support for the new OTel log #2123
[EXPORTER] Fixed HTTP session cleanup on shutdown #2111
[EXPORTER] Delegate all API calls of gRPC into opentelemetry_exporter_otlp_grpc_client, and make it contains all symbols needed. #2005
[DOC] Add Marc as maintainer. #2027
Breaking changes:
opentelemetry-cpp::proto no longer contains generated gRPC codes
, and all components that depend on these gRPC codes should also link to
opentelemetry-cpp::proto_grpc.Deprecations:
[CI] Remove separate run of metrics ostream example #2030
[BUILD] Include directory path added for Zipkin exporter example #2069
[BUILD] Ignore more warning in generated protobuf files #2067
[BUILD] Clean warnings in ETW exporters #2063
[BUILD] Fix default value of OPENTELEMETRY_INSTALL_default #2062
[SEMANTIC CONVENTIONS] Upgrade to version 1.20.0 #2088
[SEMANTIC CONVENTIONS] Upgrade to version 1.19.0 #2017
[API] Checking indices before dereference in string utils #2040
[API] Export factory class of log provider #2041
[SDK] Implement Forceflush for Periodic Metric Reader #2064
[SDK] Add ForceFlush for all LogRecordExporter and SpanExporter
#2000
[SDK] Fix schema URL precedence bug in Resource::Merge
#2036
[SDK] Use sdk_start_ts for MetricData start_ts for instruments having cumulative aggregation temporality. #2086
[EXPORTER] Add OTLP HTTP SSL support #1793
[EXPORTER] GRPC endpoint scheme should take precedence over OTEL_EXPORTER_OTLP_TRACES_INSECURE #2060
[EXAMPLES] Remove unused 'alerting' section from prometheus.yml in examples #2055
[EXAMPLES] Fix view names in Prometheus example #2034
[DOC] Fix some docs typo #2057
[DOC] Update OpenTracing shim README.md #2028
[DOC] INSTALL doc clarifications #2078
Important changes:
ForceFlush for all LogRecordExporter and SpanExporter
#2000
LogRecordExporter and SpanExporter add a new virtual function
ForceFlush, and if users implement any customized LogRecordExporter and
SpanExporter, they should also implement this function.
There should be no impact if users only use factory to create exporters.Deprecations:
OPENTELEMETRY_INSTALL to allow user to skip install targets.
#2022include_trace_context and EventLogger #1884Deprecations:
Important changes:
WITH_OTLP_HTTPWITH_OTLP_HTTP was unpredictable,
sometime set to ON and sometime set to OFF by default,
depending on whether a CURL package was found or not.
The option WITH_OTLP_HTTP was sometime not displayed in the ccmake
UI, making it impossible to even discover there is an option of that name.WITH_OTLP_HTTP is always OFF by
default. WITH_OTLP_HTTP MUST be set to ON explicitly to build the
OTLP HTTP exporter. The option is always visible in the ccmake UI.BUILD_W3CTRACECONTEXT_TESTWITH_EXAMPLES_HTTP is used to
build the HTTP client/server examples.Deprecation notes:
[Deprecation] Deprecate experimental semantic conventions #1744
The file
api/include/opentelemetry/trace/experimental_semantic_conventions.h
is deprecated, and will be removed in a future release.
Use file
api/include/opentelemetry/trace/semantic_conventions.h
instead.
The file
sdk/include/opentelemetry/sdk/resource/experimental_semantic_conventions.h
is deprecated, and will be removed in a future release.
Use file
sdk/include/opentelemetry/sdk/resource/semantic_conventions.h
instead.
The function, declared in the global namespace
uint32_t hashCode(const char *str, uint32_t h = 0)
is deprecated, and will be removed in a future release.
No replacement will be provided.
Note that function opentelemetry::utils::hashCode,
declared in the ETW exporter, is not affected by this deprecation.
Breaking changes:
SemanticConventions::SERVICE_NAME,
to camel case, like SemanticConventions::kServiceName.
This is necessary to avoid collisions with macros in general,
which breaks the build on some platforms.Notes:
Metrics API/SDK GA release includes PRs #1686, #1701, and #1707 with breaking changes in the Metrics API and SDK.
OtlpGrpcMetricExporterFactory and OtlpHttpMetricExporterFactory.
#1606OtlpHttpMetricExporterOptions::aggregation_temporality.
#1601LoggerContext::Shutdown and tsan of OtlpHttpClient #1592Notes:
While OpenTelemetry semantic convention is still in experimental state, PR #1624 upgraded it from 1.12.0 to 1.13.0 which MAY break the instrumentation library. Please update the semantic convention in instrumentation library is needed.
http://abc.com/xxx@xxx/a/b
#1511InstrumentationLibrary to InstrumentationScope #1507--config Debug when installing. #1480curl::HttpClient use curl_multi_handle instead of creating a thread
for every request and it's able to reuse connections now. (#1317)opentelemetry_ext with opentelemetry_api (#1336)Notes:
While opentelemetry-cpp Logs are still in experimental stage,
#1383 updated
opentelemetry-proto to 0.17.0, which includes some breaking change in the
protocol, like
this. This
makes name parameter for our log API unnecessary. However, this parameter is
marked deprecated instead of being removed in this release, and it will be
removed in future release.
opentelemetry_api. (#1314)http_client_curl to opentelemetry_http_client_curl (#1301)Notes:
#1301 added
opentelemetry_ as prefix to http_client_curl library for resolving potential
naming conflict, this could break existing cmake build if http_client_curl is
listed as explicit dependency in user's cmake file.
Notes on experimental features:
#1149 and
#1154 from
above CHANGELOG introduced API changes which are not backward compatible with
previous logs, please update API package to this release if
ENABLE_LOGS_PREVIEW is turned on (it is turned off by default).
jaeger::TUDPTransport::write crash when getaddrinfo
returns error
(#1116)OtlpGrpcExporter and
OtlpHttpExporter
(#983)GetEnvironmentVariable and remove unused variable under NO_GETENV
(#976)<PackageName>_ROOT
(#975)BREAKING CHANGE Fix default HTTP port for OTLP HTTP Exporter
(#939)BREAKING CHANGE Rename Recordable to JaegerRecordable in Jaeger
exporter
(#919)BREAKING CHANGE Rename Jaeger exporter target
(#918)BREAKING CHANGE - Add OTLP/HTTP+JSON Protocol exporter; Rename
OtlpExporter to OtlpGrpcExporter
(#810)opentelemetry-api and
opentelemetry-sdk targets if metrics feature-flag is disabled
(#806)const char * as acceptable data type for attributes and
resources
(#771)BREAKING CHANGE - Tracer::WithActiveSpan() to return Scope object
intead of unique_ptr
(#788)ForceFlush to TracerProvider.
(#588).