Is your feature request related to a problem? Please describe.
I would like to use Telegraf agents and OpenTelemetry Collector agents together. I would like the translation to be consistent between implementations.
Describe the solution you'd like
OpenTelemetry Collector and Telegraf are both implemented in golang. Rather than let the two communities create their own mappings OTLP<->line-protocol, there should be one canonical mapping and one canonical golang implementation. In this way, improvements to otelcol benefit Telegraf, and visa versa.
A work-in-progress single package exists here.
With this single reference package, create the following:
- An otelcol exporter: to Telegraf/InfluxDB (line protocol over HTTP)
- An otelcol receiver: from Telegraf (line protocol over HTTP)
- (out of scope here) A Telegraf OpenTelemetry input plugin
- (out of scope here) A Telegraf OpenTelemetry output plugin
Describe alternatives you've considered
Wrap otelcol in Telegraf execd input and execd output plugins. This is hard to package and configure.
Wrap Telegraf in an otelcol extension similar to the fluentbit extension. Hard to package and configure.
Fork portions of Telegraf into otelcol. This has already been done with windowsperfcountersreceiver. The result is more code, less attention to bug fixes, potential licensing issues later, etc.
Additional context
Telegraf is an open-source metrics pipeline agent, similar to the OpenTelemetry Collector. Telegraf has hundreds of input, output, and other plugins and is fairly popular today. Connecting these two tools would foster OpenTelemetry growth.
Telegraf is related to InfluxDB (a time series database; both are InfluxData products), but does not depend on InfluxDB.
Proposed Telegraf input plugin for OTLP/gRPC
Is your feature request related to a problem? Please describe.
I would like to use Telegraf agents and OpenTelemetry Collector agents together. I would like the translation to be consistent between implementations.
Describe the solution you'd like
OpenTelemetry Collector and Telegraf are both implemented in golang. Rather than let the two communities create their own mappings OTLP<->line-protocol, there should be one canonical mapping and one canonical golang implementation. In this way, improvements to otelcol benefit Telegraf, and visa versa.
A work-in-progress single package exists here.
With this single reference package, create the following:
Describe alternatives you've considered
Wrap otelcol in Telegraf execd input and execd output plugins. This is hard to package and configure.
Wrap Telegraf in an otelcol extension similar to the fluentbit extension. Hard to package and configure.
Fork portions of Telegraf into otelcol. This has already been done with windowsperfcountersreceiver. The result is more code, less attention to bug fixes, potential licensing issues later, etc.
Additional context
Telegraf is an open-source metrics pipeline agent, similar to the OpenTelemetry Collector. Telegraf has hundreds of input, output, and other plugins and is fairly popular today. Connecting these two tools would foster OpenTelemetry growth.
Telegraf is related to InfluxDB (a time series database; both are InfluxData products), but does not depend on InfluxDB.
Proposed Telegraf input plugin for OTLP/gRPC