Uptrace is a distributed tracing system that uses OpenTelemetry to collect data and ClickHouse database to store it. ClickHouse is the only dependency.
Features:
- OpenTelemetry protocol via gRPC (
:14317
) and HTTP (:14318
) - Span/Trace grouping
- SQL-like query language
- Percentiles
- Systems dashboard
Roadmap:
- Errors/logs support
- More dashboards for services and hosts
- ClickHouse cluster support
- TLS support
- Sampling/adjusted counts support
- Improved SQL support using CockroachDB SQL parser
- Docker example allows to run Uptrace with a single command.
- Installation guide with pre-compiled binaries for Linux, MacOS, and Windows.
To compile and run Uptrace locally, you need Go 1.18 and ClickHouse.
Step 1. Create uptrace
ClickHouse database:
clickhouse-client -q "CREATE DATABASE uptrace"
Step 2. Reset ClickHouse database schema:
go run cmd/uptrace/main.go ch reset
Step 3. Start Uptrace:
go run cmd/uptrace/main.go serve
Step 4. Open Uptrace UI at http://localhost:14318
Uptrace will monitor itself using uptrace-go OpenTelemetry distro. To get some test data, just reload the UI few times.
You can also start the UI locally:
cd vue
pnpm install
pnpm serve
And open http://localhost:19876
What is the license?
The license is identical to Apache 2.0 with the only exception being that you can't use the code to create a cloud service. You can learn more about BSL here.
Are there 2 versions of Uptrace?
Yes, having 2 separate versions allows us to have minimal number of dependencies (ClickHouse) and keep the codebase small and fun to work with.