local_ratelimitv3

package
v0.12.0 Latest Latest
Warning

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

Go to latest
Published: Jan 2, 2024 License: Apache-2.0 Imports: 22 Imported by: 26

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 *wrappers.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 added in v0.12.0

func (x *LocalRateLimit) GetAlwaysConsumeDefaultTokenBucket() *wrappers.BoolValue

func (*LocalRateLimit) GetDescriptors added in v0.9.9

func (x *LocalRateLimit) GetDescriptors() []*v32.LocalRateLimitDescriptor

func (*LocalRateLimit) GetEnableXRatelimitHeaders added in v0.10.2

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 added in v0.10.0

func (x *LocalRateLimit) GetLocalRateLimitPerDownstreamConnection() bool

func (*LocalRateLimit) GetRateLimitedAsResourceExhausted added in v0.12.0

func (x *LocalRateLimit) GetRateLimitedAsResourceExhausted() bool

func (*LocalRateLimit) GetRequestHeadersToAddWhenNotEnforced added in v0.9.9

func (x *LocalRateLimit) GetRequestHeadersToAddWhenNotEnforced() []*v31.HeaderValueOption

func (*LocalRateLimit) GetResponseHeadersToAdd

func (x *LocalRateLimit) GetResponseHeadersToAdd() []*v31.HeaderValueOption

func (*LocalRateLimit) GetStage added in v0.9.9

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 added in v0.11.0

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

func (*LocalRateLimit) Validate

func (m *LocalRateLimit) Validate() error

Validate checks the field values on LocalRateLimit with the rules defined in the proto definition for this message. If any rules are violated, the first error encountered is returned, or nil if there are no violations.

func (*LocalRateLimit) ValidateAll added in v0.10.0

func (m *LocalRateLimit) ValidateAll() error

ValidateAll checks the field values on LocalRateLimit with the rules defined in the proto definition for this message. If any rules are violated, the result is a list of violation errors wrapped in LocalRateLimitMultiError, or nil if none found.

type LocalRateLimitMultiError added in v0.10.0

type LocalRateLimitMultiError []error

LocalRateLimitMultiError is an error wrapping multiple validation errors returned by LocalRateLimit.ValidateAll() if the designated constraints aren't met.

func (LocalRateLimitMultiError) AllErrors added in v0.10.0

func (m LocalRateLimitMultiError) AllErrors() []error

AllErrors returns a list of validation violation errors.

func (LocalRateLimitMultiError) Error added in v0.10.0

func (m LocalRateLimitMultiError) Error() string

Error returns a concatenation of all the error messages it wraps.

type LocalRateLimitValidationError

type LocalRateLimitValidationError struct {
	// contains filtered or unexported fields
}

LocalRateLimitValidationError is the validation error returned by LocalRateLimit.Validate if the designated constraints aren't met.

func (LocalRateLimitValidationError) Cause

Cause function returns cause value.

func (LocalRateLimitValidationError) Error

Error satisfies the builtin error interface

func (LocalRateLimitValidationError) ErrorName

func (e LocalRateLimitValidationError) ErrorName() string

ErrorName returns error name.

func (LocalRateLimitValidationError) Field

Field function returns field value.

func (LocalRateLimitValidationError) Key

Key function returns key value.

func (LocalRateLimitValidationError) Reason

Reason function returns reason value.

Jump to

Keyboard shortcuts

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