envoyproxy/envoy

rlqs: Support percentage/ratio-based rate limit strategies

Open

#46,086 建立於 2026年7月10日

在 GitHub 查看
 (1 留言) (1 反應) (0 負責人)C++ (5,373 fork)batch import
area/ratelimitenhancementhelp wanted

倉庫指標

Star
 (27,997 star)
PR 合併指標
 (平均合併 8天) (30 天內合併 378 個 PR)

描述

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

貢獻者指南