Skip to content

Releases: open-telemetry/opentelemetry-cpp

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

OpenTelemetry C++ v1.9.1

26 May 09:23
770fce3
Compare
Choose a tag to compare

v1.9.1 release

Release of core packages

  • opentelemetry-api
  • opentelemetry-sdk

and exporter packages:

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

NEW DEPRECATION

  • [DEPRECATION] Drop C++11 support
    #2146

CI

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

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

  • [TEST] Add unit test for log body implicit conversions.
    #2136
  • [TEST] Add event id to logger benchmark method
    #2133

API

  • [API] Fix inclusion header files and use forward declaration
    #2124
  • [API] Add user facing Logging API and Benchmarks
    #2094

SDK

  • [SDK] SDK support for the new OTel log
    #2123

EXPORTER

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

  • [DOC] Add Marc as maintainer.
    #2027

Breaking changes

  • Add opentelemetry_proto_grpc and move gRPC sources into it.
    #2097
    • There will be no breaking changes for users who only use OTLP exporters and
      do not directly use opentelemetry-cpp::proto. However, it is important to
      note that 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.

All Deprecations

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

Full Changelog: v1.9.0...v1.9.1

OpenTelemetry C++ v1.9.0

13 Apr 07:12
7887d32
Compare
Choose a tag to compare

v1.9.0 release

Release of core packages

  • opentelemetry-api
  • opentelemetry-sdk

and exporter packages:

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

CI

  • [CI] Make build environment parallel (Windows)
    #2080
  • [CI] Make build environment parallel (Linux)
    #2076
  • [CI] Remove separate run of metrics ostream example
    #2030

BUILD

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

  • [SEMANTIC CONVENTIONS] Upgrade to version 1.20.0
    #2088
  • [SEMANTIC CONVENTIONS] Upgrade to version 1.19.0
    #2017

API

  • [API] Checking indices before dereference in string utils
    #2040
  • [API] Export factory class of log provider
    #2041

SDK

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

  • [EXPORTER] Add OTLP HTTP SSL support
    #1793
  • [EXPORTER] GRPC endpoint scheme should take precedence over OTEL_EXPORTER_OTLP_TRACES_INSECURE
    #2060

EXAMPLES

  • [EXAMPLES] Remove unused 'alerting' section from prometheus.yml in examples
    #2055
  • [EXAMPLES] Fix view names in Prometheus example
    #2034

DOC

  • [DOC] Fix some docs typo
    #2057
  • [DOC] Update OpenTracing shim README.md
    #2028
  • [DOC] INSTALL doc clarifications
    #2078

Important changes:

  • [EXPORTER] GRPC endpoint scheme should take precedence over OTEL_EXPORTER_OTLP_TRACES_INSECURE
    #2060
    • The logic to decide whether or not an OTLP GRPC exporter uses SSL has
      changed to comply with the specification:
      • Before this change, the following settings were evaluated, in order:
        • OTEL_EXPORTER_OTLP_TRACES_INSECURE (starting with 1.8.3)
        • OTEL_EXPORTER_OTLP_INSECURE (starting with 1.8.3)
        • OTEL_EXPORTER_OTLP_TRACES_SSL_ENABLE
        • OTEL_EXPORTER_OTLP_SSL_ENABLE
      • With this change, the following settings are evaluated, in order:
        • The GRPC endpoint scheme, if provided:
          • "https" imply with SSL,
          • "http" imply without ssl.
        • OTEL_EXPORTER_OTLP_TRACES_INSECURE
        • OTEL_EXPORTER_OTLP_INSECURE
        • OTEL_EXPORTER_OTLP_TRACES_SSL_ENABLE
        • OTEL_EXPORTER_OTLP_SSL_ENABLE
      • As a result, a behavior change for GRPC SSL is possible,
        because the endpoint scheme now takes precedence.
        Please verify configuration settings for the GRPC endpoint.
  • [SDK] Add 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.

New Contributors

Deprecations

  • The Jaeger Exporter is deprecated, see DEPRECATED for details.

Full Changelog: v1.8.3...v1.9.0

OpenTelemetry C++ v1.8.3

08 Mar 00:25
f702676
Compare
Choose a tag to compare

v1.8.3 release

Release of core packages

  • opentelemetry-api
  • opentelemetry-sdk

and exporter packages:

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

API

  • No API change

SDK

  • Provide version major/minor/patch macros #2014
  • Rename the global SDK version variables to avoid naming clash #2011
  • Add attributes for InstrumentationScope #2004
  • [SDK] Fix missing ObservedTimestamp #1985

Exporter

  • Fix Prometheus test iterator iterator increment #2006
  • [ETW] Support serialize span/log attributes into JSON #1991
  • [ETW] Do not overwrite ParentId when setting attribute on Span #1989
  • Fix Prometheus server crash on listening to already used port #1986
  • Boolean environment variables not parsed per the spec #1982
  • Opentracing shim #1909

Build

  • Add OPENTELEMETRY_INSTALL to allow user to skip install targets #2022
  • Fix typo in CMakeLists.txt #2010
  • Build OpenTelemetry SDK and exporters into DLL #1932
  • Fix typo GENENV -> GETENV #1972

Metrics

  • Performance improvement in measurement processing #1993
  • Add benchmark tests for Sum Aggregation. #1948
  • Fix variable names #1987

Sementic Convention

  • Upgrade to version 1.18.0 #1974

Documentation

  • Add alpine packages to INSTALL.md #1957

Examples

  • Add example for logs ostream exporter #1992

New Contributors

Full Changelog: v1.8.2...v1.8.3

Notes:

Important changes:

  • [BUILD] Build OpenTelemetry SDK and exporters into DLL #1932
    See this doc for details.
  • [EXPORTER] OpenTracing shim #1909
    Implemented OpenTracing shim.

OpenTelemetry C++ v1.8.2

31 Jan 19:52
d56a5c7
Compare
Choose a tag to compare

v1.8.2 release

Release of core packages

  • opentelemetry-api
  • opentelemetry-sdk

and exporter packages:

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

API

  • No API change

SDK

  • Log a warning when the BatchSpanProcessor queue is full. by @johanpel in #1871

Exporter

  • Fix console debug logs for otlp exporters. by @marcalff in #1848
  • Enable setting Span endtime for ETW exporter by @lalitb in #1846
  • [ETW Exporter] Add Virtual destructor for TailSampler, Update Maintainer mode warnings for MSVC by @lalitb in #1897

Build

Metrics

  • Custom Aggregation support by @lalitb in #1899
  • Fix warning for misconfiguration of PeriodicExportingMetricReader by @jwbuurlage in #1929
  • Make macros.h available for all source files via version.h by @ThomsonTan in #1918
  • minor metrics handling optimizations by @ays7 in #1890
  • Collect and Export metric data before PeriodicMetricReader shutdown. by @lalitb in #1860
  • Histogram Aggregation: Fix bucket detection logic, performance improvements, and benchmark tests by @lalitb in #1869
  • Update meter.h by @sanjaypujare in #1907

Logs

  • Update logs sdk and api to follow specification by @owent in #1884
  • New LogRecord and Recordable implementations. by @owent in #1766
  • Change BatchLogRecordProcessorFactory::Create to static method by @ninghejun in #1876
  • Fix resource and scope of new Logs SDK implementation. by @owent in #1881

Sementic Convention

  • [SEMANTIC CONVENTIONS] Upgrade to version 1.17.0 by @marcalff in #1927

Documentation

  • Updated clone command in INSTALL.md by @paul-ohl in #1818
  • [MAINTAINER DOC] Define and document a deprecation process by @marcalff in #1923
  • Small fix in INSTALL.md for enabling building package. by @lalitb in #1930

Examples

Removal

New Contributors

Full Changelog: v1.8.1...v1.8.2

Notes:

Deprecation notes:

  • [MAINTAINER DOC] Define and document a deprecation process,
    #1923
  • [DEPRECATION] Deprecate the Jaeger exporter
    #1923
    • The Jaeger Exporter is deprecated, see DEPRECATED for details.

Important changes:

  • [BUILD] Cleanup CMake makefiles for CURL usage
    #1916
    • CMake option WITH_OTLP_HTTP
      • Before this change, the CMake option WITH_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 this change, CMake option 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.
    • CMake option BUILD_W3CTRACECONTEXT_TEST
      • Before this change, the W3C trace context tests were built, or
        not, in an unpredictable way, depending on the presence, or not, of a
        CURL package. In particular, the build could ignore the W3C trace
        context tests even when BUILD_W3CTRACECONTEXT_TEST=ON.
      • With this change, option BUILD_W3CTRACECONTEXT_TEST is honored.
    • HTTP client/server examples
      • Before this change, the HTTP client/server examples were built, or
        not, in an unpredictable way, depending on the presence, or not, of a
        CURL package.
      • With this change, a new option WITH_EXAMPLES_HTTP is used to
        build the HTTP client/server examples.

OpenTelemetry C++ v1.8.1

04 Dec 18:20
57bf8c2
Compare
Choose a tag to compare

v1.8.1 release

Release of core packages

  • opentelemetry-api
  • opentelemetry-sdk

and exporter packages:

  • opentelemetry-exporter-otlp (gRPC)
  • opentelemetry-exporter-etw
  • opentelemetry-exporter-prometheus

API

  • No API change

SDK

Exporter

  • [ETW Exporter] Tail based sampling support by @lalitb in #1780
  • fix enum-compare-switch warning by @flier in #1833

Build

  • [BUILD] move client::nosend under test_common by @esigo in #1811
  • [BUILD] Fix default bazel build by @esigo in #1816
  • Fix Prometheus target name by @lalitb in #1820
  • Fix opentelemetry-proto file exists check by @eguzki in #1824
  • Moved otlp_grpc_utils.cc to opentelemetry_exporter_otlp_grpc_client. by @lalitb in #1829

Metrics

  • Change default temporality as "Cumulative" for OTLP metrics exporters by @lalitb in #1828
  • fix typo [affecting otlp exported histogram metrics max] by @ays7 in #1827

Logs

  • No Logs change

Sementic Convention

  • No Sementic Convention change

Documentation

  • No Documentation change

Others

  • Fix type mismatch when move nostd::shared_ptr by @owent in #1815
  • Clean unused docker files by @esigo in #1817

New Contributors

Full Changelog: v1.8.0...v1.8.1

OpenTelemetry C++ v1.8.0

27 Nov 22:25
6a99fee
Compare
Choose a tag to compare

v1.8.0 release

Release of core packages

  • opentelemetry-api
  • opentelemetry-sdk

and exporter packages:

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

API

  • No API change

SDK

  • Fix GlobalLogHandler singleton creation order by @lalitb in #1767

Exporter

  • [ETW Exporter] Fix span timestamp(s) precision to nanoseconds by @lalitb in #1726
  • [Prometheus Exporter] add fix for prometheus exporter build by @rochaudhari in #1795
  • Fix session lock of OtlpHttpClient by @owent in #1760
  • Add status code to OTLP grpc trace log by @ThomsonTan in #1792

Build

Metrics

  • Remove old metric from GitHub CI by @lalitb in #1733
  • Cleanup of old _metric api/sdk by @esigo in #1734
  • Cleanup ENABLE_METRICS_PREVIEW by @esigo in #1735
  • Change Prometheus CMake target name by @lalitb in #1765
  • Add MeterContext::ForEachMeter() method to process callbacks on Meter in thread-safe manner by @lalitb in #1783

Logs

  • LogProcessor, LogExporter changes by @owent in #1727
  • LogProcessor, LogExporter class name by @esigo in #1736

Sementic Convention

Documentation

New Contributors

Full Changelog: v1.7.0...v1.8.0

Notes:

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:

  • [SEMANTIC CONVENTIONS] Upgrade to version 1.15.0
    #1761
    • Naming of semantic conventions has changed from uppercase constants,
      like 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.
    • Semantic conventions are flagged as experimental,
      which is why this change is done in this release.
  • [METRICS] Old metrics implementation including API, SDK and Exporters removed.

OpenTelemetry C++ v1.7.0 (Metrics API/SDK GA)

28 Oct 22:11
9acde87
Compare
Choose a tag to compare

v1.7.0 release

Release of core packages

  • opentelemetry-api
  • opentelemetry-sdk

and exporter packages:

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

Changelog

API

  • No API change

SDK

  • No SDK change

Exporter

  • Add user agent for OTLP http/grpc client by @owent in #1657
  • Fix debug log of OTLP HTTP exporter and ES log exporter by @owent in #1703

Build

Metrics

  • Fix #1632 - Occasional Segfault with LongCounter instrument by @lalitb in #1638
  • [Metrics SDK] Change boundry type to double for Explicit Bucket Histogram Aggregation, and change default bucket range by @lalitb in #1626
  • Fix #1588 - Observable Gauge does not reflect updated values, and send the old value always by @lalitb in #1641
  • [Metrics SDK] Add Metrics ExemplarFilter and ExemplarReservoir by @esigo in #1584
  • Fix observable Gauge metrics generation by @lalitb in #1651
  • Fix data race on MeterContext::meters_ by @esigo in #1668
  • Fix #1663 Threading issue between Meter::RegisterSyncMetricStorage and Meter::Collect by @lalitb in #1666
  • Add timeout support to MeterContext::ForceFlush by @ThomsonTan in #1673
  • Fix:1676 Segfault when short export period is used for metrics by @lalitb in #1682
  • Fix Histogram crash by @esigo in #1685
  • Fix a potential precision loss on integer in ReservoirCellIndexFor by @ThomsonTan in #1696
  • [Metrics SDK] Add support for Pull Metric Reader by @esigo in #1701
  • [Metrics API/SDK] Switch to explicit 64 bit integers by @esigo in #1686
  • [Metrics API/SDK] Change Meter API/SDK to return nostd::unique_ptr for Sync Instruments by @esigo in #1707
  • [Metrics SDK] Move Metrics Exemplar processing behind feature flag by @lalitb in #1710
  • Fix:1674, Add Monotonic Property to Sum Aggregation, and unit tests for Up Down Counter by @lalitb in #1675
  • Fix: 1712 - Validate Instrument meta data (name, unit, description) by @lalitb in #1713

Logs

Sementic Convention

  • [SEMANTIC CONVENTIONS] Upgrade to version 1.14.0 by @marcalff in #1697

Documentation

New Contributors

Full Changelog: v1.6.1...v1.7.0

Notes:

Metrics API/SDK GA release includes PRs #1686, #1701 and #1707 with breaking changes in the Metrics API and SDK.