The OpenTelemetry C++ Client
Перейти к файлу
Mostyn Bramley-Moore 31848352bd copy zlib too 2022-05-14 15:09:51 +02:00
.github Bump actions/stale from 4 to 5 (#1323) 2022-04-11 07:55:15 -07:00
.yamato copy zlib too 2022-05-14 15:09:51 +02:00
api Update yield logic for ARM processor (#1325) 2022-04-12 14:33:39 -07:00
bazel Use some tricks to build static libs that we want to package and use outside a bazel build 2022-04-18 21:31:40 +02:00
buildscripts Add missing Copyright headers (#754) 2021-05-25 11:37:08 +05:30
ci Add building test without RTTI (#1294) 2022-04-07 08:56:44 -07:00
cmake Using system installed grpc,curl,protobuf to enable otlp exporters by default (#1131) 2022-01-03 21:15:18 -08:00
docker fix compilation error with protobuf 3.5 (#1289) 2022-03-25 17:40:21 +01:00
docs Prepare v1.3.0 release (#1324) 2022-04-12 12:46:07 -07:00
examples Force static linking 2022-05-02 10:55:44 +02:00
exporters Remove redundant tail / in CMake install (#1329) 2022-04-16 12:19:53 +05:30
ext Rename `http_client_curl` to `opentelemetry_http_client_curl` (#1301) 2022-03-31 11:51:26 -07:00
sdk Remove redundant tail / in CMake install (#1329) 2022-04-16 12:19:53 +05:30
third_party chore: update prometheus to 1.0 version (#1242) 2022-03-03 19:08:15 -08:00
tools Fix for #1292 (#1326) 2022-04-14 09:51:47 +05:30
.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 Disable bazel build for gcc 4.8, upgrade versions for grpc and bazel, document bazel support (#953) 2021-08-19 14:43:16 -07:00
.bazelversion Disable bazel build for gcc 4.8, upgrade versions for grpc and bazel, document bazel support (#953) 2021-08-19 14:43:16 -07:00
.clang-format Build env setup scripts + initial skeleton of cross-plat scripts for clang-format (#11) 2019-12-16 14:22:00 -08:00
.cmake-format.py Enforce formatting as part of CI. (#28) 2020-01-22 12:39:53 +11:00
.gitattributes Add -recursive to recommended git clone command line and add lf setting (#421) 2020-12-09 01:19:40 +05:30
.gitignore MetricStorage dtors (#1270) 2022-03-17 17:10:32 -07:00
.gitmodules Add json.hpp dependency as submodule (#492) 2020-12-31 15:27:33 +05:30
.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 Prepare v1.3.0 release (#1324) 2022-04-12 12:46:07 -07:00
CMakeLists.txt Move public definitions into `opentelemetry_api`. (#1314) 2022-04-06 23:06:59 -07:00
CMakeSettings.json Code improvements for ETW exporter (#519) 2021-04-03 12:34:55 +05:30
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md (#773) 2021-05-22 00:20:47 +05:30
CONTRIBUTING.md Minor doc cleanup (#1016) 2021-10-15 21:12:29 -07:00
INSTALL.md Enable line-length lint for markdown docs (#1268) 2022-03-16 07:17:12 -07:00
LICENSE Initial commit 2019-06-21 13:27:18 -07:00
README.md Add owent as an Approver (#1276) 2022-03-23 08:06:46 -07:00
RELEASING.md Mention doc update in the release process (#639) 2021-03-29 14:16:04 -07:00
Versioning.md Enable line-length lint for markdown docs (#1268) 2022-03-16 07:17:12 -07:00
WORKSPACE Jaeger bazel windows (#1227) 2022-02-28 20:22:13 -08:00
third_party_release chore: update prometheus to 1.0 version (#1242) 2022-03-03 19:08:15 -08:00

README.md

OpenTelemetry C++

Slack codecov.io BuildStatus Release

The C++ OpenTelemetry client.

Project Status

Signal Status Project
Traces Public Release N/A
Metrics Development [1] N/A
Logs Experimental [2] N/A
  • [1]: The development of the metrics API and SDK based on new stable specification is ongoing. The timelines would be available in release milestone. The earlier implementation (based on old specification) can be included in build by setting ENABLE_METRICS_PREVIEW preprocessor macro, and is included under */_metrics/* directory. This would be eventually removed once the ongoing implemetation is stable.
  • [2]: The current Log Signal Implementation is Experimental, and will change as the current OpenTelemetry Log specification matures. The current implementation can be included in build by setting ENABLE_LOGS_PREVIEW preprocessor macro.

OpenTelemetry Specification Compatibility Matrix

API Version Core Version Contrib Version
1.0.0 1.0.0-rc4 N/A [1]
1.0.0 1.0.0 N/A
  • [1]: We don't have releases for opentelemetry-cpp contrib repo. This may change in future.

Supported C++ Versions

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

  • ISO/IEC 14882:2011 (C++11, C++0x)
  • ISO/IEC 14882:2014 (C++14, C++1y)
  • ISO/IEC 14882:2017 (C++17, C++1z)
  • 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-20.04 (Default GCC Compiler - 9.3.0) CMake, Bazel
ubuntu-18.04 (GCC 4.8 with -std=c++11 flag) CMake [1]
ubuntu-20.04 (Default GCC Compiler - 9.3.0 with -std=c++20 flags) CMake, Bazel
macOS 10.15 (Xcode 12.2) Bazel
Windows Server 2019 (Visual Studio Enterprise 2019) CMake, Bazel

[1]: Bazel build is disabled for GCC 4.8, as gRPC library 1.38 and above (required by OTLP expoter) don't build with this compiler. See gRPC official support document. CMake build doesn't build OTLP exporter with GCC 4.8.

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 10: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

Refer to project status for current status of the project.

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.