There are
- External dependencies as linkable libraries or externally installed headers, and
- Internal dependencies as the part of code from external libraries backported/copied in main repo.
Both these dependencies are listed here:
- nostd::variant: This is backported from Abseil C++ libraries and used as default variant implementation. License:
Apache License 2.0
- nostd::span: This is backported from libstdc++-v3 and used as default span implementation. License:
GNU General Public License
- TraceLoggingDynamic: Dynamic TraceLogging Provider API for C++ used by ETW exporter. License:
MIT License
-
- Uses Standard C++ library for latest features (std::string_view, std::variant, std::span, std::shared_ptr, std::unique_ptr) with C++14/17/20 compiler if
WITH_STL
cmake option is enabled orHAVE_CPP_STDLIB
macro is defined. License:GNU General Public License
- For C++11/14/17 compilers, fallback to gsl::span if GSL C++ library is installed. License:
MIT License
- For C++11/14/17 compilers, fallback to gsl::span if GSL C++ library is installed. License:
- Uses Abseil C++ Library for
absl::variant
as defaultnostd::variant
ifWITH_ABSEIL
cmake option or--@io_opentelemetry_cpp/api:with_abseil=true
(aka--//api:with_abseil=true
) bazel option is enabled. License:Apache License 2.0
- Uses Standard C++ library for latest features (std::string_view, std::variant, std::span, std::shared_ptr, std::unique_ptr) with C++14/17/20 compiler if
-
OTLP/HTTP+JSON exporter:
- protobuf: Library to serialize structured data.
- OTLP messages are constructed as protobuf payloads.
protoc
compiler is used to generate C++ stubs for proto files provided byopentelemetry-proto
.libprotobuf
library is used for generating serialised trace/metrics/log data to be sent to opentelemetry collector.- License: The library is licensed here. The code generated by protoc compiler is owned by the owner of
.proto
file.
- libcurl : the multiprotocol file transfer library.
- Export connects with opentelemetry collector over HTTP protocol using libcurl library
- License: Inspired by
MIT/X
but not same. https://curl.se/docs/copyright.html
- nlohmann/json: JSON for Modern C++.
- protobuf serialized otlp messages are encoded in JSON format using this library.
- License:
MIT License
- protobuf: Library to serialize structured data.
-
OTLP/gRPC exporter:
protobuf
OTLP messages are constructed as protobuf payloads.- gRPC: An RPC library and framework
- Exporter communicates with OTLP collector using gRPC transport mechanism.
- License:
Apache License 2.0
-
Zipkin exporter:
libcurl
for connecting with Zipkin server over HTTP protocol.nlohmann/json
for encoding Zipkin messages.
-
Jaeger exporter:
- Thrift - Serialization and RPC framework.
thrift
compiler to generate C++ stubs for IDL data model for Jaeger.libthrift
library to generate serialised trace/metrics/log data to be sent to remote Jaeger service.- License:
Apache License 2.0
- Thrift - Serialization and RPC framework.
-
ETW exporter:
nlohmann/json
for generating MessagePack serialization for message to be transmitted to ETW.
-
Prometheus exporter:
prometheus-cpp
Prometheus Client Library for Modern C++- License:
MIT License
- License:
-
ElasticSearch exporter:
libcurl
for connecting with Elasticsearch server over HTTP protocol.nlohmann/json
for encoding Elastic Search messages.
-
- None