From eca6521278b9256a5b6ab59aa89313289ae07094 Mon Sep 17 00:00:00 2001 From: Lalit Kumar Bhasin Date: Thu, 10 Jun 2021 18:46:54 +0530 Subject: [PATCH 1/6] add OSS dependencies --- docs/dependencies.md | 64 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 docs/dependencies.md diff --git a/docs/dependencies.md b/docs/dependencies.md new file mode 100644 index 0000000000..33dad34d4c --- /dev/null +++ b/docs/dependencies.md @@ -0,0 +1,64 @@ +# Dependencies and Licenses + +There are + +- External dependencies as linkable libraries or externally installed headers, and +- Internal depedencies as the part of code from external libraries backporter/copied in main repo. + +Both these dependencies are listed here: + +## Internal dependencies + +- absl::variant: This is backported from [Abseil C++ libraries](https://github.com/abseil/abseil-cpp) as default nostd::variant. License: `Apache License 2.0` +- std::span: This is backported from libstdc++-v3 as default nostd::span. License: `GNU General Public License` +- TraceLoggingDynamic: Dynamic TraceLogging Provider API for C++ used by ETW exporter. License: `MIT License` + +## External dependencies + +- [API](https://github.com/open-telemetry/opentelemetry-cpp/tree/v1.0.0-rc1/api) & [SDK](https://github.com/open-telemetry/opentelemetry-cpp/tree/v1.0.0-rc1/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](https://github.com/microsoft/GSL) is installed. License: `MIT License` + - Uses Abseil C++ Library for `absl::variant` as default `nostd::variant` if `WITH_ABSEIL` cmake option is enabled. License: `Apache License 2.0` + +- [OTLP/HTTP+JSON](https://github.com/open-telemetry/opentelemetry-cpp/tree/v1.0.0-rc1/exporters/otlp) exporter: + - [protobuf](https://github.com/protocolbuffers/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](https://github.com/protocolbuffers/protobuf/blob/master/LICENSE). The code generated by protoc compiler is owned by the owner of `.proto` file. + - [libcurl](https://curl.se/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 + - [nlohmann/json](https://github.com/nlohmann/json): JSON for Modern C++. + - protobuf serialized otlp messages are encoded in JSON format using this library. + - License: `MIT License` + +- [OTLP/gRPC](https://github.com/open-telemetry/opentelemetry-cpp/tree/v1.0.0-rc1/exporters/otlp) exporter: + - `protobuf` OTLP messages are constructed as protobuf payloads. + - [gRPC](https://github.com/grpc/grpc): An RPC library and framework + - Exporter communicates with OTLP collector using gRPC transport mechanism. + - License: `Apache License 2.0` + +- [Zipkin](https://github.com/open-telemetry/opentelemetry-cpp/tree/v1.0.0-rc1/exporters/zipkin) exporter: + - `libcurl` for connecting with Zipkin server over HTTP protocol. + - `nlohmann/json` for encoding Zipkin messages. + +- [Jaeger](https://github.com/open-telemetry/opentelemetry-cpp/tree/v1.0.0-rc1/exporters/jaeger) exporter: + - [Thrift](https://github.com/apache/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` + +- [ETW](https://github.com/open-telemetry/opentelemetry-cpp/tree/v1.0.0-rc1/exporters/etw) exporter: + - `nlohmann/json` for generating MessagePack serialization for message to be transmitted to ETW. + +- [Prometheus](https://github.com/open-telemetry/opentelemetry-cpp/tree/v1.0.0-rc1/exporters/prometheus) exporter: + - (`prometheus-cpp`)[https://github.com/jupp0r/prometheus-cpp] Prometheus Client Library for Modern C++ + - License: `MIT License` + +- [ElasticSearch](https://github.com/open-telemetry/opentelemetry-cpp/tree/v1.0.0-rc1/exporters/elasticsearch) exporter: + - `libcurl` for connecting with Elasticsearch server over HTTP protocol. + - `nlohmann/json` for encoding Elastic Search messages. + +- [Zpages](https://github.com/open-telemetry/opentelemetry-cpp/tree/v1.0.0-rc1/ext/src/zpages): + - None From 111e1e62bc2a3c8d9bf718d5b8fad441821a7525 Mon Sep 17 00:00:00 2001 From: Lalit Kumar Bhasin Date: Thu, 10 Jun 2021 18:59:16 +0530 Subject: [PATCH 2/6] update readme --- README.md | 4 ++++ docs/dependencies.md | 10 +++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index fc0b39480a..890021c589 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,10 @@ of the current project. In general, the code shipped from this repository should build on all platforms having C++ compiler with [supported C++ standards](#supported-c-versions). +## Dependencies + +Please refer to [Dependencies.md](docs/dependencies.md) for OSS Dependencies and license requirements. + ## Installation Please refer to [INSTALL.md](./INSTALL.md). diff --git a/docs/dependencies.md b/docs/dependencies.md index 33dad34d4c..348634e999 100644 --- a/docs/dependencies.md +++ b/docs/dependencies.md @@ -9,9 +9,9 @@ Both these dependencies are listed here: ## Internal dependencies -- absl::variant: This is backported from [Abseil C++ libraries](https://github.com/abseil/abseil-cpp) as default nostd::variant. License: `Apache License 2.0` -- std::span: This is backported from libstdc++-v3 as default nostd::span. License: `GNU General Public License` -- TraceLoggingDynamic: Dynamic TraceLogging Provider API for C++ used by ETW exporter. License: `MIT License` +- [nostd::variant](https://github.com/open-telemetry/opentelemetry-cpp/blob/v1.0.0-rc1/api/include/opentelemetry/nostd/absl/types/variant.h): This is backported from [Abseil C++ libraries](https://github.com/abseil/abseil-cpp) and used as default variant implementation. License: `Apache License 2.0` +- [nostd::span](https://github.com/open-telemetry/opentelemetry-cpp/blob/v1.0.0-rc1/api/include/opentelemetry/nostd/span.h): This is backported from libstdc++-v3 and used as default span implementation. License: `GNU General Public License` +- [TraceLoggingDynamic](https://github.com/open-telemetry/opentelemetry-cpp/blob/v1.0.0-rc1/exporters/etw/include/opentelemetry/exporters/etw/TraceLoggingDynamic.h): Dynamic TraceLogging Provider API for C++ used by ETW exporter. License: `MIT License` ## External dependencies @@ -28,7 +28,7 @@ Both these dependencies are listed here: - License: The library is licensed [here](https://github.com/protocolbuffers/protobuf/blob/master/LICENSE). The code generated by protoc compiler is owned by the owner of `.proto` file. - [libcurl](https://curl.se/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 + - License: Inspired by `MIT/X` but not same. - [nlohmann/json](https://github.com/nlohmann/json): JSON for Modern C++. - protobuf serialized otlp messages are encoded in JSON format using this library. - License: `MIT License` @@ -53,7 +53,7 @@ Both these dependencies are listed here: - `nlohmann/json` for generating MessagePack serialization for message to be transmitted to ETW. - [Prometheus](https://github.com/open-telemetry/opentelemetry-cpp/tree/v1.0.0-rc1/exporters/prometheus) exporter: - - (`prometheus-cpp`)[https://github.com/jupp0r/prometheus-cpp] Prometheus Client Library for Modern C++ + - [`prometheus-cpp`](https://github.com/jupp0r/prometheus-cpp) Prometheus Client Library for Modern C++ - License: `MIT License` - [ElasticSearch](https://github.com/open-telemetry/opentelemetry-cpp/tree/v1.0.0-rc1/exporters/elasticsearch) exporter: From 81465d38b472e8300f7b479d3d5a3f8fe075ce6d Mon Sep 17 00:00:00 2001 From: Lalit Kumar Bhasin Date: Thu, 10 Jun 2021 19:01:30 +0530 Subject: [PATCH 3/6] fix spell --- docs/dependencies.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/dependencies.md b/docs/dependencies.md index 348634e999..40110ff082 100644 --- a/docs/dependencies.md +++ b/docs/dependencies.md @@ -3,7 +3,7 @@ There are - External dependencies as linkable libraries or externally installed headers, and -- Internal depedencies as the part of code from external libraries backporter/copied in main repo. +- Internal depedencies as the part of code from external libraries backported/copied in main repo. Both these dependencies are listed here: From 9cf4c62a7e05c3cd5718ca895540a8d6048a0cad Mon Sep 17 00:00:00 2001 From: Lalit Kumar Bhasin Date: Thu, 10 Jun 2021 19:02:47 +0530 Subject: [PATCH 4/6] fix --- docs/dependencies.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/dependencies.md b/docs/dependencies.md index 40110ff082..9da63e43f3 100644 --- a/docs/dependencies.md +++ b/docs/dependencies.md @@ -22,7 +22,7 @@ Both these dependencies are listed here: - [OTLP/HTTP+JSON](https://github.com/open-telemetry/opentelemetry-cpp/tree/v1.0.0-rc1/exporters/otlp) exporter: - [protobuf](https://github.com/protocolbuffers/protobuf): Library to serialize structured data. - - OTLP messages are constructed as protobuf payloads. + - OTLP messages are constructed as protobuf payloads.s - `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](https://github.com/protocolbuffers/protobuf/blob/master/LICENSE). The code generated by protoc compiler is owned by the owner of `.proto` file. From 2bde1e44f0ba5a9677831c3c86482468d89c4bd0 Mon Sep 17 00:00:00 2001 From: Lalit Kumar Bhasin Date: Thu, 10 Jun 2021 19:06:17 +0530 Subject: [PATCH 5/6] fix further spells --- docs/dependencies.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/dependencies.md b/docs/dependencies.md index 9da63e43f3..4509a85435 100644 --- a/docs/dependencies.md +++ b/docs/dependencies.md @@ -3,7 +3,7 @@ There are - External dependencies as linkable libraries or externally installed headers, and -- Internal depedencies as the part of code from external libraries backported/copied in main repo. +- Internal dependencies as the part of code from external libraries backported/copied in main repo. Both these dependencies are listed here: From 0e384684bd12beb2fc08198ac129361a877a5dca Mon Sep 17 00:00:00 2001 From: Lalit Kumar Bhasin Date: Thu, 10 Jun 2021 23:05:54 +0530 Subject: [PATCH 6/6] Update docs/dependencies.md Co-authored-by: Tom Tan --- docs/dependencies.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/dependencies.md b/docs/dependencies.md index 4509a85435..49f6320180 100644 --- a/docs/dependencies.md +++ b/docs/dependencies.md @@ -22,7 +22,7 @@ Both these dependencies are listed here: - [OTLP/HTTP+JSON](https://github.com/open-telemetry/opentelemetry-cpp/tree/v1.0.0-rc1/exporters/otlp) exporter: - [protobuf](https://github.com/protocolbuffers/protobuf): Library to serialize structured data. - - OTLP messages are constructed as protobuf payloads.s + - 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](https://github.com/protocolbuffers/protobuf/blob/master/LICENSE). The code generated by protoc compiler is owned by the owner of `.proto` file.