Skip to main content

Overview

OpenSRE uses Grafana Tempo to investigate trace-related alerts — searching spans by service, fetching full traces by ID, listing instrumented services, and filtering by error status or latency. This integration talks to Tempo directly via its HTTP API. It does not require a Grafana instance or datasource proxy. If you run the full Grafana stack, the Grafana integration already surfaces Tempo through the datasource proxy — use this integration when you run Tempo standalone.

Prerequisites

  • Grafana Tempo 1.4+
  • Network access from the OpenSRE environment to your Tempo instance
  • Auth credentials only if your deployment requires them (many run without auth behind a gateway)

Setup

Option 1: Interactive CLI

You will be prompted for the Tempo URL and optional auth. Leave auth fields blank if Tempo runs without authentication.

Option 2: Environment variables

Add to your .env:

Option 3: Persistent store

Integrations are persisted to ~/.opensre/integrations.json:

Credentials

Auth is optional. Many Tempo deployments run without authentication behind a gateway. When auth is required, supply one of:
  • Bearer token → TEMPO_API_KEY
  • Basic auth → TEMPO_USERNAME / TEMPO_PASSWORD
  • Multi-tenant → TEMPO_ORG_ID as X-Scope-OrgID
Create tokens or accounts in your Tempo / gateway identity provider according to your deployment. Leave auth fields blank in setup if Tempo runs without authentication.

Investigation tools

OpenSRE exposes a single query_tempo tool with an action parameter:

get_trace

list_services

list_span_names

Verify

Expected output:

Local Docker verification

Start a disposable all-in-one Tempo using the repository’s local configuration:
Seed a recent two-second checkout error trace through OTLP/HTTP:
From a source checkout, run uv run opensre integrations setup tempo. Enter http://127.0.0.1:3200 as the URL and leave the bearer token, username, password, and tenant prompts blank. Then verify the connection:
The verifier should report a successful connection to the search API. Exercise the search, tag-listing, and trace-fetch actions through one agent turn:
The result should report checkout-service, POST /checkout, a two-second duration, HTTP status 500, and an error span. Stop the disposable instance when finished:
This instance has no authentication or TLS. Both ports bind only to loopback, and all trace data is discarded with the container.

Troubleshooting

Security

  • Use a read-only token or service account if Tempo supports auth.
  • Store credentials in .env, never in code.
  • Restrict network access to Tempo — OpenSRE only needs the HTTP API port (3200 by default).