envoyproxy/envoy

rlqs: Support percentage/ratio-based rate limit strategies

Open

#46 086 ouverte le 10 juil. 2026

Voir sur GitHub
 (1 commentaire) (1 réaction) (0 assignés)C++ (5 373 forks)batch import
area/ratelimitenhancementhelp wanted

Métriques du dépôt

Stars
 (27 997 stars)
Métriques de merge PR
 (Merge moyen 8j) (378 PRs mergées en 30 j)

Description

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

Guide contributeur