-
Notifications
You must be signed in to change notification settings - Fork 3.5k
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
operator: Expose per_stream_rate_limit & burst #9630
Conversation
If you're exposing these, it's probably also worthwhile to expose stream sharding. This feature works in conjunction with the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[docs team] LGTM, one question...
Thanks for sharing that ! We need to try this for our use case and see the impact on performances before coming back with a followup. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks overall good to me. I am just not sure if we should introduce some validation to ensure people understand that their inputs are in MB and not MiBi or bytes or what ever. It is a minor thing but let's give it a spin discussing this. What's your opinion?
@MasslessParticle This is something we aim for but I am still not 100% sure how stable this feature is. I have been tracking the PRs since last year on this topic and noticed that pieces when disjointed into the code base and not based on LID. Don't get me wrong it is an excellent idea but the implementation went into Loki a bit experimental. It started with the distributor/ingester pair and then PR by PR trickling down into queriers, etc. In addition I am not 100% if we did not overlook any impact on the ruler side. If you have a full picture on how far we are with this feature I am glad to be wrong :) @jpinsonneau Yes let's leave stream sharding for a follow-up PR. |
For me, the best would be to move everything to flagext.ByteSize and improve it. |
Yeah, |
@periklis The implementation for this only exists in the distributor/ingester. afaik, there is nothing to do with We have overloaded the word "sharding" too much so maybe something ran together? |
IIRC we had some PR melting the stream shards in the querier together? Maybe I am wrong, but didn't we put individual shard into the chunks and thus need to merge them together on query time? |
There isn't anything explicitly merging sharded streams together. That happens automatically as part of the query process. If we have the sharded stream:
Then both are merged at query time when querying for |
Ok! I was under the wrong impression that On a further note, since you run this on production for quite some time. How painful was the series churn after enabling this? Or was this negligible? |
We had some issues with series churn and over-sharding. We addressed those and now we're not seeing any issues from series churn. |
You don't happen to have pointers to the PR addressing these issues? |
It was this one. #9414 We saw some issues with resource consumption due to over sharding. Additionally, we saw the first few payloads cause a ton of stream churn. This PR addressed both by looking at the stream rate over a larger period of time. It has the interesting consequence that the |
Co-authored-by: Periklis Tsirakidis <periklis@redhat.com>
[release-5.7] Backport PR grafana#9630
Co-authored-by: Periklis Tsirakidis <periklis@redhat.com>
[release-5.6] Backport PR grafana#9630
What this PR does / why we need it:
These changes allow users to configure
PerStreamRateLimit
andPerStreamRateLimitBurst
inIngestionLimitSpec
.This is needed for Netobserv to increase the default values in some large clusters scenarios.
Which issue(s) this PR fixes:
None
Special notes for your reviewer:
I have forced using
MB
unit for consistency withingestion_rate_mb
.Please let me know if you prefer to keep it flexible to any human readable forms (1MB, 256KB, etc).
Checklist
CONTRIBUTING.md
guide (required)CHANGELOG.md
updateddocs/sources/upgrading/_index.md
production/helm/loki/Chart.yaml
and updateproduction/helm/loki/CHANGELOG.md
andproduction/helm/loki/README.md
. Example PR