Run this before Tempo takes production traces, and again after any change to the deployment mode, the receivers, the bucket, or the identity Tempo uses to reach it.
It overlaps the collector readiness gate deliberately. That gate covers the pipeline that produces spans — what is sampled, what is redacted, what is batched and where it is sent. This one covers everything on the receiving side, starting at the port the exporter connects to.
Why Tempo needs a different kind of check
Two properties shape this list.
The first is that Tempo’s parser is permissive and its readiness probe is honest about the wrong thing. Unknown configuration keys are ignored rather than rejected, so a misspelling does not stop the process — the affected subsystem never starts, the role reports ready, and everything looks correct until somebody needs a trace. Several items below exist only because a green probe is not evidence.
The second is that the bucket is the trace store. Tempo is an index-less query engine sitting on top of object storage, with no durable local copy of the data. That means the bucket, the identity used to reach it, and the lifecycle rules attached to it are production dependencies of the query path, not storage-team detail. Most incidents that arrive as “Tempo is broken” are one of those three.
Where the numbers come from
Most items are one call to a component’s config, ring or metrics endpoint, one shell command on a component host, or one object-store API call. Substitute your own addresses, bucket names and role names; the ones below are the shapes used throughout this course, not an estate that exists.
Access this needs
Read access to each Tempo role’s HTTP endpoint, shell access on a component host for the listener and disk items, read-only credentials for the object store, and a client host on the network the applications use for the reachability check. Two items — the propagation demonstration and the sampling strategy — are attested by a person. The synthetic trace is the only thing on this list that writes, and what it writes is one span.
Sign-off
- Reviewer: ________________ Date: ___________
- Platform owner: ___________ Date: ___________
- Largest producing team: ____ Date: ___________