Thanos and multi-tenancy #5584
Replies: 3 comments 2 replies
-
We have to consider the impact of not making multi-tenancy a big part of Thanos from the point of view of possible users/operators that might be looking at long-term storage solutions for Prometheus. Would people give up on Thanos if it doesn't clearly state that multi-tenancy is supported? Both Cortex and Mimir officially state they are multi-tenant. Does Thanos want to be seem as the system that you can configure multi-tenancy "at your own risk" and at the cost of higher resource usage due to having to run external components maintained by 3rd parties? I think embracing tenancy in Thanos opens the door for many desirable features to be efficiently implemented. Not every tenant related feature should be included in Thanos though. There are two types of tenant-aware features that I can see but don't know exactly what criteria separates them, but here are my suggestions:
|
Beta Was this translation helpful? Give feedback.
-
I don't have a strong opinion on whether multitenancy should be baked in or not. However, I would prefer for it to be treated internally like a separate module that is loaded dynamically based on configuration parameters. I would like for multi-tenancy features and various limits to not interfere with the maintainability of the codebase, or with the performance for users that don't use multi-tenancy. |
Beta Was this translation helpful? Give feedback.
-
Thanks for this discussion!
I don't we ever had the ideology to either accept or reject the tenancy features. I think the ideology (if we can call it like that) was to have a system that:
I think multi-tenancy is a grey area. We want to enable others to run Thanos in a soft muli-tenancy fashion (we already do so). The question is rather:
To answer this, I would take a detailed look at how that might look from both propositions for both user and maintainer. Will try to prepare some visualisation of this in next days. We discussed this on our Thanos Community Call as well and:
So far I think we are more into making full multi-tenancy awareness for all Thanos components 🤔 |
Beta Was this translation helpful? Give feedback.
-
Off the back of my comment: #5415 (comment)
I was encouraged to start a discussion regarding how we want to handle tenancy, and, especially in the light of some recent experimental features (#5520, #5527), which will expand the tenancy features in Thanos.
With the upcoming aim of preparing Thanos for stable (v1) release, I think it would be good to discuss what is the direction and ideology that Thanos wants to take with regards to tenancy features.
Up until now, Thanos did not really have a tenancy features, if we omit some tenancy-relevant configuration for the receiver component (arguably, this is the minimum that the receiver needs to know in order for e.g. hashing to work properly etc.). My understanding was that until now, Thanos did not want to deal with tenancy and this is what prompted existence of other projects (e.g. https://github.com/observatorium/observatorium) that enable tenancy features on top of Thanos. Introducing such features as mentioned above, we are now letting tenancy into Thanos, changing the dynamic and expanding the feature surface (and with it the codebase complexity, maintainance burden etc.).
Whereas previously I would turn to projects outside of Thanos to cover my tenancy needs, I'm not left with a split solution - some needs will be covered by Thanos, yet other remain within projects outside of the Thanos project. It opens a question of whether
I was wondering about other opinons in the community, thanks.
Beta Was this translation helpful? Give feedback.
All reactions