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

Add doc page on ingester reactive limiters #10591

Merged
merged 21 commits into from
Feb 13, 2025

Conversation

jhalterman
Copy link
Member

@jhalterman jhalterman commented Feb 6, 2025

What this PR does

This PR adds a doc page describing ingester reactive limiters, which are being introduced via #10574.

Which issue(s) this PR fixes or relates to

Depends on #10574

Checklist

  • Tests updated.
  • Documentation added.
  • CHANGELOG.md updated - the order of entries should be [CHANGE], [FEATURE], [ENHANCEMENT], [BUGFIX].
  • about-versioning.md updated with experimental features.

@jhalterman jhalterman added type/docs Improvements or additions to documentation component/ingester labels Feb 6, 2025
@jhalterman jhalterman marked this pull request as ready for review February 6, 2025 04:00
@jhalterman jhalterman requested review from tacole02 and a team as code owners February 6, 2025 04:00
@jhalterman jhalterman force-pushed the adaptivelimiter-docs branch from c33548f to 7e56297 Compare February 6, 2025 05:26
Copy link
Contributor

@narqo narqo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔥 It makes sense to me

Copy link
Contributor

@tacole02 tacole02 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks great! A left a few suggestions. Thank you so much for submitting this!


Mimir's adaptive concurrency limiters can be used to guard against ingester overload, by automatically adapting concurreny limits based on indications of overload.

## How do adaptive limiters work?
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the feature called adaptive limiters, adaptive concurrency limiters, or ingester adaptive limiters? We should choose one and standardize throughout the doc.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adaptive concurrency limiters, which I'd call adaptive limiters for short. I wrote this doc originally based on the about ingester circuit breakers doc, which is why I mentioned ingester in a few places. My preference would be to not though.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can just refer to them as adaptive limiters throughout. You mention in the description that they adapt concurrency limits to guard against ingester overload, so I think just saying adaptive limiters is sufficiently clear.


When recent response times increase significantly relative to the longer term trend, an adaptive limiter will temporarily decrease concurrency limits to avoid potential overload. Similarly, when increasing inflight requests correlate with flat or decreasing throughput and increasing response times, this is taken as a sign of overload and the concurrency limit is decreased.

## How do adaptive limiters behave in practice?
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we simplify this heading to How adaptive limiters work ?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The section above was meant to be about how they work, and this section was meant to be more about how they behave. Did you want to shorten this section to How do adaptive limiters behave?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can actually do away with the heading and just have everything under How adaptive limiters work.

jhalterman and others added 18 commits February 6, 2025 16:30
Co-authored-by: Taylor C <41653732+tacole02@users.noreply.github.com>
Co-authored-by: Taylor C <41653732+tacole02@users.noreply.github.com>
Co-authored-by: Taylor C <41653732+tacole02@users.noreply.github.com>
Co-authored-by: Taylor C <41653732+tacole02@users.noreply.github.com>
Co-authored-by: Taylor C <41653732+tacole02@users.noreply.github.com>
Co-authored-by: Taylor C <41653732+tacole02@users.noreply.github.com>
Co-authored-by: Taylor C <41653732+tacole02@users.noreply.github.com>
Co-authored-by: Taylor C <41653732+tacole02@users.noreply.github.com>
Co-authored-by: Taylor C <41653732+tacole02@users.noreply.github.com>
Co-authored-by: Taylor C <41653732+tacole02@users.noreply.github.com>
Co-authored-by: Taylor C <41653732+tacole02@users.noreply.github.com>
Co-authored-by: Taylor C <41653732+tacole02@users.noreply.github.com>
Co-authored-by: Taylor C <41653732+tacole02@users.noreply.github.com>
Co-authored-by: Taylor C <41653732+tacole02@users.noreply.github.com>
Co-authored-by: Taylor C <41653732+tacole02@users.noreply.github.com>
Co-authored-by: Taylor C <41653732+tacole02@users.noreply.github.com>
Co-authored-by: Taylor C <41653732+tacole02@users.noreply.github.com>
Co-authored-by: Taylor C <41653732+tacole02@users.noreply.github.com>

When recent response times increase significantly relative to the longer term trend, an adaptive limiter will temporarily decrease concurrency limits to avoid potential overload. Similarly, when increasing inflight requests correlate with flat or decreasing throughput and increasing response times, this is taken as a sign of overload and the concurrency limit is decreased.

## How do adaptive limiters behave in practice?
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can actually do away with the heading and just have everything under How adaptive limiters work.

Change "ingester adaptive limiters" to "adaptive limiters".
Remove the behavior section and make the queueing and rejection sections into sub-sections.
@tacole02
Copy link
Contributor

tacole02 commented Feb 7, 2025

This looks great! Thank you so much!

@jhalterman jhalterman changed the title Add doc page on ingester adaptive limiters Add doc page on ingester reactive limiters Feb 8, 2025
@jhalterman jhalterman merged commit 9970d3a into grafana:main Feb 13, 2025
30 checks passed
@jhalterman jhalterman deleted the adaptivelimiter-docs branch February 13, 2025 19:32
ying-jeanne pushed a commit that referenced this pull request Feb 19, 2025
Add doc page on ingester adaptive limiters


Co-authored-by: Taylor C <41653732+tacole02@users.noreply.github.com>
ying-jeanne pushed a commit that referenced this pull request Feb 20, 2025
Add doc page on ingester adaptive limiters


Co-authored-by: Taylor C <41653732+tacole02@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component/ingester squad/ingest type/docs Improvements or additions to documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants