The OpenTelemetry C++ Client
Go to file
KJ Tsanaktsidis 47f530a5f9
[SDK] BatchLogRecordProcessor::ForceFlush is not waking up bg thread (#3448)
2025-06-13 12:20:10 +02:00
.devcontainer [CI] build iwyu (#3459) 2025-06-04 09:31:25 +02:00
.github Bump step-security/harden-runner from 2.12.0 to 2.12.1 (#3471) 2025-06-12 10:10:09 +02:00
.vscode Base2 exponential histogram aggregation (#3346) 2025-04-25 18:13:23 +00:00
api [CodeHealth] fix include-what-you-use, part 8 (#3465) 2025-06-09 10:23:10 +02:00
bazel [BUILD] Upgrade to opentelemetry-proto 1.7.0 (#3443) 2025-06-10 10:51:02 +02:00
buildscripts [SEMANTIC CONVENTIONS] Fix comment style to preserve markup (#3444) 2025-05-28 16:47:56 +02:00
ci [SDK] Add credentials option to OTLP gRPC client (#3402) (#3403) 2025-06-07 11:10:50 +02:00
cmake [BUILD] Upgrade to opentelemetry-proto 1.7.0 (#3443) 2025-06-10 10:51:02 +02:00
docker Harden Github actions - pinned-dependencies (part -1) (#3380) 2025-04-25 05:15:53 +00:00
docs [RELEASE] Release opentelemetry-cpp 1.21.0 (#3445) 2025-05-29 11:30:28 +02:00
examples [CodeHealth] fix include-what-you-use, part 8 (#3465) 2025-06-09 10:23:10 +02:00
exporters [CodeHealth] fix include-what-you-use, part 8 (#3465) 2025-06-09 10:23:10 +02:00
ext [CodeHealth] fix include-what-you-use, part 8 (#3465) 2025-06-09 10:23:10 +02:00
functional [CodeHealth] fix include-what-you-use, part 8 (#3465) 2025-06-09 10:23:10 +02:00
install [TEST] test examples in CI with CMake Part 1 (#3449) 2025-06-05 20:49:45 +02:00
opentracing-shim [CodeHealth] fix include-what-you-use, part 8 (#3465) 2025-06-09 10:23:10 +02:00
sdk [SDK] BatchLogRecordProcessor::ForceFlush is not waking up bg thread (#3448) 2025-06-13 12:20:10 +02:00
test_common [EXPORTER] Support handling retry-able errors for OTLP/HTTP (#3223) 2025-01-17 16:35:19 +01:00
third_party [BUILD] Upgrade to opentelemetry-proto 1.7.0 (#3443) 2025-06-10 10:51:02 +02:00
tools [BUILD] Remove `WITH_ABSEIL` (#3318) 2025-04-02 01:45:26 +02:00
.bazelignore Build tools: build configurations, vcpkg support, vcpkg port file for OpenTelemetry, use submodules for CMake deps (#377) 2020-11-30 14:47:41 -08:00
.bazelrc [bazel] Enable --incompatible_disallow_empty_glob (#2642) 2024-11-23 11:10:48 +01:00
.bazelversion [bazel] Bump version and deps (#2679) 2024-06-11 21:47:23 +02:00
.clang-format [API] Deprecate event logger (#3285) 2025-02-25 10:36:31 +01:00
.clang-tidy [Code Health] Clang Tidy cleanup, Part 2 (#3038) 2024-08-25 19:58:32 +02:00
.cmake-format.py Enforce copyright check in CI (#1965) 2023-02-08 15:04:21 -08:00
.copyright-ignore [EXPORTER] Add OTLP HTTP SSL support (#1793) 2023-04-05 09:59:15 -07:00
.gitattributes Fix global log handle symbols when using dlopen (#1420) 2022-06-03 21:30:20 -07:00
.gitignore [BUILD] Add support for bzlmod (#2608) 2024-06-14 22:43:37 +02:00
.gitmodules Opentracing shim (#1909) 2023-03-03 15:33:20 -08:00
.iwyu.imp [BUILD] Build break with CURL 7.29.0 (#3255) 2025-01-25 01:36:10 +01:00
.markdownlint.json Enable line-length lint for markdown docs (#1268) 2022-03-16 07:17:12 -07:00
.markdownlintignore Populate resource to OTLP proto data (#758) 2021-05-16 11:02:26 +05:30
CHANGELOG.md [BUILD] Upgrade to opentelemetry-proto 1.7.0 (#3443) 2025-06-10 10:51:02 +02:00
CMakeLists.txt [SDK] Add credentials option to OTLP gRPC client (#3402) (#3403) 2025-06-07 11:10:50 +02:00
CMakeSettings.json [BUILD] Remove option WITH_OTLP (#2161) 2023-05-31 21:06:18 +02:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md (#773) 2021-05-22 00:20:47 +05:30
CONTRIBUTING.md [DEVCONTAINER] support customization and run as non-root user (#3270) 2025-02-21 13:47:20 +01:00
DEPRECATED.md [SEMANTIC CONVENTIONS] Migration to weaver (#3105) 2024-11-13 19:14:12 +01:00
INSTALL.md update the INSTALL doc to referece the trace target instead of the interface sdk target and add note about potential move of the etw and elasticsearch components (#3422) 2025-05-17 10:08:23 -07:00
LICENSE Initial commit 2019-06-21 13:27:18 -07:00
MODULE.bazel [BUILD] Upgrade to opentelemetry-proto 1.7.0 (#3443) 2025-06-10 10:51:02 +02:00
README.md [DOC] Udpate link to membership document (#3452) 2025-05-30 21:13:55 +02:00
RELEASING.md [SEMANTIC CONVENTIONS] Upgrade semantic conventions to 1.27.0 (#3023) 2024-08-13 10:51:39 +02:00
Versioning.md Enable line-length lint for markdown docs (#1268) 2022-03-16 07:17:12 -07:00
WORKSPACE Update copyright for the remaining repo (#1963) 2023-02-07 06:08:51 -08:00
WORKSPACE.bzlmod [BUILD] Add support for bzlmod (#2608) 2024-06-14 22:43:37 +02:00
third_party_release [BUILD] Upgrade to opentelemetry-proto 1.7.0 (#3443) 2025-06-10 10:51:02 +02:00

README.md

OpenTelemetry C++

Slack codecov.io BuildStatus Release FOSSA License Status FOSSA Security Status

The C++ OpenTelemetry client.

Project Status

Stable across all 3 signals i.e. Logs, Metrics, and Traces.

See Spec Compliance Matrix to understand which portions of the specification has been implemented in this repo.

Supported C++ Versions

Code shipped from this repository generally supports the following versions of C++ standards:

  • ISO/IEC 14882:2014 (C++14)
  • ISO/IEC 14882:2017 (C++17)
  • ISO/IEC 14882:2020 (C++20)

Any exceptions to this are noted in the individual README.md files.

Please note that supporting the C Programming Language is not a goal of the current project.

Supported Development Platforms

Our CI pipeline builds and tests on following x86-64 platforms:

Platform Build type
ubuntu-22.04 (GCC 10, GCC 12, Clang 14) CMake, Bazel
ubuntu-20.04 (GCC 9.4.0 - default compiler) CMake, Bazel
ubuntu-20.04 (GCC 9.4.0 with -std=c++14/17/20 flags) CMake, Bazel
macOS 12.7 (Xcode 14.2) Bazel
Windows Server 2019 (Visual Studio Enterprise 2019) CMake, Bazel
Windows Server 2022 (Visual Studio Enterprise 2022) CMake

In general, the code shipped from this repository should build on all platforms having C++ compiler with supported C++ standards.

Dependencies

Please refer to Dependencies.md for OSS Dependencies and license requirements.

Installation

Please refer to INSTALL.md.

Getting Started

As an application owner or the library author, you can find the getting started guide and reference documentation on opentelemetry-cpp.readthedocs.io

The examples/simple directory contains a minimal program demonstrating how to instrument a small library using a simple processor and console exporter, along with build files for CMake and Bazel.

Contributing

See CONTRIBUTING.md

We meet weekly, and the time of the meeting alternates between Monday at 13:00 PT and Wednesday at 9:00 PT. The meeting is subject to change depending on contributors' availability. Check the OpenTelemetry community calendar for specific dates and Zoom meeting links.

Meeting notes are available as a public Google doc. For edit access, get in touch on Slack.

Maintainers (@open-telemetry/cpp-maintainers):

Approvers (@open-telemetry/cpp-approvers):

Emeritus Maintainer/Approver/Triager:

Thanks to all the people who have contributed

contributors

Release Schedule

See the release notes for existing releases.

See the project milestones for details on upcoming releases. The dates and features described in issues and milestones are estimates, and subject to change.