local_ratelimit.proto
Package: local_ratelimit.options.gloo.solo.io
Types:
Source File: github.com/solo-io/gloo/projects/gloo/api/v1/options/local_ratelimit/local_ratelimit.proto
TokenBucket
Configures the token bucket, used for rate limiting. Ref. https://www.envoyproxy.io/docs/envoy/latest/configuration/listeners/network_filters/local_rate_limit_filter
"maxTokens": int
"tokensPerFill": .google.protobuf.UInt32Value
"fillInterval": .google.protobuf.Duration
Field | Type | Description |
---|---|---|
maxTokens |
int |
The maximum tokens that the bucket can hold. This is also the number of tokens that the bucket initially contains. Must be greater than or equal to one. |
tokensPerFill |
.google.protobuf.UInt32Value | The number of tokens added to the bucket during each fill interval. If not specified, defaults to a single token. Must be greater than zero. |
fillInterval |
.google.protobuf.Duration | The fill interval that tokens are added to the bucket. During each fill interval tokens_per_fill are added to the bucket. The bucket will never contain more than max_tokens tokens. The fill_interval must be >= 50ms and defaults to 1 second. |
Settings
The Local Rate Limit settings define the default local rate limit token bucket to apply as well as other configurations
"defaultLimit": .local_ratelimit.options.gloo.solo.io.TokenBucket
"localRateLimitPerDownstreamConnection": .google.protobuf.BoolValue
"enableXRatelimitHeaders": .google.protobuf.BoolValue
Field | Type | Description |
---|---|---|
defaultLimit |
.local_ratelimit.options.gloo.solo.io.TokenBucket | The token bucket configuration to use for rate limiting requests. These options provide the ability to locally rate limit the connections in envoy. Each request processed by the filter consumes a single token. If the token is available, the request will be allowed. If no tokens are available, the request will receive the configured rate limit status. This default limit can be overridden in the vHost or route options.localRatelimit. |
localRateLimitPerDownstreamConnection |
.google.protobuf.BoolValue | Specifies the scope of the rate limiter’s token bucket. If set to false, the token bucket is shared across all worker threads, thus the rate limits are applied per Envoy process. If set to true, a token bucket is allocated for each connection, thus the rate limits are applied per connection thereby allowing one to rate limit requests on a per connection basis. This setting applies to all token buckets in the vHost and route as well. Defaults to false. |
enableXRatelimitHeaders |
.google.protobuf.BoolValue | Set this to true to return Envoy’s X-RateLimit headers to the downstream. reference docs here: https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/common/ratelimit/v3/ratelimit.proto#envoy-v3-api-enum-extensions-common-ratelimit-v3-xratelimitheadersrfcversion This setting applies at the vHost and route local rate limit as well Defaults to false. |