- Re-vendored protobuf at v35.0 alongside third_party/utf8_range, a build-time dependency pulled in by extension_set_inl.h. Expanded moz.yaml excludes to cover the reorganized upstream layout (json/, util/, bridge/, compiler/, plus test/build-config files leaked past the default exclude pattern), and dropped the now-upstreamed remove_iostream_header.patch. - Added /third_party/abseil-cpp to chromium-config.mozbuild's LOCAL_INCLUDES so transitive absl/* includes resolve in every protobuf consumer that includes chromium-config; added direct LOCAL_INCLUDES on the few that don't. - Added a pragma to abseil's check_op.h to suppress sign-compare in CHECK_OP macros, scoping the suppression to translation units that include this header rather than globally. - Added USE_LIBS += ["abseil"] to the content_analysis_sdk_agent Program() so it can link absl symbols. - Audited moz.build SOURCES and EXPORTS against actual usage and removed full-runtime files (well-known type .pb.cc/.pb.h, reflection_ops, dynamic_message, text_format, descriptor, etc.) that our lite-mode generated code doesn't reach. - Taught generate_files.py to update gradle/libs.versions.toml's `protobuf` (Java/Maven) value to match the vendored C++ revision on future re-vendors. - Suppressed nodiscard warnings on pre-existing SerializeToString calls in url-classifier with (void) casts. Differential Revision: https://phabricator.services.mozilla.com/D300213
OpenTelemetry C++
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.
Bazel Central Registry
This project is available in the Bazel Central Registry (BCR).
To use it with Bazel, add the following to your MODULE.bazel file:
bazel_dep(name = "opentelemetry-cpp", version = "x.y.z")
For the latest version, see BCR: opentelemetry-cpp.
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
- Ehsan Saei
- Lalit Kumar Bhasin, Microsoft
- Marc Alff, Oracle
- Tom Tan, Microsoft
For more information about the maintainer role, see the community repository.
Approvers
- Doug Barker
- Josh Suereth, Google
- Pranav Sharma, Google
- WenTao Ou, Tencent
For more information about the approver role, see the community repository.
Emeritus Maintainer/Approver/Triager
For more information about the emeritus role, see the community repository.
Thanks to all the people who have contributed
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.