This is documentation for the next version of Grafana Tempo documentation. For the latest stable release, go to the latest version.
Command line flags
Tempo provides various command-line flags to configure its behavior when starting the binary. This document serves as a reference for these flags.
Global flags
Target flag
The deployment mode is determined by the runtime configuration target, or
by using the -target flag on the command line.
The default target is all, which runs all components in a single process (monolithic deployment mode).
Valid target values:
Note
In Tempo 3.0, the
ingester,compactor, andscalable-single-binarytargets were removed as part of the new Tempo architecture.
Refer to the Plan your Tempo deployment documentation for information on deployment modes.
Authentication and multitenancy
HTTP and API settings
Health check
The Tempo container image uses a
distroless base image that doesn’t include a shell, curl, wget, or other utilities. This means the common Docker health check pattern HEALTHCHECK CMD curl -f http://localhost:3200/ready doesn’t work.
The --health flag provides a native alternative. It doesn’t require a Tempo configuration file, so it can be used directly in a HEALTHCHECK instruction:
HEALTHCHECK CMD ["/tempo", "--health"]Kubernetes users typically don’t need this flag because they can configure httpGet readiness and liveness probes directly against the
/ready endpoint.
Logging settings
Server settings
Memberlist settings
Module configuration
You can use additional flags to configure individual Tempo modules, such as the distributor, block-builder, live-store, querier, backend-scheduler, backend-worker, and their components.
These flags follow a pattern like --<module>.<setting> and are extensively documented in the configuration file format.
Use the configuration file approach described in the Configuration documentation. The documentation has a comprehensive list of all configuration options.
Usage examples
Start Tempo with a configuration file:
tempo --config.file=/etc/tempo/config.yamlStart Tempo with a specific target:
tempo --target=distributor --config.file=/etc/tempo/config.yamlVerify configuration without starting Tempo:
tempo --config.file=/etc/tempo/config.yaml --config.verifyPrint version information:
tempo --versionStart Tempo with debug-level logging for troubleshooting:
tempo --config.file=/etc/tempo/config.yaml --log.level=debugUse environment variable expansion in the config file, which lets you inject secrets or environment-specific values at startup:
tempo --config.file=/etc/tempo/config.yaml --config.expand-envStart the distributor component on a custom HTTP port with JSON-formatted logs, typical for a microservices deployment behind a load balancer:
tempo --target=distributor \
--config.file=/etc/tempo/config.yaml \
--server.http-listen-port=3200 \
--log.format=jsonStart Tempo in monolithic mode with multitenancy enabled and a graceful shutdown delay of 30 seconds, allowing in-flight requests to complete during rolling updates:
tempo --config.file=/etc/tempo/config.yaml \
--multitenancy.enabled \
--shutdown-delay=30sRun a health check against a custom URL:
tempo --health --health.url=http://localhost:3200/ready
