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 GitHubopen in new window.

OpenTelemetry APM

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.

Why Uptrace?

  • 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.

Best-in-class OpenTelemetry

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 provides pre-configured OpenTelemetry SDKs for Go, Python, JavaScript, Ruby, Java, and PHP.

All-in-one APM

Uptrace is an all-in-one APM that provides a single UI for OpenTelemetry tracingopen in new window, OpenTelemetry metricsopen in new window, and logs.

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.

Uptrace dashboard

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.

Uptrace filters

OpenTelemetry Demo

In less than 5 minutes, you try Uptrace with OpenTelemetry Astronomy Shop demo appopen in new window, 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/2open in new window

If something is not working, check OpenTelemetry Collector logs:

docker-compose logs otelcol

Instrumentations

OpenTelemetry Instrumentationsopen in new window 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:

What's next?

Next, get started with Uptrace by downloading Uptrace binary or creating a cloud account.

Last Updated: