OpenTelemetry C++ v1.0 — what’s there, and what next.

Lalit Kumar Bhasin
OpenTelemetry
Published in
2 min readOct 22, 2021

OpenTelemetry C++ released its v1.0 stable version last month, which implements the OpenTelemetry distributed tracing specification!

This release is a single source distribution according to the defined release policy and includes the following:

  • OpenTelemetry C++ API: Tracing API, Baggage API, Context API, and Propagators API.
  • An SDK providing controls for sampling, processing, and export, along with Resource API.
  • Exporters to Jaeger (Thrift/UDP, Thrift/HTTP), Zipkin, and the OpenTelemetry Protocol (OTLP/HTTP, OTLP/gRPC).
  • Documentation, which includes samples, getting started guide for API and SDK, and API reference document.

Refer to the release notes for more details.

Some interesting features worth quoting here:

  • Header only implementation of OpenTelemetry API — Instrumentation libraries just need to include this set of header files to instrument their code with OpenTelemetry.
  • ABI compliance at API level — Which means the instrumentation library compiled against one version of the standard C++ library can work with an application or library compiled against a different version of the C++ standard library.
  • Optional support for dynamic loading of custom SDK implementation at application runtime. This is valuable as now the application can be plugged in with different OpenTelemetry SDK implementations without rebuilding them again.

Also worth mentioning are the instrumentation libraries based on OpenTelemetry C++ available as dynamically loadable modules for Nginx and Apache web servers. And the input plugin for Fluentd to forward traces using TCP, UDP, or Unix-domain sockets. More information on these components is available on the opentelemetry-cpp-contrib repo.

This open-source project included contributions from 57+ developers from 10+ organizations. Big thanks to all the contributors for making this milestone possible.

Our roadmap over the next several months includes:

  • Building Metrics API/SDK.
  • Post-Release Tracing API/SDK Improvements.

We are actively looking for additional contributors! Anyone interested in contributing to or learning more about OpenTelemetry C++ is welcome to join our rapidly growing community on GitHub, connect over Slack (If you’re new, you can create a CNCF Slack account here), or participate in our weekly community meeting!

--

--