envoyproxy/envoy

rlqs: Support percentage/ratio-based rate limit strategies

Open

#46.086 aperta il 10 lug 2026

Vedi su GitHub
 (1 commento) (1 reazione) (0 assegnatari)C++ (5373 fork)batch import
area/ratelimitenhancementhelp wanted

Metriche repository

Star
 (27.997 star)
Metriche merge PR
 (Merge medio 8g) (378 PR mergiate in 30 g)

Descrizione

RLQS RateLimitStrategy only supports absolute counts, not percentage/ratio-based limits

Description: The Rate Limit Quota Service (RLQS) protocol expresses quota assignments via type.v3.RateLimitStrategy, which currently supports only:

  • blanket_rule (allow all / deny all)
  • requests_per_time_unit (an absolute uint64 count per time unit)
  • token_bucket (absolute max tokens + fill rate)

There is no way to express a quota as a percentage or ratio of some baseline (e.g. "allow 10% of traffic to this bucket" or "shed 25% of requests"). This would be useful for use cases like gradual rollout/ramp-up of a rate limiting policy, proportional load shedding across buckets, or percentage-based traffic shaping that scales automatically with incoming volume instead of requiring a control plane to compute and continuously update absolute request-per-second figures.

Requesting a new RateLimitStrategy variant (e.g. PercentageRule or ratio) that lets the control plane express limits as a percentage/fraction of observed request volume, similar to the existing percentage-based fault injection / traffic shifting semantics elsewhere in Envoy (e.g. envoy.type.v3.FractionalPercent).

[optional Relevant Links:]

https://www.envoyproxy.io/docs/envoy/latest/api-v3/service/rate_limit_quota/v3/rlqs.proto https://www.envoyproxy.io/docs/envoy/latest/api-v3/type/v3/ratelimit_strategy.proto

Guida contributor