Documentation ¶
Index ¶
- Variables
- type ClientSideWeightedRoundRobin
- func (*ClientSideWeightedRoundRobin) Descriptor() ([]byte, []int)deprecated
- func (x *ClientSideWeightedRoundRobin) GetBlackoutPeriod() *durationpb.Duration
- func (x *ClientSideWeightedRoundRobin) GetEnableOobLoadReport() *wrapperspb.BoolValue
- func (x *ClientSideWeightedRoundRobin) GetErrorUtilizationPenalty() *wrapperspb.FloatValue
- func (x *ClientSideWeightedRoundRobin) GetOobReportingPeriod() *durationpb.Duration
- func (x *ClientSideWeightedRoundRobin) GetWeightExpirationPeriod() *durationpb.Duration
- func (x *ClientSideWeightedRoundRobin) GetWeightUpdatePeriod() *durationpb.Duration
- func (*ClientSideWeightedRoundRobin) ProtoMessage()
- func (x *ClientSideWeightedRoundRobin) ProtoReflect() protoreflect.Message
- func (x *ClientSideWeightedRoundRobin) Reset()
- func (x *ClientSideWeightedRoundRobin) String() string
- func (m *ClientSideWeightedRoundRobin) Validate() error
- func (m *ClientSideWeightedRoundRobin) ValidateAll() error
- type ClientSideWeightedRoundRobinMultiError
- type ClientSideWeightedRoundRobinValidationError
- func (e ClientSideWeightedRoundRobinValidationError) Cause() error
- func (e ClientSideWeightedRoundRobinValidationError) Error() string
- func (e ClientSideWeightedRoundRobinValidationError) ErrorName() string
- func (e ClientSideWeightedRoundRobinValidationError) Field() string
- func (e ClientSideWeightedRoundRobinValidationError) Key() bool
- func (e ClientSideWeightedRoundRobinValidationError) Reason() string
Constants ¶
This section is empty.
Variables ¶
var File_envoy_extensions_load_balancing_policies_client_side_weighted_round_robin_v3_client_side_weighted_round_robin_proto protoreflect.FileDescriptor
Functions ¶
This section is empty.
Types ¶
type ClientSideWeightedRoundRobin ¶
type ClientSideWeightedRoundRobin struct { // Whether to enable out-of-band utilization reporting collection from // the endpoints. By default, per-request utilization reporting is used. EnableOobLoadReport *wrapperspb.BoolValue `protobuf:"bytes,1,opt,name=enable_oob_load_report,json=enableOobLoadReport,proto3" json:"enable_oob_load_report,omitempty"` // Load reporting interval to request from the server. Note that the // server may not provide reports as frequently as the client requests. // Used only when enable_oob_load_report is true. Default is 10 seconds. OobReportingPeriod *durationpb.Duration `protobuf:"bytes,2,opt,name=oob_reporting_period,json=oobReportingPeriod,proto3" json:"oob_reporting_period,omitempty"` // A given endpoint must report load metrics continuously for at least // this long before the endpoint weight will be used. This avoids // churn when the set of endpoint addresses changes. Takes effect // both immediately after we establish a connection to an endpoint and // after weight_expiration_period has caused us to stop using the most // recent load metrics. Default is 10 seconds. BlackoutPeriod *durationpb.Duration `protobuf:"bytes,3,opt,name=blackout_period,json=blackoutPeriod,proto3" json:"blackout_period,omitempty"` // If a given endpoint has not reported load metrics in this long, // then we stop using the reported weight. This ensures that we do // not continue to use very stale weights. Once we stop using a stale // value, if we later start seeing fresh reports again, the // blackout_period applies. Defaults to 3 minutes. WeightExpirationPeriod *durationpb.Duration `` /* 129-byte string literal not displayed */ // How often endpoint weights are recalculated. Values less than 100ms are // capped at 100ms. Default is 1 second. WeightUpdatePeriod *durationpb.Duration `protobuf:"bytes,5,opt,name=weight_update_period,json=weightUpdatePeriod,proto3" json:"weight_update_period,omitempty"` // The multiplier used to adjust endpoint weights with the error rate // calculated as eps/qps. Configuration is rejected if this value is negative. // Default is 1.0. ErrorUtilizationPenalty *wrapperspb.FloatValue `` /* 132-byte string literal not displayed */ // contains filtered or unexported fields }
Configuration for the client_side_weighted_round_robin LB policy.
This policy differs from the built-in ROUND_ROBIN policy in terms of how the endpoint weights are determined. In the ROUND_ROBIN policy, the endpoint weights are sent by the control plane via EDS. However, in this policy, the endpoint weights are instead determined via qps (queries per second), eps (errors per second), and utilization metrics sent by the endpoint using the Open Request Cost Aggregation (ORCA) protocol. Utilization is determined by using the ORCA application_utilization field, if set, or else falling back to the cpu_utilization field. All queries count toward qps, regardless of result. Only failed queries count toward eps. A config parameter error_utilization_penalty controls the penalty to adjust endpoint weights using eps and qps. The weight of a given endpoint is computed as:
qps / (utilization + eps/qps * error_utilization_penalty)
See the :ref:`load balancing architecture overview<arch_overview_load_balancing_types>` for more information.
[#next-free-field: 7]
func (*ClientSideWeightedRoundRobin) Descriptor
deprecated
func (*ClientSideWeightedRoundRobin) Descriptor() ([]byte, []int)
Deprecated: Use ClientSideWeightedRoundRobin.ProtoReflect.Descriptor instead.
func (*ClientSideWeightedRoundRobin) GetBlackoutPeriod ¶
func (x *ClientSideWeightedRoundRobin) GetBlackoutPeriod() *durationpb.Duration
func (*ClientSideWeightedRoundRobin) GetEnableOobLoadReport ¶
func (x *ClientSideWeightedRoundRobin) GetEnableOobLoadReport() *wrapperspb.BoolValue
func (*ClientSideWeightedRoundRobin) GetErrorUtilizationPenalty ¶ added in v0.11.1
func (x *ClientSideWeightedRoundRobin) GetErrorUtilizationPenalty() *wrapperspb.FloatValue
func (*ClientSideWeightedRoundRobin) GetOobReportingPeriod ¶
func (x *ClientSideWeightedRoundRobin) GetOobReportingPeriod() *durationpb.Duration
func (*ClientSideWeightedRoundRobin) GetWeightExpirationPeriod ¶
func (x *ClientSideWeightedRoundRobin) GetWeightExpirationPeriod() *durationpb.Duration
func (*ClientSideWeightedRoundRobin) GetWeightUpdatePeriod ¶
func (x *ClientSideWeightedRoundRobin) GetWeightUpdatePeriod() *durationpb.Duration
func (*ClientSideWeightedRoundRobin) ProtoMessage ¶
func (*ClientSideWeightedRoundRobin) ProtoMessage()
func (*ClientSideWeightedRoundRobin) ProtoReflect ¶
func (x *ClientSideWeightedRoundRobin) ProtoReflect() protoreflect.Message
func (*ClientSideWeightedRoundRobin) Reset ¶
func (x *ClientSideWeightedRoundRobin) Reset()
func (*ClientSideWeightedRoundRobin) String ¶
func (x *ClientSideWeightedRoundRobin) String() string
func (*ClientSideWeightedRoundRobin) Validate ¶
func (m *ClientSideWeightedRoundRobin) Validate() error
Validate checks the field values on ClientSideWeightedRoundRobin 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 (*ClientSideWeightedRoundRobin) ValidateAll ¶
func (m *ClientSideWeightedRoundRobin) ValidateAll() error
ValidateAll checks the field values on ClientSideWeightedRoundRobin 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 ClientSideWeightedRoundRobinMultiError, or nil if none found.
type ClientSideWeightedRoundRobinMultiError ¶
type ClientSideWeightedRoundRobinMultiError []error
ClientSideWeightedRoundRobinMultiError is an error wrapping multiple validation errors returned by ClientSideWeightedRoundRobin.ValidateAll() if the designated constraints aren't met.
func (ClientSideWeightedRoundRobinMultiError) AllErrors ¶
func (m ClientSideWeightedRoundRobinMultiError) AllErrors() []error
AllErrors returns a list of validation violation errors.
func (ClientSideWeightedRoundRobinMultiError) Error ¶
func (m ClientSideWeightedRoundRobinMultiError) Error() string
Error returns a concatenation of all the error messages it wraps.
type ClientSideWeightedRoundRobinValidationError ¶
type ClientSideWeightedRoundRobinValidationError struct {
// contains filtered or unexported fields
}
ClientSideWeightedRoundRobinValidationError is the validation error returned by ClientSideWeightedRoundRobin.Validate if the designated constraints aren't met.
func (ClientSideWeightedRoundRobinValidationError) Cause ¶
func (e ClientSideWeightedRoundRobinValidationError) Cause() error
Cause function returns cause value.
func (ClientSideWeightedRoundRobinValidationError) Error ¶
func (e ClientSideWeightedRoundRobinValidationError) Error() string
Error satisfies the builtin error interface
func (ClientSideWeightedRoundRobinValidationError) ErrorName ¶
func (e ClientSideWeightedRoundRobinValidationError) ErrorName() string
ErrorName returns error name.
func (ClientSideWeightedRoundRobinValidationError) Field ¶
func (e ClientSideWeightedRoundRobinValidationError) Field() string
Field function returns field value.
func (ClientSideWeightedRoundRobinValidationError) Key ¶
func (e ClientSideWeightedRoundRobinValidationError) Key() bool
Key function returns key value.
func (ClientSideWeightedRoundRobinValidationError) Reason ¶
func (e ClientSideWeightedRoundRobinValidationError) Reason() string
Reason function returns reason value.