Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ability to search all tenants in multi-tenant setups #1858

Closed
zackman0010 opened this issue Nov 2, 2022 · 20 comments · Fixed by #3087 or #3262
Closed

Ability to search all tenants in multi-tenant setups #1858

zackman0010 opened this issue Nov 2, 2022 · 20 comments · Fixed by #3087 or #3262
Assignees
Labels
enhancement New feature or request help wanted Extra attention is needed keepalive Label to exempt Issues / PRs from stale workflow

Comments

@zackman0010
Copy link

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.

@joe-elliott
Copy link
Member

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 joe-elliott added keepalive Label to exempt Issues / PRs from stale workflow enhancement New feature or request labels Nov 21, 2022
@joe-elliott
Copy link
Member

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.

@aaguilartablada
Copy link

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

@AleksuKey
Copy link

would be great to have this feature implemented

@JorTurFer
Copy link

We would love to have this feature! ❤️

@luissb40
Copy link

luissb40 commented Mar 9, 2023

Is a very interesting feature!!

@ykapilesh
Copy link

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.

@sakthiraam
Copy link

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 ❤️

@cheesengoon
Copy link

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

@alex5517
Copy link
Contributor

+1

@joe-elliott
Copy link
Member

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 joe-elliott added the help wanted Extra attention is needed label Jul 11, 2023
@mghildiy
Copy link
Contributor

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

@joe-elliott
Copy link
Member

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:

func TestAllInOne(t *testing.T) {

  • 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.

@mghildiy
Copy link
Contributor

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?

@joe-elliott
Copy link
Member

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.

@mghildiy
Copy link
Contributor

A WIP PR:
#2854

@jtama
Copy link

jtama commented Sep 21, 2023

any news on this ?

@roobalimsab
Copy link

Hello Team,

Any timelines to have this released?

@electron0zero
Copy link
Member

@roobalimsab we have #3087 up, we are hoping to include it in next tempo release.

@roobalimsab
Copy link

Great, thanks for the update. looking forward

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed keepalive Label to exempt Issues / PRs from stale workflow
Projects
Status: Done