Files
sousa-gecko/third_party/opentelemetry-cpp
Ryan VanderMeulen 47fd6ce131 Bug 1989886 - Update protobuf to v35.0. r=firefox-build-system-reviewers,timhuang,sergesanspaille
- 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
2026-05-20 20:19:02 +00:00
..

OpenTelemetry C++

Slack codecov.io Build
Status Release FOSSA License Status FOSSA Security Status OpenSSF Scorecard

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

For more information about the maintainer role, see the community repository.

Approvers

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

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.