Tempo is a multitenant distributed tracing backend. It supports multitenancy through the use
of a header:
X-Scope-OrgID. This guide details how to setup multitenancy.
If you’re interested in setting up multitenancy, please consult the multitenant example in the repo. This example uses the following settings to achieve multitenancy in Tempo:
- Configure the OTEL Collector to attach the X-Scope-OrgID header on push:
exporters: otlp: headers: x-scope-orgid: foo-bar-baz
Grafana 7.5.x and higher
- Configure the Tempo datasource in Grafana to pass the tenant with the same header.
- name: Tempo-Multitenant jsonData: httpHeaderName1: 'X-Scope-OrgID' secureJsonData: httpHeaderValue1: 'foo-bar-baz'
- Configure the Tempo datasource in Grafana to pass the tenant as a bearer token. This is necessary because it is the only header that Jaeger can be configured to pass to its GRPC plugin.
- name: Tempo-Multitenant jsonData: httpHeaderName1: 'Authorization' secureJsonData: httpHeaderValue1: 'Bearer foo-bar-baz'
- Configure Jaeger Query to pass the bearer token to its backend.
- Multitenancy on ingestion is currently only working with GPRC and this may never change. It is strongly recommended to use the OpenTelemetry Collector to support multitenancy as described above.
- The way the read path is configured is temporary and should be much more straightforward once the tempo-query dependency is removed.
To enable multitenancy on Tempo backend, simply set the following config value on all Tempo components:
or from the command line:
This option will force all Tempo components to require the
Related Tempo resources
Be the first to learn about exciting next-generation features in Grafana 8.0, be inspired by what community members are building, and attend expert-led sessions and workshops on Grafana, Prometheus, Loki logs, and more.
Getting started with tracing and Grafana Tempo
In this session, we will use an instrumented application to demonstrate how to use logs and Prometheus exemplars to find traces effectively in Tempo. The demo will hit on the basics of operating Tempo and reveal how Tempo allows us to scale tracing as far as possible with less operational cost and complexity than ever before.