Tempo
Distributed tracing backend for request flow visualization.
Overview
Tempo stores and queries distributed traces from instrumented services.
| Property | Value |
|---|---|
| Image | grafana/tempo:2.6.1 |
| Container | tempo |
| Port | 3200 (internal) |
| Config | ~/ravenhelm/services/tempo/ |
| Data | ~/ravenhelm/data/tempo/ |
Quick Commands
# View logs
docker logs -f tempo
# Restart
docker restart tempo
# Check ready
curl http://localhost:3200/ready
Integration
Traces are sent to Tempo via:
- OTLP (OpenTelemetry Protocol)
- Alloy collector
Instrumented Services
| Service | Method |
|---|---|
| Norns Agent | OpenTelemetry SDK |
| Voice Gateway | OpenTelemetry SDK |
| LangGraph | Langfuse integration |
Grafana Integration
- Add Tempo as data source in Grafana
- Use "Explore" → Select Tempo
- Search by trace ID or service name
- Correlate with Loki logs via trace ID
Configuration
tempo.yaml
server:
http_listen_port: 3200
distributor:
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
http:
endpoint: 0.0.0.0:4318
storage:
trace:
backend: local
local:
path: /var/tempo/traces
wal:
path: /var/tempo/wal