Uptrace
OpenTelemetry-based tracing, metrics, and logs tool
Uptrace is an open-source observability tool that uses OpenTelemetry to collect distributed traces, metrics, and logs. It stores data in ClickHouse and provides a clean UI for analyzing application performance.
Key features
- Distributed tracing
- Metrics and logs support
- ClickHouse storage
- OpenTelemetry-native
Pros & cons
Strengths
- Efficient ClickHouse backend
- Easy to deploy
Trade-offs
- BSL license restrictions
- Smaller community
Uptrace replaces
Last reviewed Sep 13, 2026 · 761 words
Read the licence before the README. Uptrace is BSL-1.1, which is source-available rather than open source: you can run it for yourself and your company without paying, but you cannot offer it to third parties as a hosted service, and each release only converts to an open-source licence after its change date. For a homelab or an internal engineering team that changes nothing in practice. For a company whose product might one day include observability for customers, it is a hard stop, and the licences for self-hosters piece explains why that clause matters more than it looks. Everything else about Uptrace is good news.
OpenTelemetry-native means no vendor agent
Uptrace does not ship its own SDKs. Your services use the standard OpenTelemetry libraries and export OTLP to it, which means the day you switch backends nothing in the application changes. Traces, metrics and logs all arrive through the same two ports: 14317 for OTLP over gRPC and 14318 for OTLP over HTTP, which also serves the web UI. The UI is the reason people pick it over stitching together Jaeger plus Grafana: spans, service graphs, metric dashboards and log search in one place, with a query language that reads more like SQL than PromQL.
The storage split is telemetry in ClickHouse and metadata (users, projects, dashboards, alert rules) in PostgreSQL. So "easy to deploy" in the catalogue's pros means three containers rather than the ten a Grafana stack of Tempo, Loki and Mimir would need, not one.
Three containers, one YAML
services:
clickhouse:
image: clickhouse/clickhouse-server:latest
volumes:
- ./ch-data:/var/lib/clickhouse
postgres:
image: postgres:16
environment:
- POSTGRES_USER=uptrace
- POSTGRES_PASSWORD=uptrace
- POSTGRES_DB=uptrace
volumes:
- ./pg-data:/var/lib/postgresql/data
uptrace:
image: uptrace/uptrace:latest
volumes:
- ./uptrace.yml:/etc/uptrace/uptrace.yml
ports:
- "14317:14317"
- "14318:14318"
depends_on:
- clickhouse
- postgres
The uptrace.yml declares the ClickHouse and Postgres DSNs, at least one project with a secret token, and the initial admin user. The project token becomes the DSN your services authenticate with. With the OpenTelemetry SDK that is two environment variables:
OTEL_EXPORTER_OTLP_ENDPOINT=http://uptrace.lan:14318
OTEL_EXPORTER_OTLP_HEADERS=uptrace-dsn=http://[email protected]:14318?grpc=14317
The catalogue's 512 MB is for Uptrace alone; ClickHouse wants at least another 1 to 2 GB to be pleasant, so plan 3 GB for the trio on a box that does other things. Kubernetes users get a Helm chart from the project, and the single binary runs on a plain VM if you would rather point it at managed ClickHouse and Postgres; the compose route is still the one I would start with.
Disk is where the surprise lives
ClickHouse compresses telemetry well, but a chatty microservice emitting spans for every request can add several GB a day, my estimate from a modest deployment. Metrics are cheap by comparison and logs sit in between. Set the retention TTLs in uptrace.yml before pointing production at it, and put ch-data on a disk you have measured. Sampling in the OpenTelemetry collector, in front of Uptrace, is the second lever, and is the same lever you would pull with any backend. If you are tracing LLM calls, which produce large spans, the LLM observability piece covers what to keep.
SigNoz, Grafana or Jaeger
| You want | Pick |
|---|---|
| The same ClickHouse-backed all-in-one under an open-source core licence | SigNoz |
| Traces only, smallest footprint, no UI opinions | Jaeger |
| Dashboards over data you already have in Prometheus and Loki | Grafana |
| A cleaner UI than SigNoz and a SQL-flavoured query language, BSL acceptable | Uptrace |
SigNoz is the bigger project and, for most self-hosters, the safer pick: larger community, MIT-licensed core, and the same OTLP-in, ClickHouse-under design. Uptrace's edge is polish and a query model that engineers who think in SQL take to quickly. Both are real Datadog replacements for a team that can run ClickHouse; neither is a Datadog replacement for a team that cannot.
What I'd do
Internal use, team of engineers, ClickHouse experience or willingness to get it: Uptrace, the three-container compose above, retention set to 7 to 14 days, sampling in the collector from day one, on a host with 4 GB to spare. Any doubt about the BSL clause, or a preference for the larger community: SigNoz, same architecture, and you lose little. Either way, instrument with plain OpenTelemetry so the backend stays a swappable part rather than a commitment.
Compare Uptrace
24 head-to-head comparisons.
- Uptrace vs Netdata
- Uptrace vs Grafana
- Uptrace vs Prometheus
- Uptrace vs Glances
- Uptrace vs InfluxDB
- Uptrace vs Apache SkyWalking
- Uptrace vs Jaeger
- Uptrace vs Kibana
- Uptrace vs cAdvisor
- Uptrace vs VictoriaMetrics
- Uptrace vs Thanos
- Uptrace vs Pinpoint APM
- Uptrace vs HyperDX
- Uptrace vs Coroot
- Uptrace vs Hertzbeat
- Uptrace vs Pulse Monitor
- Uptrace vs Zabbix
- Uptrace vs Graphite
- Uptrace vs Cortex
- Uptrace vs Grafana Mimir
- Uptrace vs Monitoror
- Uptrace vs Pushgateway
- Uptrace vs Robusta
- Uptrace vs Grafana Beyla
Similar monitoring & status apps
Uptime Kuma
Monitoring & StatusEasy self-hosted uptime monitoring tool
Replaces Pingdom, UptimeRobot
Netdata
Monitoring & StatusReal-time per-second infrastructure monitoring
Replaces Datadog, New Relic
Grafana
Monitoring & StatusOpen observability dashboards and visualization
Replaces Datadog
Prometheus
Monitoring & StatusMetrics-based monitoring and alerting toolkit
Replaces Datadog
Glances
Monitoring & StatusCross-platform system monitoring at a glance
Replaces Datadog
InfluxDB
Monitoring & StatusPurpose-built time series database for metrics and events
Replaces Datadog, AWS Timestream