Skip to content

Releases: open-telemetry/opentelemetry-cpp

v1.16.1 release

17 Jul 20:12
baecbb9
Compare
Choose a tag to compare

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.

New Contributors

Full Changelog: v1.16.0...v1.16.1

v1.16.0 release

21 Jun 17:24
fd57e7a
Compare
Choose a tag to compare

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 of std::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
        as ForceFlush(), ForceFlushWithMicroseconds(), Close()
        and CloseWithMicroseconds().
      • 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.
    • 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 all cases, instrumenting an application should not
      invoke flush or close on a tracer, do not use these methods.

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.
    • 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.

Notes on experimental features

  • #2372
    introduced MeterProvider::SetExemplar() which accepts an
    ExemplarFilterType enumeration with kAlwaysOff, kAlwaysOn and
    kTraceBased.

New Contributors

Full Changelog: v1.15.0...v1.16.0

v1.15.0 release

21 Apr 20:17
054b0dc
Compare
Choose a tag to compare

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 and OtlpGrpcExporterOptions, 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.
  • [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 of cmake.
    • It now always use the cmake provided by the platform.
    • As part of this change, the script ci/setup_cmake.sh was renamed
      to ci/setup_googletest.sh, for clarity, now that this script
      only installs googletest.
  • [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.
    • 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.

New Contributors

Full Changelog: v1.14.2...v1.15.0

v1.14.2 release

27 Feb 20:47
a799f4a
Compare
Choose a tag to compare

Release of core packages

  • opentelemetry-api
  • opentelemetry-sdk

What's Changed

  • [SDK] Fix observable attributes drop #2557

v1.14.1 release

23 Feb 21:54
563094b
Compare
Choose a tag to compare

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.

New Contributors

Full Changelog: v1.14.0...v1.14.1

v1.14.0 release

17 Feb 17:34
e1119ed
Compare
Choose a tag to compare

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.
  • [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 a SetTraceFlags() implementation,
      starting with opentelemetry-cpp 1.14.0.

New Contributors

Full Changelog: v1.13.0...v1.14.0

v1.13.0 release

06 Dec 20:12
4bd64c9
Compare
Choose a tag to compare

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 the CMake option WITH_ABI_VERSION_2=ON.
    • When building with 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

    • 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 the CMake option WITH_ABI_VERSION_2=ON.
    • When building with 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

    • The experimental CMake option WITH_OTLP_HTTP_SSL_PREVIEW
      is now promoted to stable. The default is changed to ON.
    • The experimental CMake option WITH_OTLP_HTTP_SSL_TLS_PREVIEW
      is now promoted to stable. The default is changed to ON.
    • These build options are scheduled to be removed by the next release,
      building without SSL/TLS will no longer be possible.
  • [EXPORTER] Rework OTLP/HTTP and OTLP/GRPC exporter options
    #2388

    • OtlpGrpcMetricExporterOptions 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 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

    • 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.
  • [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.
  • [EXPORTER] Rework OTLP/HTTP and OTLP/GRPC exporter options
    #2388

    • OtlpGrpcLogRecordExporter incorrectly used OtlpGrpcExporterOptions,
      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 with OtlpGrpcLogRecordExporterOptions.
    • 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.

New Contributors

Full Changelog: v1.12.0...v1.13.0

v1.12.0 release

16 Oct 08:43
46e20a4
Compare
Choose a tag to compare

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 the CMake option WITH_ABI_VERSION_2=ON.
    • When building with 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

    • In CMAKE, the boolean option WITH_STL as changed to an option
      that accepts the values OFF, ON, CXX11, CXX14, CXX17,
      CXX20 and CXX23.
    • 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 symbol HAVE_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.
  • [REMOVAL] Drop C++11 support
    #2342

    • Building with C++11 is no longer supported.

New Contributors

Full Changelog: v1.11.0...v1.12.0

OpenTelemetry C++ v1.11.0

22 Aug 22:12
11d5d9e
Compare
Choose a tag to compare

v1.11.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

Notes

  • Logs are declared as stable in this release.

New Contributors

Full Changelog: v1.10.0...v1.11.0

OpenTelemetry C++ v1.10.0

11 Jul 19:58
ca8c234
Compare
Choose a tag to compare

v1.10.0 release

Release of core packages

  • opentelemetry-api
  • opentelemetry-sdk

and exporter packages:

  • opentelemetry-exporter-otlp (gRPC + HTTP/JSON)
  • opentelemetry-exporter-prometheus

REMOVAL

  • [REMOVAL] Remove the jaeger exporter
    #2031

CI

  • [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

  • [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

  • [TEST] Expand api singleton test to cover explicit dlopen()
    #2164

API

  • [API] Remove include_trace_context
    #2194

  • [API] Remove Meters
    #2205

SDK

  • [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

  • [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

  • [DOC] Small fix for Histogram documentation
    #2156

  • [DOC] Move Reiley Yang to emeritus
    #2198

Important changes

  • [API] Remove Meters
    #2205
    • The CMake option WITH_REMOVE_METER_PREVIEW was added.
    • This option is experimental, and may change in the future.
    • Enabling it is an ABI breaking change.

Breaking changes

  • [REMOVAL] Remove the jaeger exporter
    #2031

    • The CMake WITH_JAEGER option has been removed
    • Please remove usage of WITH_JAEGER from user scripts and makefiles.
  • [SDK] MeterProvider should own MeterContext, not share it
    #2218

    • The MeterProvider constructor now takes a unique_ptr on
      MeterContext, instead of a shared_ptr.
    • Please adjust SDK configuration code accordingly.
  • [SDK] TracerProvider should own TracerContext, not share it
    #2221

    • The TracerProvider constructor now takes a unique_ptr on
      TracerContext, instead of a shared_ptr.
    • The LoggerProvider constructor now takes a unique_ptr on
      LoggerContext, instead of a shared_ptr.
    • Please adjust SDK configuration code accordingly.

All Deprecations

  • C++11 support is to end, C++14 will be supported instead,
    see DEPRECATED for details.

New Contributors

Full Changelog: v1.9.1...v1.10.0