Uptrace is an open source Application Performance Monitoring (APM) tool designed for developers and DevOps teams who need deep visibility into their distributed systems without vendor lock-in or high costs. Built on OpenTelemetry for data collection and ClickHouse for efficient storage, Uptrace unifies traces, metrics, and logs into a single interface with powerful querying and alerting. It targets organizations running microservices or cloud-native applications who want full control over their observability stack while reducing infrastructure expenses by up to 90% compared to proprietary solutions. With built-in support for Prometheus, Grafana, and multiple ingestion pipelines, Uptrace bridges the gap between modern observability standards and practical self-hosted deployment.
What You Get
- Unified UI for traces, metrics, and logs - Single interface to explore distributed traces, time-series metrics, and structured logs with correlated views for faster root cause analysis.
- 50+ pre-built dashboards - Automatically generated visualizations for common services and infrastructure metrics as soon as data arrives, reducing setup time.
- SQL-like span querying - Use SQL to aggregate and filter trace spans by attributes, duration, or error status (e.g., SELECT * FROM spans WHERE service_name = ‘api’ AND duration > 1000ms).
- PromQL-like metric querying - Write expressions like sum(http_requests_total) by (status_code) to analyze metrics without learning a new language.
- OpenTelemetry, Prometheus, and Vector ingestion - Native support for collecting data via OpenTelemetry SDKs, Prometheus scrape endpoints, and Vector agents without custom plugins.
- ClickHouse-based storage with 95% compression - Spans compressed from ~1KB to ~40 bytes on disk, enabling billion-span datasets on a single server.
- Alerting with multiple notifications - Configure rules based on metrics or trace errors and trigger alerts via Email, Slack, Webhook, or AlertManager.
- Grafana compatibility - Use Uptrace as a data source for Tempo (traces) and Prometheus (metrics) in your existing Grafana dashboards.
- SSO via OpenID Connect - Integrate with Keycloak, Google Cloud, or Cloudflare for centralized user authentication and project access control.
- YAML-based user and project management - Define users, projects, and permissions declaratively in configuration files for infrastructure-as-code workflows.
- High ingestion performance - Handles over 10,000 spans per second on a single CPU core, suitable for high-throughput environments.
Common Use Cases
- Building a multi-tenant SaaS dashboard with real-time analytics - Use Uptrace to monitor latency and error rates across tenant-specific services, correlate traces with usage metrics, and trigger alerts when SLAs are breached.
- Creating a mobile-first e-commerce platform with 10k+ SKUs - Track distributed requests from frontend to inventory and payment microservices, identify slow database queries via span analysis, and visualize throughput trends.
- Problem: High latency in microservices with no visibility → Solution: Deploy Uptrace to correlate traces across services, use SQL queries to find slow endpoints, and reduce P95 latency by 40%
- DevOps teams managing microservices across multiple cloud providers - Ingest logs from AWS CloudWatch, metrics from Prometheus in Azure, and traces via OpenTelemetry from GKE—all into a single Uptrace instance for unified monitoring.
Under The Hood
Uptrace is a unified observability platform designed to provide end-to-end monitoring capabilities by integrating tracing, metrics, logs, and alerting into a single solution. It leverages industry-standard tools such as OpenTelemetry, ClickHouse, and Grafana to deliver a powerful yet accessible monitoring experience for modern infrastructure and applications.
Architecture
Uptrace follows a monolithic architecture with a modular structure that emphasizes clear separation between data storage, processing, and visualization layers. The system is organized into distinct modules for configuration, command-line tools, and dashboard templates.
- Emphasis on layered architecture with well-defined data flow between storage, processing, and visualization components
- Use of configuration-driven dashboards and templating for extensibility and reusability
- Strong integration patterns through API connections and structured data formats
- Modular organization that supports component-based development and deployment
Tech Stack
The platform is built primarily using Go for backend services, complemented by Vue.js and TypeScript for the frontend interface.
- Built with Go as the core backend language, ensuring performance and reliability in observability workflows
- Frontend utilizes Vue.js with TypeScript for type safety and responsive UI components
- Integrates extensively with ClickHouse, Prometheus, OpenTelemetry, and Grafana for comprehensive observability
- Employs Makefiles and Docker for streamlined build automation and flexible deployment options
Code Quality
The codebase reflects a mixed state of quality, with some structured components but notable gaps in testing and consistency.
- Limited test coverage across core modules, resulting in reduced confidence in code reliability
- Inconsistent error handling practices and lack of standardized patterns across files
- Code linting is configured, but style and naming conventions vary significantly
- Some efforts toward modular organization are present, though not consistently applied
What Makes It Unique
Uptrace stands out through its integration of multiple observability tools and provision of pre-built templates for rapid deployment.
- Deep integration of OpenTelemetry, Grafana, and ClickHouse enables a seamless observability stack for diverse environments
- Extensive collection of out-of-the-box dashboard templates reduces time-to-insight for popular technologies like Go, Java, and Kubernetes
- Innovative use of ClickHouse as both storage backend and query engine for high-performance log and metric analysis
- Comprehensive configuration management through YAML-based templates and Docker Compose simplifies multi-environment deployments