Uptrace: OpenTelemetry APM at scale
OpenTelemetry specifies how to collect and export telemetry data such as traces, metrics, and logs, but it does not provide a backend to store and visualize the collected data.
Uptrace is such a backend that you can use to monitor applications and set up alerts to receive notifications via email, Slack, Telegram, and more. The code is available on GitHub.
Uptrace is a source-available application performance monitoring tool built from the ground up to fully follow OpenTelemetry specification and guidelines.
Uptrace efficiently stores the data in ClickHouse database which, when compared with Elasticsearch or Cassandra, allows to significantly reduce storage requirements and improve query performance.
- Single UI for traces, metrics, and logs.
- Efficient ingestion: more than 10K spans / second on a single core.
- Excellent on-disk compression with ZSTD, for example, 1KB span can be compressed down to <40 bytes.
- S3 storage support with ability to automatically upload cold data to S3-like storage or HDD.
- Automatic alerts with notifications via email, Slack, Telegram, and more.
Uptrace is fully compatible with OpenTelemetry and natively supports OpenTelemetry protocol (OTLP) either via gRPC (OTLP/gRPC) or HTTP (OTLP/HTTP) transports.
You can send OpenTelemetry data to Uptrace with these options:
Uptrace allows to monitor your whole application stack on a compact and informative dashboard. You get a quick overview for all your services, hosts, and systems.
You can also analyze application performance using a fast and intuitive query language. You have the full power of SQL at your disposal to get deep insights from your data.
In less than 5 minutes, you try Uptrace with OpenTelemetry Astronomy Shop demo app, a microservice-based distributed system intended to illustrate the implementation of OpenTelemetry in a near real-world environment.
Step 1. Download the opentelemetry-demo using Git:
git clone https://github.com/uptrace/opentelemetry-demo.git cd opentelemetry-demo
Step 2. Start the demo:
docker compose up --no-build
Step 3. Make sure Uptrace is running:
docker-compose logs uptrace
Step 4. Open Uptrace UI at http://localhost:14318/overview/2
If something is not working, check OpenTelemetry Collector logs:
docker-compose logs otelcol
OpenTelemetry Instrumentations are plugins for popular frameworks and libraries that use OpenTelemetry API to record important operations, for example, HTTP requests, DB queries, logs, errors, and more.
You can check the following tutorials to get started with the most popular frameworks:
Next, get started with Uptrace by downloading Uptrace binary or creating a cloud account.