Uptrace
Demo
Distributed tracing

Find the span that broke your request

When a request fails across five services, finding the root cause should take minutes, not hours. Uptrace gives you a full trace from entry point to database call, correlated with logs and metrics, built on OpenTelemetry, with no vendor lock-in.

14-day free trial · No credit card required

Debug faster with a unified view of your stack

Navigate from a failing request to the exact span where it broke, across every service, database call, and external dependency

  • Full trace waterfall showing every span across all services
  • Real-time error rate and latency percentiles per operation
  • Filter by service, status, or any attribute to isolate issues
  • Cross-service transaction tracing with detailed timelines
  • Group similar errors automatically to surface recurring issues

Powered by OpenTelemetry

Uptrace is built on the OpenTelemetry standard: instrument once, no proprietary agents, no lock-in

  • Native OpenTelemetry protocol (OTLP) support over gRPC and HTTP
  • Auto-instrumentation for 20+ languages and frameworks
  • Compatible with any OTel SDK: Go, Java, Python, Node.js, and more
  • Accepts Jaeger spans via the OTel Collector, no re-instrumentation needed
  • Vendor-neutral: switch backends without touching your application code

Automatic log correlation

Stop jumping between logs and traces. Uptrace connects them automatically so you always have full context

  • Log-to-trace correlation using trace IDs injected at collection time
  • Unified search across logs, traces, and metrics in one query
  • Contextual log exploration within the trace waterfall timeline
  • Support for structured and unstructured log formats
  • Span-level error details with stack traces and relevant attributes

Map service dependencies in real time

Understand how your services depend on each other with interactive service maps and end-to-end request flow visualization

  • Interactive service topology map with real-time health status
  • End-to-end request flow visualization across all dependencies
  • Upstream and downstream impact analysis for any service
  • Identify which service is causing downstream failures
  • Click any node to drill into its traces and error rate

Monitor service health and deployment impact

Track the vital signs of every service and see exactly when a deployment changed your error rate or latency

  • Per-service dashboard with p50, p90, p99 latency and error rate
  • Service throughput tracked alongside latency for every operation
  • Top slowest operations per service: drill into any for detailed traces
  • Real-time alerts for latency increases and error rate changes
  • Trend analysis across any custom time window

Control trace volume and cost

High-traffic services can generate millions of spans per minute. Sampling lets you keep the traces that matter and drop the rest, without losing visibility into errors

  • Head-based sampling: decide at trace start using TraceIDRatioBased or rules
  • Tail-based sampling: keep 100% of error and slow traces, sample the rest
  • Drop health checks, internal probes, and noise at the Collector level
  • Per-service and per-endpoint sampling rates configurable in OTel Collector
  • Dropped spans cost $0.01/GB; sampling never means losing error visibility

Better together

Each signal is more powerful when correlated with the others. Uptrace stores traces, logs, and metrics in one place, no tool-switching, no data gaps.

Common questions, clear answers

What is distributed tracing?
Distributed tracing records the path of a request as it flows through your services. Each step is a span: a unit of work with timing, status, and attributes. When something breaks, you follow the trace to find exactly which service, database query, or external call failed.
How is Uptrace different from Jaeger or Zipkin?
Jaeger and Zipkin store traces only. Uptrace stores traces, metrics, and logs together, so you never need to switch tools to correlate a slow trace with an infrastructure metric or a log line. Alerting and dashboards are also built in.
Can I use Uptrace alongside Prometheus?
Yes. The OpenTelemetry Collector can scrape your existing Prometheus endpoints and forward metrics to Uptrace alongside traces and logs. Uptrace also exposes a Prometheus-compatible query endpoint, so existing Grafana dashboards can read from it.
How long does it take to send my first trace?
Most applications are up and running in under 10 minutes using OpenTelemetry auto-instrumentation. For Go, Java, Python, and Node.js, a single import and a few lines of configuration is all that is needed to start sending traces.
Do I need to re-instrument if I switch from Datadog or New Relic?
If you already use OpenTelemetry SDKs, switching is just a configuration change: update the exporter endpoint and your token. If you use a vendor-specific agent, you will need to switch to an OTel SDK, but this is a one-time migration that keeps you vendor-neutral going forward.

Ready to transform your observability?

Deploy in minutes with Docker. Open source. Fixed pricing. Your data stays on your infrastructure.

Start tracing free

14-day free trial · No credit card required