obz-tempo: Grafana Tempo Provider
Quick Reference
| Field | Value |
|---|
| Aliases | tempo |
| Signal | Trace |
| Query language | TraceQL |
| Auth | Bearer token or Basic auth |
| Provider flags | None |
| Supported cmds | search, get, tags, tag-values |
Supported Commands
Core trace commands
obz trace search # Search traces by service name or TraceQL
obz trace get # Retrieve a single trace by ID
Extension commands
obz trace tags # List available tag names grouped by scope
obz trace tag-values # List values for a specific tag (requires --tag)
Authentication
Configure auth in config.yaml under providers.<name>.auth. Supports
bearer token, basic auth, or no auth.
# config.yaml
providers:
tempo:
endpoint: http://localhost:3200
auth:
token: ${env:TEMPO_TOKEN}
For basic auth (common with Grafana Cloud):
auth:
username: user
password: ${env:TEMPO_PASS}
Then query with just -p:
obz trace search -p tempo -q '{ resource.service.name = "frontend" }' --from now-1h
Query Format
The -q value must be a TraceQL expression.
obz trace search -p tempo -q '{ resource.service.name = "frontend" }' --from now-1h
TraceQL Basics
TraceQL is Tempo's native query language for filtering spans.
Span Selectors
{ span.http.status_code = 500 }
{ resource.service.name = "api" && span.http.method = "POST" }
{ duration > 2s }
{ status = error }
Common Attributes
resource.service.name, span.http.method, span.http.status_code,
span.http.url, duration, status (ok/error).
Examples
Search traces for a service:
obz trace search -p tempo -q '{ resource.service.name = "frontend" }' --from now-1h
Search for slow spans:
obz trace search -p tempo -q '{ duration > 5s }' --from now-6h
Search for error spans in a service:
obz trace search -p tempo \
-q '{ resource.service.name = "api" && status = error }' --from now-1h
Retrieve a specific trace by ID:
obz trace get -p tempo abc123def456
List available tag names:
obz trace tags -p tempo
List values for a tag:
obz trace tag-values -p tempo --tag resource.service.name