DEV Community

Alex Spinov
Alex Spinov

Posted on

Grafana Tempo Has a Free API — Distributed Tracing at Scale

Grafana Tempo is a high-scale distributed tracing backend. It stores traces in object storage with no indexing cost — making it the cheapest tracing solution.

What Is Tempo?

Tempo is a distributed tracing backend by Grafana Labs. It only requires object storage (S3/GCS/MinIO) to operate — no Elasticsearch, no Cassandra.

Features:

  • No indexing required
  • S3/GCS/MinIO backend
  • Native Grafana integration
  • OpenTelemetry, Jaeger, Zipkin compatible
  • TraceQL query language

Quick Start

docker run -p 3200:3200 -p 4317:4317 grafana/tempo:latest -config.file=/etc/tempo/tempo.yaml
Enter fullscreen mode Exit fullscreen mode

HTTP API

# Get trace by ID
curl http://localhost:3200/api/traces/TRACE_ID

# Search traces
curl -G http://localhost:3200/api/search \
  --data-urlencode "q={resource.service.name=\"my-api\" && status=error}" \
  --data-urlencode "limit=20"

# TraceQL query
curl -G http://localhost:3200/api/search \
  --data-urlencode "q={span.http.status_code >= 500}"
Enter fullscreen mode Exit fullscreen mode

Send Traces (OTLP)

# OpenTelemetry collector sends to Tempo
# Configure OTLP exporter to localhost:4317
Enter fullscreen mode Exit fullscreen mode

Use Cases

  1. Distributed tracing — track requests across services
  2. Cost reduction — cheaper than Jaeger with Elasticsearch
  3. Debugging — find slow or failing traces
  4. SLA monitoring — service latency tracking
  5. Grafana dashboards — trace-to-log-to-metric correlation

Need web data at scale? Check out my scraping tools on Apify or email spinov001@gmail.com for custom solutions.

Top comments (0)