Uptrace: open source APM

Uptrace is an open source APM tool that supports distributed tracing, metrics, and logs. You can use it to monitor applications and set up automatic alerts to receive notifications via email, Slack, Telegram, and more.

Open Source APM

APM Open Source

Uptrace is an open source APM that supports OpenTelemetry tracingopen in new window, metricsopen in new window, and logsopen in new window. You can use it to monitor applications and set up alerts to receive notifications via email, Slack, Telegram, and more.

Uptrace collects and analyzes data from a variety of sources, including servers, databases, cloud providers, monitoring tools, and custom applications. It provides a unified view of the entire technology stack, enabling you to monitor the performance, availability, and health of your systems in real time.

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.

Overview dashboard

You can also analyze application performance with a fast and intuitive query language. You have the full power of SQL at your disposal to get deep insights from your data.

Faceted filters

Fill the gaps left by tracing with modern metrics. Uptrace comes with pre-built dashboards for popular instrumentations and the ability to use Promql-like expressions to visualize metrics.

Metrics

What is OpenTelemetry?

Uptrace uses OpenTelemetryopen in new window to instrument code and collect traces, metrics, and logs. OpenTelemetry specifies how to collect and export telemetry data. With OpenTelemetry, you can instrument your application once and then add or change vendors without changing the instrumentation.

OpenTelemetry is available for most programming languages and provides interoperability across different languages and environments.

How Uptrace works?

Uptrace uses OpenTelemetry protocol to receive telemetry data directly from your application or from OpenTelemetry Collector.

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.

Uptrace has built-in alerting capabilities and can send notifications via email, Slack, Telegram, and more.

Uptrace comes with a modern Vue-based UI that helps you analyze and optimize application performance using a fast and intuitive query language.

Why Uptrace?

  • Single UI for traces, metrics, and logs.
  • SQL-like query language to aggregate spans.
  • Promql-like language to aggregate metrics.
  • Built-in alerts with notifications via Email, Slack, WebHook, and AlertManager.
  • Pre-built metrics dashboards.
  • Multiple users/projects via YAML config.
  • Single sign-on (SSO): Keycloak, Cloudflare, Google Cloud, and others.
  • Ingestion using OpenTelemetry, Vector, FluentBit, CloudWatch, and more.
  • Efficient processing: more than 10K spans / second on a single core.
  • Excellent on-disk compression: 1KB span can be compressed down to ~40 bytes.

Why not ...?

There are many distributed tracing toolsopen in new window available on the market and each of them offers varying features, integrations, and pricing models.

The choice of an OpenTelemetry backendopen in new window may depend on specific requirements, technology stack, and preferences of the organization or individual, but here are some open source APM projects that are both interesting and inspiring.

FeatureUptraceSkyWalkingSignozJaegerGrafana
Traces✔️✔️✔️✔️✔️
Metrics✔️✔️✔️✔️
Logs✔️✔️✔️✔️
OpenTelemetry✔️Adapter✔️✔️Adapter
StorageClickhouseBanyanDBClickHouseClickHouseCustom
Pluggable storage✔️✔️✔️
S3 storage✔️✔️
Alerting✔️✔️AlertManager✔️
Cloud version✔️✔️✔️
LicenseAGPLApacheApache+EEApacheAGPL
Demolinkopen in new windowlinkopen in new windowlinkopen in new window

SkyWalking

SkyWalkingopen in new window is an open source distributed tracing system designed to monitor and diagnose complex microservices-based architectures. It is an Apache project.

SkyWalking is often used in cloud-native and microservices-based architectures to gain visibility into application performance and troubleshoot issues.

The SkyWalking storage is pluggable so you can use BanyanDB or ElasticSearch to store traces, metrics, and logs. Uptrace uses ClickHouse database which is more mature than BanyanDB and more efficient than ElasticSearch.

SkyWalking does not directly support OpenTelemetry protocol and instead provides an OpenTelemetry adapter.

SkyWalking has an official demoopen in new window (skywalking:skywalking) so you can easily compare it with the Uptrace demoopen in new window yourself.

Signoz

Signoz is an emerging tool in the observability space that provides distributed tracing capabilities to improve monitoring and troubleshooting in microservices architectures.

  • Both projects use Go, OpenTelemetry, and ClickHouse.
  • Both projects support all 3 major observability signals: traces, metrics, and logs.
  • Uptrace uses the AGPL license. Signoz uses dual licensing: Apache 2.0 and Enterprise License.
  • Uptrace has built-in alerting capabilities, but Signoz uses AlertManager for notifications.
  • Uptrace provides span grouping and optimizes ClickHouse schema for filtering and analyzing similar spans. Signoz uses a more service-oriented DB schema design.
  • Uptrace provides preconfigured OpenTelemetry distributions, but Signoz provides instructions on how to configure OpenTelemetry SDKs.

Jaeger

Jaegeropen in new window is an open-source end-to-end distributed tracing system. It is designed to monitor and troubleshoot complex microservices-based architectures.

Jaeger is widely adopted in the cloud-native community and is used to monitor and diagnose complex microservices architectures.

Jaeger has a plugin to store data in ClickHouse, but it abstracts storage access which allows to support multiple backends at small performance cost.

Jaeger does not support metrics, charts, percentiles, and has limited filtering capabilities.

See Jaeger vs OpenTelemetryopen in new window to learn how projects can be used together.

Grafana

Grafana is an open source analytics and visualization platform for monitoring and analyzing data from multiple sources. It provides a flexible and customizable interface for creating dashboards, charts, and graphs to display and analyze data in real time.

Grafana is primarily a visualization and analytics platform focused on displaying data from various sources. Configuring data sources, building queries, and designing complex dashboards can take time and effort to master.

Grafana was originally designed to visualize time series data, and while it can display traces and logs, it lacks some trace-specific features that dedicated tracing tools can provide.

Open Source

All Uptrace code is open and battle-tested in production by thousands of happy users:

What's next?

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

Last Updated: