Grafana Tempo
grafana/tempo/standalone
Standalone Grafana Tempo trace store with OTLP ingestion
Deploys a standalone Grafana Tempo into a local Kind cluster, running as a single binary with local filesystem storage. It accepts OTLP directly on host ports 30317 (gRPC) and 30318 (HTTP) and serves its query API on host port 30200.
Use this when you want a trace store to point your own tooling at. If you want
traces you can actually look at, use grafana/standalone instead – it adds
Grafana with the Tempo datasource already provisioned, plus an OpenTelemetry
Collector in front.
Install gck#
go install github.com/gravitee-io-labs/gck@latest
For other installation methods, see Installation .
Usage#
Create#
gck create --from grafana/tempo/standalone
Cleanup#
gck delete
Quick Start#
Send a trace over OTLP HTTP, noting the trace ID you use:
curl -X POST http://localhost:30318/v1/traces \
-H 'Content-Type: application/json' \
-d '{"resourceSpans":[{"resource":{"attributes":[{"key":"service.name","value":{"stringValue":"demo"}}]},"scopeSpans":[{"spans":[{"traceId":"5b8efff798038103d269b633813fc60c","spanId":"eee19b7ec3c1b174","name":"GET /demo","kind":2,"startTimeUnixNano":"1700000000000000000","endTimeUnixNano":"1700000000050000000"}]}]}]}'
Read it back by ID:
curl http://localhost:30200/api/traces/5b8efff798038103d269b633813fc60c
Traces are retained for 1h.
Traces are held in an
emptyDir, so they are lost when the pod restarts and compacted blocks are dropped after an hour. That is deliberate for local development – raiseblockRetentionif you need a longer window.
Ingested traces take a few seconds to become queryable while the current block is still being written.
Endpoints
Services this context exposes on your machine after gck create, including the ones it inherits from the contexts it composes. Rows marked with a flag only exist when you pass it.
| Service | URL | Notes | From |
|---|---|---|---|
| Tempo Query API | http://localhost:30200 | grafana/tempo/standalone | |
| OTLP gRPC | localhost:30317 | grafana/tempo/standalone | |
| OTLP HTTP | http://localhost:30318 | grafana/tempo/standalone |
Variables
Template variables overridable with --set. Use --set path.segments.var=value to target a specific context in the composition chain.
| Variable | Default | Origin | Description |
|---|---|---|---|
imageRepository | grafana/tempo | grafana/tempo/base | Grafana Tempo Docker image repository |
imageTag | 2.10.7 | grafana/tempo/base | Grafana Tempo Docker image tag (pinned to 2.x: Tempo 3.0 removed the ingester module and restructured storage config) |
namespace | observability | grafana/tempo/base | Namespace Tempo is deployed into, shared with the collector so it is reachable as tempo:4317 |
blockRetention | 1h | grafana/tempo/base | How long compacted trace blocks are kept before deletion |
clusterName | tempo-standalone | grafana/tempo/standalone | Name of the Kind cluster |