api: add error_utilization_penalty param to WRR (#25868)

Client-wide WRR added with #24520 needs to support the weight penalty using the error rate. This change adds a parameter that configures this behavior.

Risk Level: Low
Testing: N/A

Signed-off-by: Yousuk Seung <ysseung@google.com>

Mirrored from https://github.com/envoyproxy/envoy @ d5ab0a64c7924e526842f6edd1e5a3a7615fd221
pull/626/head
data-plane-api(Azure Pipelines) 2 years ago
parent aa48c45682
commit db41315ccc
  1. 16
      envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.proto

@ -22,13 +22,17 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
// 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 and CPU utilization metrics sent by the endpoint using the Open
// Request Cost Aggregation (ORCA) protocol. The weight of a given endpoint
// is computed as qps / cpu_utilization.
// qps (queries per second), eps (errors per second), and CPU utilization
// metrics sent by the endpoint using the Open Request Cost Aggregation (ORCA)
// protocol. A query counts towards qps when successful, otherwise towards both
// qps and eps. What counts as an error is up to the endpoint to define.
// 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 / (cpu_utilization + eps/qps * error_utilization_penalty)
//
// See the :ref:`load balancing architecture overview<arch_overview_load_balancing_types>` for more information.
//
// [#next-free-field: 6]
// [#next-free-field: 7]
message ClientSideWeightedRoundRobin {
// Whether to enable out-of-band utilization reporting collection from
// the endpoints. By default, per-request utilization reporting is used.
@ -56,4 +60,8 @@ message ClientSideWeightedRoundRobin {
// How often endpoint weights are recalculated. Default is 1 second.
google.protobuf.Duration weight_update_period = 5;
// The multiplier used to adjust endpoint weights with the error rate
// calculated as eps/qps. Default is 1.0.
google.protobuf.FloatValue error_utilization_penalty = 6;
}

Loading…
Cancel
Save