-
Epic
-
Resolution: Done
-
Undefined
-
None
-
None
-
None
-
Combined rate limits
-
False
-
False
-
NEW
-
To Do
-
NEW
-
Undefined
Goals
As a cluster admin I want to be able to set a rate limit on logging data for a group of containers specified by namespaces, labels or other supported selectors. I want the rate limit to be shared fairly over containers in the group, even when the number of containers in the group changes.
Non-Goals
Fairness is not exact, but best effort. If the number of containers remains stable, the effective rate limits should stabilize to a fair and accurate value, but when the set of containers is changing, there may be temporary unfairnes as the system adjusts.
Motivation
LOG-884 sets rate limits per-container. This is easier to enforce but less convenient for cluster admins since most applications include multiple containers. The admin would like to specify a total combined rate for the entire application and have the logging system figure out how to divide it among running containers, and to adapt at runtime if the number of containers changes.
Alternatives
Admins can estimate the number of containers in their application ahead of time and apply a fixed per-container rate limit based on that estimate. They can manually update the limit to handle changing conditions.
Acceptance Criteria
For a group of N containers, with a combined rate limit of R, where each container is trying to log faster than R/N:
- The rate per container should stabilize at about R/N after some short time.
- If N is changed, the rate should re-stabilize to the new R/N value.
In a group where some contaiers log slower than R/N and some try to log faster:
- After stabilization, no container should log faster than R/N
- Slow logging containres should not lose data (noisy neighbour)
Risk and Assumptions
Complex to implement, need to validate the assumption that admins need this feature.
Documentation Considerations
None special
Open Questions
Is this feature a priority?
Additional Notes
None