Distributed tracing with Apache Kafka and Jaeger

Click for: original source

An article by Aaron Burk about distributed systems. Kafka decouples consumers and producers (meaning applications do not directly communicate with each other) it can be a challenge to illustrate exactly how data flows through your system. Author demonstrates how Jaeger is up to the challenge while navigating the pitfalls of an example project.

Jaeger is an open source distributed tracer. It records and illustrates the life cycle of transactions as they propagate through a distributed system. Jaeger does the heavy lifting and ultimately paints the pretty picture, while OpenTracing provides the APIs I will use to interact with it.

The article is divided into:

  • What is Jaeger? What is OpenTracing?
  • Example project
  • Configuring Jaeger tracing
  • Configuring Jaeger tracing: Spring Kafka Consumer/Producer
  • Configuring Jaeger tracing: Kafka Consumer/Producer
  • Initial Jaeger tracing result
  • Finish tracing configuration: Headers
  • Finish tracing configuration: Kafka Streams first consumer
  • Finish tracing configuration: Kafka Streams dead letter queue
  • Finish tracing configuration: Kafka and HTTP
  • Final Jaeger tracing result

Extremely detailed detailed overview with configuration examples and screen-grabs of final tracing result. Well worth your time!

[Read More]

Tags programming monitoring servers devops apache