Distributed Tracing

Tempo

Backend per trace OpenTelemetry/Jaeger/Zipkin. 100% sampling, TraceQL, correlazione automatica con log e metriche.

TEMPO · open source
Tempo logo
Cos'è

Trace al 100% senza svenire sui costi.

Tempo è il backend distributed tracing di Grafana Labs. Object storage based, niente database costoso da gestire, supporto nativo a OTLP, Jaeger, Zipkin. Il trick: index minimo (trace ID e poco altro), tutto il resto compresso su S3.

Risultato: puoi salvare il 100% dei trace senza dover sampling aggressivo. Costo storage paragonabile a quello dei log. Per scenari ad alto volume si abbinano tail-sampling intelligenti.

TraceQL è il linguaggio di query: cerca per attributi span, durata, status, relazioni parent/child. Exemplar linking: clicchi su un punto di un grafico Mimir, ti porta al trace; clicchi su un log Loki, ti porta al trace; clicchi su un trace, vedi i log di quella richiesta.

Caratteristiche chiave

Perché Tempo ha sostituito Jaeger nei nostri progetti.

Sampling più alto, costi più bassi, query più ricche.

OTLP nativo

Riceve da OTel Collector senza traduzione. Supporta anche Jaeger e Zipkin per legacy.

TraceQL

Filtra per attributi, durata, status, parent/child. Sostituisce 100 dashboard custom.

100% sampling

Costo storage S3 + index minimo. Niente decisioni di sampling in produzione.

Exemplar linking

Trace ↔ Mimir ↔ Loki. Un click ti porta dal grafico al log del singolo span.

Service graph

Grafo dei servizi automatico dai trace. Vedi dipendenze e bottleneck istantaneamente.

Tail sampling

Tieni i trace con errore o lenti, scarta il resto. Configurabile per servizio.

Come lo usiamo

Come istrumentiamo i clienti per Tempo.

Tempo 2.5+OTel CollectorOpenTelemetry SDKService GraphTraceQLTail sampling
  • OpenTelemetry SDK per ogni linguaggio applicativo (Java, .NET, Go, Node, Python).
  • Auto-instrumentation per Spring/JEE/.NET/Django/Express/Gin: zero codice da scrivere.
  • OTel Collector come gateway in ogni cluster: batching, retry, sampling, processing.
  • Tempo backend su Clodino Cloud o on-prem, S3/Ceph come storage.
  • Exemplar linking configurato in Grafana: Mimir ↔ Tempo ↔ Loki sempre cablato.
  • Service graph automatico in Grafana — la topologia applicativa cambia, il grafo si aggiorna.
“Tempo + Exemplars è il momento in cui i developer smettono di chiederci di guardare i log al posto loro: arrivano al log da soli, in 2 click.”
Hands on

Cercare un trace lento con TraceQL.

traceql · grafana explore~/clodino
 Tutti i trace della rotta /checkout > 1s
{ resource.service.name = "checkout-api"
  && span.http.route = "/v1/cart"
  && duration > 1s }

 Tutti i trace con errore DB nell'ultima ora
{ span.db.system = "postgresql"
  && status = error }

 Service graph derivato (Grafana)
checkout-api  ──► payment-api  (p99: 320ms)
              ──► cart-svc     (p99:  45ms)
payment-api   ──► stripe       (p99: 180ms)

Vuoi distributed tracing che non costi una fortuna?

Tempo managed su Clodino Cloud, instrumentation OpenTelemetry, exemplar linking pronto.

← Monitoring Parla con noi