Skip to content

Latest commit

 

History

History
113 lines (97 loc) · 4.59 KB

dependencies.md

File metadata and controls

113 lines (97 loc) · 4.59 KB

Dependencies and Licenses

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:

Internal dependencies

External dependencies

  • API & SDK:

    • 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 or HAVE_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
      • libc++ 14.0.0 do not support construct std::span from a range or container .We don't use the std::span in this situation.Users can also define OPENTELEMETRY_OPTION_USE_STD_SPAN=0 to indicate nostd:span will always not be a alias for std::span.
    • Uses Abseil C++ Library for absl::variant as default nostd::variant if WITH_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
  • 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 by opentelemetry-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.
    • nlohmann/json: JSON for Modern C++.
      • protobuf serialized otlp messages are encoded in JSON format using this library.
      • License: MIT License
  • 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. Note: libthrift 0.12.0 doesn't work with this Jaeger exporter. See #1680.
      • License: Apache License 2.0
  • 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
  • ElasticSearch exporter:

    • libcurl for connecting with Elasticsearch server over HTTP protocol.
    • nlohmann/json for encoding Elastic Search messages.
  • Zpages:

    • None
  • Opentracing shim:

    • opentracing-cpp OpenTracing API for C++
      • A bridge layer implementing the OpenTracing API using the OpenTelemetry API
      • License: Apache License 2.0