local_ratelimitv3

package
v1.34.0-20240426201503... Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: unknown License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL