-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
Limit data bytes fetched per query and per store #5750
Comments
I think after the work done by @fpetkovski on #6074, this can be closed. WDYT, @yeya24? |
I see thanks @douglascamata. I think that covers the per store limits. But we still have the per query limits, right? Do we have plan to support that? |
You are right, the querier will apply the limits only when it acts as a store through gRPC, but not when it executes queries. For that we might need to add limiters to the store proxy. Could extending the existing wrapper work for adding a bytes limit too? |
What if we wrap the store proxy with the instrumented store server wrapper? 🤔
I think we could add this one to the instrumented store server and get it for free everywhere. 🙌 |
Hello everyone , I'm facing this problem now. |
@yylbfyl Have you tried the per store limits? If not, maybe you can give it a try and probably it already help fix your issue. |
Hi @yeya24 , thanks for your advice. As store query from S3 and it is very slow , we already remove the store component. |
@yeya24 Additionally, I have a question: If the memory usage exceeds the GOMEMLIMIT, what would be the result? Will it cause the Thanos Query component to restart automatically? |
@yylbfyl So assuming you are using Kubernetes, Thanos Query gets restarted only happened when memory usage exceeds the pod memory limit (OOM kill). You can find more https://pkg.go.dev/runtime |
Is your proposal related to a problem?
In a multi-tenant environment, Thanos Querier is easy to get OOM killed without any limits/protection.
We have some limits in place now like series limits, but since the series labels have different sizes, probably we might need other ways for limiting.
Limit the data bytes fetched for the whole query or even at each store level could be a way to try.
Describe the solution you'd like
Cortex has a PR cortexproject/cortex#4854 which implements this feature.
The text was updated successfully, but these errors were encountered: