Documentation ¶
Index ¶
- Variables
- type LocalRateLimit
- func (*LocalRateLimit) Descriptor() ([]byte, []int)deprecated
- func (x *LocalRateLimit) GetAlwaysConsumeDefaultTokenBucket() *wrapperspb.BoolValue
- func (x *LocalRateLimit) GetDescriptors() []*v32.LocalRateLimitDescriptor
- func (x *LocalRateLimit) GetEnableXRatelimitHeaders() v32.XRateLimitHeadersRFCVersion
- func (x *LocalRateLimit) GetFilterEnabled() *v31.RuntimeFractionalPercent
- func (x *LocalRateLimit) GetFilterEnforced() *v31.RuntimeFractionalPercent
- func (x *LocalRateLimit) GetLocalRateLimitPerDownstreamConnection() bool
- func (x *LocalRateLimit) GetRateLimitedAsResourceExhausted() bool
- func (x *LocalRateLimit) GetRequestHeadersToAddWhenNotEnforced() []*v31.HeaderValueOption
- func (x *LocalRateLimit) GetResponseHeadersToAdd() []*v31.HeaderValueOption
- func (x *LocalRateLimit) GetStage() uint32
- func (x *LocalRateLimit) GetStatPrefix() string
- func (x *LocalRateLimit) GetStatus() *v3.HttpStatus
- func (x *LocalRateLimit) GetTokenBucket() *v3.TokenBucket
- func (x *LocalRateLimit) GetVhRateLimits() v32.VhRateLimitsOptions
- func (*LocalRateLimit) ProtoMessage()
- func (x *LocalRateLimit) ProtoReflect() protoreflect.Message
- func (x *LocalRateLimit) Reset()
- func (x *LocalRateLimit) String() string
Constants ¶
This section is empty.
Variables ¶
View Source
var File_envoy_extensions_filters_http_local_ratelimit_v3_local_rate_limit_proto protoreflect.FileDescriptor
Functions ¶
This section is empty.
Types ¶
type LocalRateLimit ¶
type LocalRateLimit struct { // The human readable prefix to use when emitting stats. StatPrefix string `protobuf:"bytes,1,opt,name=stat_prefix,json=statPrefix,proto3" json:"stat_prefix,omitempty"` // This field allows for a custom HTTP response status code to the downstream client when // the request has been rate limited. // Defaults to 429 (TooManyRequests). // // .. note:: // // If this is set to < 400, 429 will be used instead. Status *v3.HttpStatus `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` // The token bucket configuration to use for rate limiting requests that are processed by this // filter. 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. // // .. note:: // // It's fine for the token bucket to be unset for the global configuration since the rate limit // can be applied at a the virtual host or route level. Thus, the token bucket must be set // for the per route configuration otherwise the config will be rejected. // // .. note:: // // When using per route configuration, the bucket becomes unique to that route. // // .. note:: // // In the current implementation the token bucket's :ref:`fill_interval // <envoy_v3_api_field_type.v3.TokenBucket.fill_interval>` must be >= 50ms to avoid too aggressive // refills. TokenBucket *v3.TokenBucket `protobuf:"bytes,3,opt,name=token_bucket,json=tokenBucket,proto3" json:"token_bucket,omitempty"` // If set, this will enable -- but not necessarily enforce -- the rate limit for the given // fraction of requests. // Defaults to 0% of requests for safety. FilterEnabled *v31.RuntimeFractionalPercent `protobuf:"bytes,4,opt,name=filter_enabled,json=filterEnabled,proto3" json:"filter_enabled,omitempty"` // If set, this will enforce the rate limit decisions for the given fraction of requests. // // Note: this only applies to the fraction of enabled requests. // // Defaults to 0% of requests for safety. FilterEnforced *v31.RuntimeFractionalPercent `protobuf:"bytes,5,opt,name=filter_enforced,json=filterEnforced,proto3" json:"filter_enforced,omitempty"` // Specifies a list of HTTP headers that should be added to each request that // has been rate limited and is also forwarded upstream. This can only occur when the // filter is enabled but not enforced. RequestHeadersToAddWhenNotEnforced []*v31.HeaderValueOption `` /* 174-byte string literal not displayed */ // Specifies a list of HTTP headers that should be added to each response for requests that // have been rate limited. This occurs when the filter is enabled and fully enforced. ResponseHeadersToAdd []*v31.HeaderValueOption `protobuf:"bytes,6,rep,name=response_headers_to_add,json=responseHeadersToAdd,proto3" json:"response_headers_to_add,omitempty"` // The rate limit descriptor list to use in the local rate limit to override // on. The rate limit descriptor is selected by the first full match from the // request descriptors. // // Example on how to use :ref:`this <config_http_filters_local_rate_limit_descriptors>`. // // .. note:: // // In the current implementation the descriptor's token bucket :ref:`fill_interval // <envoy_v3_api_field_type.v3.TokenBucket.fill_interval>` must be a multiple // global :ref:`token bucket's<envoy_v3_api_field_extensions.filters.http.local_ratelimit.v3.LocalRateLimit.token_bucket>` fill interval. // // The descriptors must match verbatim for rate limiting to apply. There is no partial // match by a subset of descriptor entries in the current implementation. Descriptors []*v32.LocalRateLimitDescriptor `protobuf:"bytes,8,rep,name=descriptors,proto3" json:"descriptors,omitempty"` // Specifies the rate limit configurations to be applied with the same // stage number. If not set, the default stage number is 0. // // .. note:: // // The filter supports a range of 0 - 10 inclusively for stage numbers. Stage uint32 `protobuf:"varint,9,opt,name=stage,proto3" json:"stage,omitempty"` // 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. // If unspecified, the default value is false. LocalRateLimitPerDownstreamConnection bool `` /* 182-byte string literal not displayed */ // Defines the standard version to use for X-RateLimit headers emitted by the filter. // // Disabled by default. EnableXRatelimitHeaders v32.XRateLimitHeadersRFCVersion `` /* 206-byte string literal not displayed */ // Specifies if the local rate limit filter should include the virtual host rate limits. VhRateLimits v32.VhRateLimitsOptions `` /* 163-byte string literal not displayed */ // Specifies if default token bucket should be always consumed. // If set to false, default token bucket will only be consumed when there is // no matching descriptor. If set to true, default token bucket will always // be consumed. Default is true. AlwaysConsumeDefaultTokenBucket *wrapperspb.BoolValue `` /* 161-byte string literal not displayed */ // Specifies whether a “RESOURCE_EXHAUSTED“ gRPC code must be returned instead // of the default “UNAVAILABLE“ gRPC code for a rate limited gRPC call. The // HTTP code will be 200 for a gRPC response. RateLimitedAsResourceExhausted bool `` /* 159-byte string literal not displayed */ // contains filtered or unexported fields }
[#next-free-field: 16]
func (*LocalRateLimit) Descriptor
deprecated
func (*LocalRateLimit) Descriptor() ([]byte, []int)
Deprecated: Use LocalRateLimit.ProtoReflect.Descriptor instead.
func (*LocalRateLimit) GetAlwaysConsumeDefaultTokenBucket ¶
func (x *LocalRateLimit) GetAlwaysConsumeDefaultTokenBucket() *wrapperspb.BoolValue
func (*LocalRateLimit) GetDescriptors ¶
func (x *LocalRateLimit) GetDescriptors() []*v32.LocalRateLimitDescriptor
func (*LocalRateLimit) GetEnableXRatelimitHeaders ¶
func (x *LocalRateLimit) GetEnableXRatelimitHeaders() v32.XRateLimitHeadersRFCVersion
func (*LocalRateLimit) GetFilterEnabled ¶
func (x *LocalRateLimit) GetFilterEnabled() *v31.RuntimeFractionalPercent
func (*LocalRateLimit) GetFilterEnforced ¶
func (x *LocalRateLimit) GetFilterEnforced() *v31.RuntimeFractionalPercent
func (*LocalRateLimit) GetLocalRateLimitPerDownstreamConnection ¶
func (x *LocalRateLimit) GetLocalRateLimitPerDownstreamConnection() bool
func (*LocalRateLimit) GetRateLimitedAsResourceExhausted ¶
func (x *LocalRateLimit) GetRateLimitedAsResourceExhausted() bool
func (*LocalRateLimit) GetRequestHeadersToAddWhenNotEnforced ¶
func (x *LocalRateLimit) GetRequestHeadersToAddWhenNotEnforced() []*v31.HeaderValueOption
func (*LocalRateLimit) GetResponseHeadersToAdd ¶
func (x *LocalRateLimit) GetResponseHeadersToAdd() []*v31.HeaderValueOption
func (*LocalRateLimit) GetStage ¶
func (x *LocalRateLimit) GetStage() uint32
func (*LocalRateLimit) GetStatPrefix ¶
func (x *LocalRateLimit) GetStatPrefix() string
func (*LocalRateLimit) GetStatus ¶
func (x *LocalRateLimit) GetStatus() *v3.HttpStatus
func (*LocalRateLimit) GetTokenBucket ¶
func (x *LocalRateLimit) GetTokenBucket() *v3.TokenBucket
func (*LocalRateLimit) GetVhRateLimits ¶
func (x *LocalRateLimit) GetVhRateLimits() v32.VhRateLimitsOptions
func (*LocalRateLimit) ProtoMessage ¶
func (*LocalRateLimit) ProtoMessage()
func (*LocalRateLimit) ProtoReflect ¶
func (x *LocalRateLimit) ProtoReflect() protoreflect.Message
func (*LocalRateLimit) Reset ¶
func (x *LocalRateLimit) Reset()
func (*LocalRateLimit) String ¶
func (x *LocalRateLimit) String() string
Click to show internal directories.
Click to hide internal directories.