Skip to content

Releases: open-telemetry/opentelemetry-cpp

OpenTelemetry C++ v1.6.0 (Metrics release candidate)

16 Aug 16:27
22e64e2
Compare
Choose a tag to compare

v1.6.0 release (Metrics release candidate)

Release of core packages

  • opentelemetry-api
  • opentelemetry-sdk

and exporter packages:

  • opentelemetry-exporter-otlp (gRPC + HTTP/JSON)
  • opentelemetry-exporter-etw
  • opentelemetry-exporter-zipkin
  • opentelemetry-exporter-jaeger (thrift + UDP/HTTP)

Changelog

API

  • No API change

SDK

  • Fix log sdk builder (#1486) by @marcalff in #1524
  • [Trace] Add SpanData getter for Span Recordable by @lalitb in #1508
  • Fix infinitely waiting when shutdown with more than one running http sessions. by @owent in #1549

Exporter

  • Prometheus exporter support Gauge Type by @esigo in #1553
  • [NFC] Improve scope/instrument names in metrics OStream exporter by @bsarden in #1544

Build

Test

Metrics Features

  • Add configuration options for Aggregation creation by @esigo in #1513
  • Support multiple async callbacks by @lalitb in #1495
  • OStream exporter should print out resource attributes by @bsarden in #1523
  • Histogram min/max support by @esigo in #1540
  • Metric aggregation temporality controls by @lalitb in #1541
  • Fix OTLP gRPC Metrics env variables by @lalitb in #1543
  • Fix default Metric view name by @esigo in #1515
  • Fix IWYU error in instruments.h by @bsarden in #1555
  • Fix metrics context circular reference by @esigo in #1535
  • fix metrics race condition by @esigo in #1552
  • remove throw check from metrics with noexcept by @esigo in #1560
  • Fix metrics asan and tsan CI by @esigo in #1562
  • Calling Observable Instruments callback during metrics collection by @lalitb in #1554

New Contributors

Full Changelog: v1.5.0...v1.6.0

OpenTelemetry C++ v1.5.0

01 Aug 10:14
9e6fd1e
Compare
Choose a tag to compare

v1.5.0 release

Release of core packages

  • opentelemetry-api
  • opentelemetry-sdk

and exporter packages:

  • opentelemetry-exporter-otlp (gRPC + HTTP/JSON)
  • opentelemetry-exporter-etw
  • opentelemetry-exporter-zipkin
  • opentelemetry-exporter-jaeger (thrift + UDP/HTTP)

##Changelog

API

  • No API change

SDK

  • fix: urlPaser will incorrect parsing url like "http://abc.com/xxx@xxx/a/b" #1511
  • Rename InstrumentationLibrary to InstrumentationScope #1507
  • Add automatically semantic conventions from the spec (#873) #1497
  • Use template class for in-memory data. #1496
  • fix compiler warnings #1499
  • Add trace sdk builders (#1393) #1471
  • Remove reference to deprecated InstrumentationLibrary in OTLP #1469
  • Fix trace kIsSampled flag set incorrectly #1465
  • Fix build warnings about missing aggregates. #1368

Exporter

  • Add resources to dep list of prometheus exporter test #1527
  • Inline print_value() in ostream exporter #1512
  • fix otlp grpc exporter naming #1488
  • Fix endpoint in otlp grpc exporter #1474
  • fix prometheus exporter failure type #1460

Semantic Conventions

  • Upgrade to version 1.12.0 #873

Build

  • Don't require applications using jaeger exporter to know about libcurl #1518
  • Try to build nlohmann-json only it's depended. #1505
  • Remove --config Debug when installing. #1480

Docs

  • Update docs to use relative code links. #1447

Example

  • Fix memory ownership of InMemorySpanExporter (#1473) #1471

Ext

  • curl::HttpClient use curl_multi_handle instead of creating a thread for every request and it's able to reuse connections now. (#1317)

Metrics Features

  • Enable bazel build for metrics proto files #1489
  • Add metrics OTLP/HTTP exporter #1487
  • OTLP gRPC Metrics Exporter #1454

OpenTelemetry C++ v1.4.1

21 Jun 00:03
96534a7
Compare
Choose a tag to compare

v1.4.1 release

Release of core packages

  • opentelemetry-api
  • opentelemetry-sdk

and exporter packages:

  • opentelemetry-exporter-otlp (gRPC + HTTP/JSON)
  • opentelemetry-exporter-etw
  • opentelemetry-exporter-zipkin
  • opentelemetry-exporter-jaeger (thrift + UDP/HTTP)

Changelog

API

  • No API change.

SDK

  • fix: WaitOnSocket select error when sockfd above FD_SETSIZE (#1410)
  • fix OTEL_INTERNAL_LOG_INFO (#1407)

Build

  • Upgrade nlohmann_json to 3.10.5 (#1441)
  • install sdk-config.h (#1419)
  • fix nlohmann_json's (third party) include dir (#1415)

Example

  • Log current timestamp instead of epoch time (#1434)

Docs

  • Fixed broken link to OpenTelemetry.io (#1446)
  • Fix GettingStarted documentation for Jaeger HTTP exporter (#1439)
  • Document Getting Started with Prometheus and Grafana (#1396)

Metrics features

  • Fix variables inizialization (#1430)
  • fix histogram (#1440)
  • Add attributes/dimensions to metrics ostream exporter (#1400)
  • Only record non-negative / finite / Non-NAN histogram values (#1427)
  • Pass state to async callback function. (#1408)

OpenTelemetry C++ v1.4.0

18 May 18:37
09b92af
Compare
Choose a tag to compare

v1.4.0 release

Release of core packages

  • opentelemetry-api
  • opentelemetry-sdk

and exporter packages:

  • opentelemetry-exporter-otlp (gRPC + HTTP/JSON)
  • opentelemetry-exporter-etw
  • opentelemetry-exporter-zipkin
  • opentelemetry-exporter-jaeger (thrift + UDP/HTTP)

Changelog

API

  • Upgrade proto to v0.17.0, update log data model (#1383)
  • Add noexcept/const qualifier at missing places for Trace API. (#1374)
  • Update yield logic for ARM processor (#1325)

SDK

  • Get span_id from context when Logger::Log received invalid span_id (#1398)
  • Fix sharing resource in batched exported spans (#1386)
  • Fix empty tracestate header propagation (#1373)
  • Fix baggage propagation for empty/invalid baggage context (#1367)
  • Add explicit type cast in baggage UrlDecode (#1353)

Exporters

  • Fix scalar delete against array (#1356)
  • Conditional include for codecvt header (#1355)
  • Prometheus exporter (#1331)

Build

  • Alpine image (#1382)
  • Fix missing link to nlohmann_json (#1390)
  • Prometheus exporter meters and instrument name (#1378)
  • Export opentelemetry_otlp_recordable (#1365)
  • Add missing include guard (#1357)
  • Use latest TraceLoggingDynamic.h (#1354)
  • ostream metrics cmake (#1344)
  • Link opentelemetry_ext with opentelemetry_api (#1336)
  • Dependencies image as artifact (#1333)
  • Fix Ninja path (#1326)
  • Fix metrics compiler warnings (#1328)

Metrics features

  • Connect async storage with async instruments (#1388)
  • Reuse temporal metric storage for sync storage (#1369)
  • Fix class member initialization order (#1360)
  • Simplify SDK Configuration: Use View with default aggregation if no matching View is configured (#1358)
  • Remove exporter registration to meter provider (#1350)
  • Fix output time in metrics OStream exporter (#1346)
  • Enable metric collection for Async Instruments - Delta and Cumulative (#1334)
  • Metrics histogram example (#1330)
  • Implement Merge and Diff operation for Histogram Aggregation (#1303)

Examples

  • Prometheus example (#1332)

Docs

  • Getting started document using ostream exporter (#1394)

Notes:

  • This release includes alpha milestone of OpenTelemetry Metrics.
  • The name parameter for Log APIs is deprecated and will be removed in future releases. See details in CHANGELOG.md

OpenTelemetry C++ v1.3.0

12 Apr 21:05
da2911c
Compare
Choose a tag to compare

v1.3.0 release

Release of core packages

  • opentelemetry-api
  • opentelemetry-sdk

and exporter packages:

  • opentelemetry-exporter-otlp (gRPC + HTTP/JSON)
  • opentelemetry-exporter-etw
  • opentelemetry-exporter-zipkin
  • opentelemetry-exporter-jaeger (thrift + UDP/HTTP)

Changelog

API

  • Allow extension of the lifetime of ContextStorage. (#1214)

SDK

  • Bugfix: span SetAttribute crash (#1283)
  • Reorder the destructor of members in LoggerProvider and TracerProvider (#1245)

Exporters

  • ETW provider handle cleanup (#1322)
  • Fix: use CURLOPT_TIMEOUT_MS to config OtlpHttpExporter's timeout instead of CURLOPT_TIMEOUT (#1261)
  • Jaeger Exporter - Populate Span Links (#1251)

Build

  • Move public definitions into opentelemetry_api. (#1314)
  • Rename http_client_curl to opentelemetry_http_client_curl (#1301)
  • Update grpc to v1.43.2 to support VS2022/MSVC 19.30 and bazel 5.0 (#1207)

Experimental metrics features

  • OStream example (#1312)
  • Add InstrumentationInfo and Resource to the metrics data to be exported. (#1299)
  • Implement periodic exporting metric reader (#1286)
  • Synchronous Metric collection (Delta , Cumulative) (#1265)
  • Metrics exemplar round 1 (#1264)
  • Enable metric collection from MetricReader (#1241)
  • Asynchronous Aggregation storage (#1232)
  • Synchronous Instruments - Aggregation Storage(s) creation for configured views (#1219)
  • Add Aggregation storage (#1213)
  • Ostream metric exporter (#1196)
  • Filtering metrics attributes (#1191)
  • Sync and Async Instruments SDK (#1184)
  • Add Aggregation as part of metrics SDK. (#1178)

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.

opentelemetry v1.2.0

01 Feb 23:35
033b16f
Compare
Choose a tag to compare

v1.2.0 release

Release of core packages:

  • opentelemetry-api
  • opentelemetry-sdk

and exporter packages:

  • opentelemetry-exporter-otlp ( gRPC + HTTP/JSON )
  • opentelemetry-exporter-etw
  • opentelemetry-exporter-zipkin
  • opentelemetry-exporter-jaeger ( thrift + UDP/HTTP )

Changelog

API

  • Allow to use external abseil for bazel targets (#1172)

Exporters

  • InMemorySpanExporter shutdown fix (#1161)
  • Fix leak in Jaeger exporter (#1160)
  • Importing gsl::span if std::span is not available (#1167)
  • Synchronized calls to Exporter::Export & Shutdown (#1164)
  • OTLP http exporter block thread (#1163)

Experimental features

  • Logger: propagating resources through LoggerProvider (#1154)
  • Logger: support for instrumentation library (#1149)
  • Add log level for internal log of sdk (#1147)
  • Metrics SDK: View API (#1110)

Notes on experimental features:

#1149 and #1154 from above list 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).

opentelemetry v1.1.1

21 Dec 03:59
4803310
Compare
Choose a tag to compare

v1.1.1 release

Release of core packages:

  • opentelemetry-api
  • opentelemetry-sdk

and exporter packages:

  • opentelemetry-exporter-otlp ( gRPC + HTTP/JSON )
  • opentelemetry-exporter-etw
  • opentelemetry-exporter-zipkin
  • opentelemetry-exporter-jaeger ( thrift + UDP/HTTP )

Changelog

SDK

  • Rename OTEL_CPP_GET_ATTR macro, and define it using fully qualified attr function (#1140)
  • Default resource attributes and attributes in OTEL_RESOURCE_ATTRIBUTES are missing when using Otlp*LogExporter (#1082)

Exporters

  • Add OTLP/gRPC Log Exporter (#1048)
  • Add OTLP/HTTP Log Exporter (#1030)
  • [EXPORTER] ZipkinExporter shutdown (#1153)
  • [EXPORTER] Jaeger exporter shutdown (#1150)
  • [EXPORTER] Bugfix: jaeger::TUDPTransport::write crash when getaddrinfo returns error (#1116)
  • [EXPORTER] Bugfix: Jaeger exporter: extend supported attributes types (#1106)
  • [EXPORTER] Fix otlp generates null span ids (#1113)
  • [EXPORTER] Jaeger bazel (Linux only) (#1077)

Build

  • Mark tags to bazel targets (#1075)

Docs

  • Add note on DLL support (#1137)
  • Improve the instructions for Bazel build (#1136)
  • Document dependencies (#1119)
  • Dockerfile for quick demo/troubleshooting purpose (#905)

Example

  • OTLP gRPC log example (#1083)

Metrics

  • Add Meter and MeterProvider in the SDK (#1078)

opentelemetry v1.1.0

22 Nov 22:07
426365c
Compare
Choose a tag to compare

v1.1.0 release

Release of core packages:

  • opentelemetry-api
  • opentelemetry-sdk

and exporter packages:

  • opentelemetry-exporter-otlp ( gRPC + HTTP/JSON )
  • opentelemetry-exporter-etw
  • opentelemetry-exporter-zipkin
  • opentelemetry-exporter-jaeger ( thrift + UDP/HTTP )

Changelog

SDK

  • Bugfix: regex is neither working on GCC 4.9.x (#1069)
  • Improvement: span_id should not break strict aliasing. (#1068)
  • OTLP gRPC log export should fail after shutdown (#1064)
  • [SDK] fix: issue 368- consistent namespace scope resolution (#1008)

OTLP

  • checkout opentelemetry-proto v0.11.0 (#1055)

OTLP Log Exporter (preview)

  • Add OTLP/gRPC Log Exporter (#1048)
  • Add OTLP/HTTP Log Exporter (#1030)

Prometheus Exporter

  • Prometheus Exporter (#1031)

Build

  • Build release tarball when nlohmann-json not installed (#1074)
  • Build OTLP exporter from the release tarball (#1056)

Example

  • OTLP HTTP log example (#1062)

Metrics

  • Move old metrics implementation to different directory, and rename targets to _deprecated (#1053)

opentelemetry v1.0.1

22 Oct 04:44
cfb02da
Compare
Choose a tag to compare

v1.0.1 release

Release of core packages:

  • opentelemetry-api
  • opentelemetry-sdk

and exporter packages:

  • opentelemetry-exporter-otlp ( gRPC + HTTP/JSON )
  • opentelemetry-exporter-etw
  • opentelemetry-exporter-zipkin
  • opentelemetry-exporter-jaeger ( thrift + UDP/HTTP )

Changelog

API

  • 🚀 Adding new Logger:log() method (#1005)

SDK

  • 🚀 Add schema_url support to both Resource and InstrumentationLibrary (#979)

ETW Exporter

  • 🚀 Exports span attributes to ETW (#1021)
  • 🚀 ETW Log Exporter (#1006)

OTLP Exporter

  • Change OTLP/HTTP default port from 4317 to 4318 (#1018)
  • 🐛 Remove scheme from OTLP endpoint before passing to gRPC (#988)
  • 🚀 Support environment variables for both OtlpGrpcExporter and OtlpHttpExporter (#983)

BUILD

  • cmake: Add FindThrift.cmake find module method for thrift (#1020)
  • Fix nlohmann_json package dependency (#1017)
  • Update opentelemetry-proto for bazel build to 0.9.0 (#984)
  • Cross compling grpc_cpp_plugin not found bug (#982)
  • 🐛 Fix build issue where memcpy was not declared in scope (#985)

opentelemetry v1.0.0

20 Sep 06:33
74d4be4
Compare
Choose a tag to compare

v1.0.0 release

Release of core packages:

  • opentelemetry-api
  • opentelemetry-sdk

and exporter packages:

  • opentelemetry-exporter-otlp ( gRPC + HTTP/JSON )
  • opentelemetry-exporter-etw
  • opentelemetry-exporter-zipkin
  • opentelemetry-exporter-jaeger ( thrift + UDP/HTTP )

Changelog

API

  • Document DefaultSpan, remove DefaultTracer (#959)
  • Separate baggage<->Context api from Baggage Propagator (#963)
  • Remove unused public API to_span_ptr (#964)
  • 💥 Make span context management public (#967)
  • Support determining parent span from Context while creating new Span (#969)
  • 💥 Traces: Add note on experimental semantic convention implementation, prefix semantics headers with experimental tag (#970)
  • Increment OPENTELEMETRY_ABI_VERSION_NO to 1 (#980)

SDK

  • Clean up GetEnvironmentVariable and remove unused variable under NO_GETENV (#976)
  • 💥 Resources: Add note on experimental semantic convention implementation, prefix semantics headers with experimental tag (#970)

OTLP Exporter

  • 🐛 Ignore status description if status code is not Error (#962)
  • 💥 Make Otlp exporter configuration environment variables specs-compliant (#974)

Zipkin Exporter

  • 🐛 Don't set parentId in case parentId is empty (#943)
  • 🚀 Extend zipkin exporter with ability to provide headers (#951)

DOCS

  • 📖 Add getting-started documentation for SDK: (#942)
  • 📖 Remove unnecessary spaces and spelling of gRPC in README (#965)

BUILD

  • Disable bazel build for gcc 4.8, upgrade versions for grpc(v1.39.1) and bazel(4.2.0), document bazel support (#953)
  • Move CMake config template to cmake folder (#958)
  • Enable CMake to search the new package variable <PackageName>_ROOT (#975)
  • 🐛 Do not override CMAKE_CXX_STANDARD (#977)

🚧 Experiemental Features (Will change in future)

  • Semantic Conventions for traces - As the specs is still experimental, the implementation will change in future.
  • Semantic Convention for resource - As the specs is still experimental, the implementation will change in future.
  • Logs and Metrics API & SDK - These are not compliant, and are behind feature flag. Not recommended to use for now.