Telegraf: Add Jaeger agent input

Created on 5 Aug 2019  路  5Comments  路  Source: influxdata/telegraf

Feature Request

Add Jaeger agent input (Thrift over UDP listener). Jaeger also supports Thrift/Zipkin and HTTP/JSON, but it's probably safe to skip those in a first pass.

https://www.jaegertracing.io/docs/1.13/architecture/#components

Proposal:

When InfluxDB is used as the storage service for Jaeger, it would be nice to send trace data through telegraf, when telegraf is already deployed in the measured cluster. This way, the user doesn't need to deploy Jaeger agents, just use existing telegraf instances.

The Jaeger agent also proxies a sampling HTTP/JSON API to the Jaeger collector, which would also be critical to add with this feature. Sampling is configured in the collector, so when a client asks an agent "what's my sampling strategy", the agent proxies and caches the collector response. Telegraf would be a useless proxy without this.

Use case:

When InfluxDB is used for tracing, this helps simplify the system config. The Jaeger input plugin is more important than an output plugin, because we can assume that, initially, most users of this plugin are storing their traces in InfluxDB.

areopentelemetry feature request

Most helpful comment

Thanks for making the issue Jacob, would love to get your help with this.

@danielnelson go ahead an assign to me. I've started some spike work to add InfluxDB support to the OpenTelemetry agent/collector service, so there will be some learnings there, I think.

All 5 comments

Related, an OpenTelemetry input plugin would look very similar. I'll just leave this as a comment here so that the discussion can happen around one issue.

Thanks for making the issue Jacob, would love to get your help with this.

The Jaeger agent also proxies a sampling HTTP/JSON API to the Jaeger collector, which would also be critical to add with this feature.

We don't have anything similar to this in Telegraf now. Would be the downside of not adding it be only that you can't tell what the sample strategy is? Who is the client who asks what the strategy is? What if we want to allow Telegraf to take over this strategy? Perhaps Telegraf (or Telegraf's) could be both the agent and the collector?

"Jaeger client" means an application instrumented with the Jaeger client library. There are about 10 such client libraries, one per supported language.

Alternatives to proxying the sampling API:

  • clients have sampling configured statically
  • clients are configured to query the Jaeger collector directly
  • Telegraf serves the sampling API directly, as @danielnelson mentioned

It's probably fine to replace the Jaeger collector with Telegraf, by including the sampling API. There may be other reasons this gets more complicated, need to think about it.

However, Jaeger is more of a standalone project, not a standard. OpenTelemetry is more of a standard+implementation, where it makes more sense to implement our own agent and collector using Telegraf.

Thanks for making the issue Jacob, would love to get your help with this.

@danielnelson go ahead an assign to me. I've started some spike work to add InfluxDB support to the OpenTelemetry agent/collector service, so there will be some learnings there, I think.

hello, i was wondering if there was any movement on the feature? i'm interested in OT and was hoping to see it integrate with influxdb

Was this page helpful?
0 / 5 - 0 ratings