---
title: "Loggerhead vs Jaeger"
description: "An honest comparison of Loggerhead with Jaeger: Jaeger is the reference trace UI and runs anywhere; Loggerhead joins traces with logs and metrics on one time base, on one Mac."
source: "https://getloggerhead.com/docs/compare/jaeger/"
---

# Loggerhead vs Jaeger

> An honest comparison of Loggerhead with Jaeger: Jaeger is the reference trace UI and runs anywhere; Loggerhead joins traces with logs and metrics on one time base, on one Mac.

Jaeger is where many developers first saw a trace waterfall. It is excellent at that one thing. Here is where each tool stops.

## What Jaeger does better

- **Trace depth.** Jaeger compares two traces side by side, draws the service dependency graph from real spans, and has a decade of polish on the waterfall.
- **Runs anywhere.** One image for a laptop, or Cassandra, Elasticsearch, or ClickHouse behind it for production. Loggerhead is a macOS app.
- **Production storage.** Jaeger holds traces for a fleet. Loggerhead holds one Mac's worth.
- **Open source, end to end.** Jaeger is a CNCF project. Loggerhead is a paid app with a free tier.

## What Loggerhead does better

- **Three signals, not one.** Jaeger stores traces only. When a span shows a slow query, the log line that names the query lives somewhere else. In Loggerhead, click the span and read the logs it emitted, then open the metric that moved at the same second.
- **Nothing to run.** Jaeger's all-in-one image is one `docker run`, and its data is gone when the container stops. Loggerhead is one app, and the data is a DuckDB file that survives a restart.
- **Your coding agent reads it.** The MCP server inside the app hands the same traces, and the logs beside them, to Claude Code, Cursor, Codex, or Windsurf. See [MCP server setup](/docs/mcp-server/setup/).
- **Telemetry linting.** Loggerhead names the span that lost its trace context and the error with no trace ID, before production charges for the gap. See [What it checks](/docs/telemetry-linting/what-it-checks/).

## Side by side

| | Jaeger | Loggerhead |
| --- | --- | --- |
| Signals | Traces | Logs, metrics, and traces |
| Runs as | A container, or a cluster behind it | One native Mac app |
| Platforms | Anywhere a container runs | macOS 15 or later |
| Trace to log | Not in Jaeger | One click |
| Coding agent | None built in | MCP server built in, loopback only |
| Data after a restart | Gone, with the all-in-one image | Kept, in a DuckDB file |
| Production traffic | Yes | No |
| Price | Free and open source | Free tier; Pro is $39 once, Lifetime is $89 once |

## The honest limits

Loggerhead is not a production observability platform. It stores data in DuckDB on one Mac, and it has no Linux build. If you need a trace store for a fleet, or a dependency graph across fifty services, Jaeger is the right tool and Loggerhead is not. Use Loggerhead for the service you are editing now, and for a staging environment you want to read as one whole.

## Try it beside Jaeger

Both speak OTLP. Point your exporter at Loggerhead's receiver and read the same traces with their logs. [Download Loggerhead](/download) and read [Connect your first app](/docs/getting-started/connect-your-first-app/).
