So you found your way to the docker compose examples? This is a great place to get started with Tempo and see some of the various configuration options
Refer to getting-started for a walk-through using the single-binary example.
The easiest example to start with is the single-binary. This example will run Tempo as a single binary, xk6-client-tracing to generate traces and Grafana to visualize trace data.
To use any example simply:
- Navigate to the appropriate folder and run
docker-compose up - Visit Grafana Explore and try some basic queries. See the docs for help on more complex queries.
{}- basic search that finds everything
{} | rate()- rate of all spans - Visit Traces Drilldown for a queryless way to explore your data.
- Connect your favorite LLM agent to our MCP server
See below for a list of all examples and the features they demonstrate
| Example | Deployment | Tenancy | Trace Ingestion | Storage | Other Features |
|---|---|---|---|---|---|
| Single Binary | Single binary | Single tenant | Alloy | S3 (MinIO) | vulture for data integrity, metrics generator, streaming queries, mcp |
| Distributed | Distributed microservices | Single tenant | Alloy | S3 (MinIO) | vulture for data integrity, metrics-generator, streaming queries, mcp |
| Multitenant | Single binary | Multitenant | OTel Collector + Direct OTLP | Local filesystem | vulture for data integrity, multiple tenants (tenant-1, tenant-2), streaming queries, mcp |
| Debug | Single binary | Single tenant | Direct OTLP | Local filesystem | vulture for data integrity, tempo-debug image for breakpoint debugging, streaming queries, mcp |
This step is not necessary, but it can be nice for local testing. For any of the above examples rebuilding these images will cause docker compose to use your local code when running the examples.
Run the following from the project root folder to build the grafana/tempo:latest image that is used in all the examples:
make docker-images