jaegertracing / jaeger

CNCF Jaeger, a Distributed Tracing Platform
https://www.jaegertracing.io/
Apache License 2.0
20.34k stars 2.43k forks source link

Streaming ingestion support in the collector #212

Closed yurishkuro closed 5 years ago

yurishkuro commented 7 years ago

@hzariv you mentioned a lack of streaming support as an issue, could you please elaborate? Do you mean streaming ingestion of spans (e.g. from Kafka), or a stream coming out of collectors?

Note that we actually have support for both (subject to the exact format) that we can open source if there's a demand. The streaming ingestion somewhat goes against the design of Jaeger, since we want an active bi-directional communication between clients-agent-collector, but it's certainly possible to add.

hzariv commented 7 years ago

I mean as a transport similar to Zipkin (https://github.com/openzipkin/zipkin-reporter-java). I understand jaeger uses UDP based agent but we already use Kafka for centralized logging and it would be nice to use the same infrastructure to report spans. Hope this clarifies :-)

yurishkuro commented 7 years ago

@hzariv there are a few reasons we decided against a streaming ingestion model, Kafka or others:

As I mentioned, we do have the ability to steam spans out of collectors. We are building a post-collection data pipeline that will provide various aggregates on top of standalone trace data.

Internally we do ingest some Kafka streams that contain certain enrichment data generated by tools other than Jaeger clients, such as haproxy/routing logs, or tracing data from mobile apps.

At some point we can implement (or better, accept a PR) ingestion of spans from Kafka, mostly for compatibility with existing Zipkin instrumentation / installation.

fgcui1204 commented 7 years ago

Looking forward to support this.

yurishkuro commented 5 years ago

This is supported by jaeger-ingestor.