explaingit

jaegertracing/jaeger

Analysis updated 2026-06-21

22,767GoAudience · ops devopsComplexity · 4/5Setup · hard

TLDR

Jaeger is a distributed tracing tool that tracks a user request as it travels through multiple services, showing you exactly where slowdowns or errors occurred so you can debug complex systems.

Mindmap

mindmap
  root((jaeger))
    What it does
      Distributed tracing
      Request tracking
    How it works
      Spans per service
      Collector stores data
      Web UI to search
    Use cases
      Debug slow requests
      Find error source
      Compare deployments
    Tech
      Go
      OpenTelemetry
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Pinpoint which microservice is causing a slow checkout flow by visualizing the full request trace across every service it touches.

USE CASE 2

Set up distributed tracing for a Kubernetes-based application so every cross-service call is automatically recorded and searchable.

USE CASE 3

Debug intermittent errors in a payment or authentication service by finding the exact span where failures occur in the Jaeger UI.

USE CASE 4

Compare trace timelines before and after a deployment to confirm a performance fix actually reduced latency.

What is it built with?

GoOpenTelemetryKubernetes

How does it compare?

jaegertracing/jaegermicro/go-microargoproj/argo-cd
Stars22,76722,74722,813
LanguageGoGoGo
Setup difficultyhardhardhard
Complexity4/54/54/5
Audienceops devopsdeveloperops devops

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1day+

Requires instrumenting your application code with OpenTelemetry and running Jaeger infrastructure (collector, storage backend), Kubernetes deployment adds additional complexity.

License not described in the explanation.

In plain English

Jaeger is a distributed tracing system, a tool for understanding what happens inside complex software systems made up of many services working together. When a user request flows through multiple services (for example, a web app that calls a database, an authentication service, and a payment processor), something can go wrong or be slow at any point. Tracing lets you follow that request's journey from start to finish and see exactly where time was spent or where errors occurred. The problem it solves: in traditional single-application software, debugging is straightforward, you look at one log file. In modern systems made of many interconnected services (called microservices), a single user action might touch dozens of services, and finding the source of a slowdown or failure is like tracking a package through a supply chain with no tracking number. Jaeger gives you that tracking number. How it works: your application code is instrumented (meaning small pieces of code are added) to record "spans", units of work with start times, end times, and metadata. These spans are sent to a Jaeger collector, which stores them. You can then use Jaeger's web UI to search for traces, visualize the full timeline of a request, and pinpoint which service caused a delay or error. You would use Jaeger when operating or debugging a system built from multiple services, especially one deployed with Kubernetes or similar infrastructure. The tech stack is Go, with OpenTelemetry support for instrumentation.

Copy-paste prompts

Prompt 1
Show me how to instrument a Go HTTP service with OpenTelemetry so it sends trace spans to a Jaeger collector, include the setup code and a sample handler.
Prompt 2
I have a slow API endpoint that calls three internal services. Show me how to read a Jaeger trace to find which service is adding the most latency.
Prompt 3
Walk me through deploying Jaeger on Kubernetes using the official Helm chart and connecting it to an existing OpenTelemetry-instrumented application.
Prompt 4
How do I add custom attributes to a Jaeger span in Python, such as the user ID and the database query being executed, to make traces more useful?
Prompt 5
My Jaeger UI shows a trace with a large gap between two spans, what does that mean and how do I investigate whether it is a network issue or a queue wait?

Frequently asked questions

What is jaeger?

Jaeger is a distributed tracing tool that tracks a user request as it travels through multiple services, showing you exactly where slowdowns or errors occurred so you can debug complex systems.

What language is jaeger written in?

Mainly Go. The stack also includes Go, OpenTelemetry, Kubernetes.

What license does jaeger use?

License not described in the explanation.

How hard is jaeger to set up?

Setup difficulty is rated hard, with roughly 1day+ to a first successful run.

Who is jaeger for?

Mainly ops devops.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub jaegertracing on gitmyhub

Verify against the repo before relying on details.