Skip to content

[Jaeger v2] Add Kafka exporter and receiver #4868

@yurishkuro

Description

@yurishkuro

Part of #4843

Objective

  • Demonstrate using Kafka exporter & receiver from OTEL Collector Contrib with jaeger-v2 as a replacement for jaeger-collector / jaeger-ingester
  • Document gaps in backwards compatibility

Design

We want to rely on OTel's usual pipeline setup, which should allow us to use OTel's Kafka receiver and exporter without changes. For example, this is how it might look

Replacement for jaeger-collector

jaeger-v2 --config collector-with-kafka.yaml
# collector-with-kafka.yaml
service:
  # extensions: [jaeger_storage, jaeger_query] # don't really need these for collector with Kafka
  pipelines:
    traces:
      receivers: [otlp, jaeger, zipkin]
      processors: [batch]
      exporters: [kafka]  # using standard Kafka exporter as the only one

Replacement for jaeger-ingester

jaeger-v2 --config ingester.yaml
# ingester.yaml
service:
  extensions: [jaeger_storage, jaeger_query]
  pipelines:
    traces:
      receivers: [kafka] # using standard Kafka receiver as the only one
      processors: [batch]
      exporters: [jaeger_storage_exporter]  # same as in the default cmd/jaeger-v2/config.yaml

Steps

  • Add wiring and sample configuration to prototype Add jaeger-v2 single binary based on OTEL collector #4766
  • Test backwards compatibility:
    • Sending spans in Jaeger format to Kafka
    • Receiving spans in all formats that jaeger-ingester supports today
  • Document gaps
  • Provide reproducible integration test scripts (manually run)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions