Uptrace is an OpenTelemetry distributed tracing tool that monitors performance, errors, and logs. It uses OpenTelelemetry to collect data and ClickHouse database to store it.
Uptrace comes in 2 versions:
- This open source version which only supports distributed tracing.
- Cloud version that, in addition to tracing, also supports metrics.
⭐ Looking for a ClickHouse client? Uptrace uses go-clickhouse.
Features:
- OpenTelemetry protocol via gRPC (
:14317
) and HTTP (:14318
) - Zipkin protocol support on
http://uptrace:14318/api/v2/spans
. - Vector Logs support.
- Span/Trace grouping
- SQL-like query language
- Errors/logs support
- Percentiles
- Systems, services, and hostnames dashboards
- Multiple users/projects via YAML config
- Sampling/adjusted counts support
Roadmap:
- Email notifications
- OpenTelemetry Logs
- ClickHouse cluster support in the database schema
- ClickHouse S3 storage
- mTLS support
- Docker example to try Uptrace with a single command
- Installation guide with pre-compiled binaries for Linux, MacOS, and Windows
We also provide guides for the most popular frameworks:
What is the license?
The Business Source License is identical to Apache 2.0 with the only exception being that you can't use the code to create a cloud service or, in other words, resell it to others as a product. It is a more permissive license than, for example, AGPL, because it allows private changes to the code.
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.
Is the database schema stable?
No, we are still making changes to the database schema and hoping to switch to ClickHouse dynamic subcolumns when that feature is available.