ClickHouse

Version2.dev (preview)

  • Supported ClickHouse versions: 25.x

ClickHouse is a column-oriented analytical database optimized for high-throughput ingestion and fast queries over large datasets. Its columnar storage, data compression, and vectorized query execution make it well-suited for storing and analyzing trace data at scale.

ClickHouse also has the following officially supported resources available from the community:

Configuration

A sample configuration for Jaeger with ClickHouse backend is available in the Jaeger repository: config-clickhouse.yaml. In the future the configuration documentation will be auto-generated from the schema. Meanwhile, please refer to config.go as the authoritative source.

Schema

All SQL definitions are available in the sql/ directory in the Jaeger repository.

All tables are automatically created on startup when create_schema: true is set. Auxiliary tables are populated via materialized views that transform and insert data whenever new spans arrive.

Quick Start

From the Jaeger repository root:

1. Start ClickHouse

docker compose -f docker-compose/clickhouse/docker-compose.yml up -d

This starts a ClickHouse server on ports 9000 (native) and 8123 (HTTP) with database jaeger.

2. Run Jaeger

go run ./cmd/jaeger --config cmd/jaeger/config-clickhouse.yaml --feature-gates=storage.clickhouse

The config enables automatic schema creation (create_schema: true), so tables and materialized views are created on startup.

3. Generate Test Data

In a separate terminal:

go run ./cmd/tracegen -duration 10s -workers 3 -pause 250ms

Then open the Jaeger UI at http://localhost:16686.