open-telemetry / opentelemetry-cpp-contrib

https://opentelemetry.io/
Apache License 2.0
124 stars 136 forks source link

fluentd forward exporter #21

Open maxgolov opened 3 years ago

maxgolov commented 3 years ago

I would like to implement fluentd forward exporter for OpenTelemetry C++ SDK for the following modes:

Output for the following transports - fluentd inputs :

I started initial work on it. The idea is we can build it as an optional community contribution for OpenTelemetry C++ SDK.

Features

One aspect of exporter that I'd like to cover is semantic convention of the fields. By default the field names for spans, events, attributes, etc. - would follow semantics agreed for the other JSON-alike exporters in OpenTelemetry. But it would be great to add some extensibility. Such as a concept of decorator or transformer that allows to customize the destination attributes. This way the exporter can be used for other vendor destinations, that may need custom field names, positions, and custom tree structure of the actual events carried within the forward protocol.

maxgolov commented 3 years ago

UPDATE:

I'm working on all three pieces in those two branches, which contain the working draft implementation: https://github.com/open-telemetry/opentelemetry-cpp/tree/maxgolov/fluentd_exporter https://github.com/open-telemetry/opentelemetry-cpp-contrib/tree/maxgolov/fluentd_exporter

Somewhat related PR in the main: https://github.com/open-telemetry/opentelemetry-cpp/pull/722 - for the sockets library changes. https://github.com/open-telemetry/opentelemetry-cpp/pull/714 - for building main + contrib repo in one build.