liveBook · Manning

Jaeger

As explained in Cloud Observability in Action

Jaeger is an open-source distributed tracing system for collecting, storing, querying, and visualizing trace data.

Jaeger is an open-source distributed tracing system that ingests, stores, queries, and visualizes traces. Its web UI helps users search traces, inspect details, and view microservice architecture. section 6.2.1

Tracing a microservices request

An OpenTelemetry collector receives traces from a frontend and two backend services, sends them to Jaeger, and stores spans in ClickHouse. Opening Jaeger at port 16686 exposes trace search and detailed trace views, including requests filtered by tags such as http.status_code=404. section 6.2.1

Jaeger’s main roles and operational choices include:

  • Collector: receives traces from OpenTelemetry or Jaeger agents, validates and enriches them, and writes them to storage. section 6.2.1
  • Query service and UI: retrieve traces, support search and analysis, and display a microservice graph. section 6.2.1
  • Ingester: reads traces from Apache Kafka and writes them to a storage backend; the optional agent sends traces over UDP. section 6.2.1
  • Storage ranges from in-memory all-in-one experimentation to Apache Cassandra, Elasticsearch/OpenSearch, and ClickHouse through storage integrations. section 6.2.1
  • Open-source alternatives include Zipkin and Grafana Tempo, so backend selection should consider community activity, storage, integrations, and operational needs. section 5.4.2

Jaeger also supports signal correlation: an alert can lead from Prometheus metrics to a trace ID, then from Jaeger trace errors and duration data to service logs. This workflow helps confirm hypotheses during incident response. section 1.5.2

Listing 2.11 Using docker-compose.yaml to stand up Jaeger and Grafana
version: "3.5"
networks:
  jaeger:
services:
  jaeger:
    image: jaegertracing/all-in-one:latest
    ports:
    - "6831:6831/udp"
    - "16686:16686"
    - "14268:14268"
    networks:
    - jaeger
  grafana:
    image: grafana/grafana:latest
    ports:
    - "3000:3000"
    networks:
    - jaeger

Use the Docker Compose manifest to run Jaeger’s all-in-one distribution alongside Grafana, expose the Jaeger UI, and connect Jaeger as a Grafana data source. section 2.5.2

How Cloud Observability in Action covers it

How deep it goes
Explains components, ingestion paths, storage integrations, setup, and trace exploration, but defers detailed correlation treatment.
Examples
Uses Docker Compose, an echo service, Grafana, OpenTelemetry, microservices, ClickHouse, trace tags, and a 404 trace search.
What it assumes
Assumes basic microservices and observability knowledge while demonstrating OpenTelemetry ingestion and trace exploration concretely.
What you can do after
Operate/configure Jaeger locally, connect it to Grafana, route OpenTelemetry traces, inspect trace details, and correlate traces with metrics and logs.
How it connects
Connects distributed tracing with OpenTelemetry, Grafana, Prometheus, logs, Kafka, ClickHouse, Elasticsearch, OpenSearch, Cassandra, and Zipkin.

Also explained in

Compare how 4 books explain Jaeger →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Cloud Observability in Action. The section links point to the parts of the book it draws on.