tempo icon indicating copy to clipboard operation
tempo copied to clipboard

Ability to search all tenants in multi-tenant setups

Open zackman0010 opened this issue 3 years ago • 1 comments

I'd like the ability to search all tenants at once in a multi-tenant setup. At least when pulling a trace by trace ID. We have multiple departments who communicate with each other, and each department is set up as its own tenant. If a trace goes from tenant A->B->A, it will appear as a broken trace when querying tenant A and as a root span missing trace when querying tenant B.

zackman0010 avatar Nov 02 '22 22:11 zackman0010

This already exists in our enterprise tracing product: GET. We have been discussing open sourcing it, but we weren't sure if the community was interested. Thanks for the feature request!

I will bring it up internally and then report back.

joe-elliott avatar Nov 04 '22 13:11 joe-elliott

So we've discussed this internally and we do intend to eventually open source it. However, there is unfortunately no timeline I can share for this. I would expect to revisit this decision in the next few months.

FWIW, I'm working to open source it and it will happen as soon as we can get alignment internally.

joe-elliott avatar Nov 21 '22 14:11 joe-elliott

Hi! I am also interested in this feature. Is there any news? Thanks!!!

aaguilartablada avatar Mar 08 '23 08:03 aaguilartablada

would be great to have this feature implemented

AleksuKey avatar Mar 08 '23 14:03 AleksuKey

We would love to have this feature! ❤️

JorTurFer avatar Mar 08 '23 14:03 JorTurFer

Is a very interesting feature!!

luissb40 avatar Mar 09 '23 08:03 luissb40

Hi.. this is a very useful feature to see the end to end trace spanning multiple systems. With Loki we are able to do this while for tempo this feature is missing.

ykapilesh avatar Mar 13 '23 01:03 ykapilesh

This is a very useful feature to really see the power of distributed tracing. We are already able to make use of this feature in Mimir and Loki. Hope to see this feature soon in OSS Tempo ❤️

sakthiraam avatar Mar 21 '23 03:03 sakthiraam

Hi @joe-elliott, we love to have this feature in OSS Tempo for distributed tracing!

cheesengoon avatar Mar 21 '23 03:03 cheesengoon

+1

alex5517 avatar Jun 30 '23 09:06 alex5517

I gather this is an in demand request. The enterprise version referenced above is buried in a component which does not exist in OSS Tempo. I would like this feature as well, but we are not currently prioritizing it. If someone from the community would like to work on it, I will help review a PR.

There are many levels this could be tackled at, but the easiest would be to add a piece of middleware in the query frontend that uses dskit to parse multiple tenant ids in X-Scope-OrgID.

This middleware would then pass a downstream request once for each tenant.

joe-elliott avatar Jul 11 '23 20:07 joe-elliott

I am working on this issue. I want to test my changes. What's the correct way of doing it?

mghildiy avatar Aug 13 '23 12:08 mghildiy

Manually: You could modify this example to send to 2 different tenants on the backend and then curl Tempo with the appropriate multi-tenant header:

https://github.com/grafana/tempo/tree/main/example/docker-compose/otel-collector-multitenant

Testing I'd take an e2e test like this: https://github.com/grafana/tempo/blob/bc3f543bfcbac85e90d38faa4a34c0d495afd40f/integration/e2e/e2e_test.go#L41

  • Rip out the "for each backend" part
  • Split the test trace created here and push to 2 different tenants.
  • Adjust the code that queries the trace back to pass the multi-tenant header and confirm that the retrieved trace is complete.

joe-elliott avatar Aug 14 '23 14:08 joe-elliott

When I run e2e_test.TestAllInOne, I see error as:

tempo: failed parsing config: failed to parse configFile /shared/config.yaml: yaml: unmarshal errors:
tempo: line 45: field user_configurable_overrides not found in type overrides.Limits
panic: test timed out after 30s

Is some configuration change needed to make it run locally?

mghildiy avatar Aug 19 '23 10:08 mghildiy

Is some configuration change needed to make it run locally?

e2e tests use the image grafana/tempo:latest. To confirm you are using the correct image run make docker-tempo from the root. It will build grafana/tempo:latest with the current commit (which should match the e2e tests).

Also, if you run make test-e2e from the root of the repo it will force rebuild the image correctly.

joe-elliott avatar Aug 21 '23 12:08 joe-elliott

A WIP PR: https://github.com/grafana/tempo/pull/2854

mghildiy avatar Aug 26 '23 09:08 mghildiy

any news on this ?

jtama avatar Sep 21 '23 06:09 jtama

Hello Team,

Any timelines to have this released?

roobalimsab avatar Nov 02 '23 05:11 roobalimsab

@roobalimsab we have https://github.com/grafana/tempo/pull/3087 up, we are hoping to include it in next tempo release.

electron0zero avatar Nov 02 '23 09:11 electron0zero

Great, thanks for the update. looking forward

roobalimsab avatar Nov 08 '23 02:11 roobalimsab