upstream: added new option `weighted_priority_health` (#27883)

This computes the health of a priority level by using load balancing weight
instead of the count of healthy hosts.

Signed-off-by: Greg Greenway <ggreenway@apple.com>

Mirrored from https://github.com/envoyproxy/envoy @ 842d1b2ae9b7f73a5055f2117df6f7d086b9e40d
main
update-envoy[bot] 1 year ago
parent d18dbfd3f5
commit eb8098ba29
  1. 12
      envoy/config/endpoint/v3/endpoint.proto
  2. 4
      envoy/config/endpoint/v3/endpoint_components.proto

@ -35,7 +35,7 @@ message ClusterLoadAssignment {
option (udpa.annotations.versioning).previous_message_type = "envoy.api.v2.ClusterLoadAssignment";
// Load balancing policy settings.
// [#next-free-field: 6]
// [#next-free-field: 7]
message Policy {
option (udpa.annotations.versioning).previous_message_type =
"envoy.api.v2.ClusterLoadAssignment.Policy";
@ -99,6 +99,16 @@ message ClusterLoadAssignment {
// are considered stale and should be marked unhealthy.
// Defaults to 0 which means endpoints never go stale.
google.protobuf.Duration endpoint_stale_after = 4 [(validate.rules).duration = {gt {}}];
// If true, use the :ref:`load balancing weight
// <envoy_v3_api_field_config.endpoint.v3.LbEndpoint.load_balancing_weight>` of healthy and unhealthy
// hosts to determine the health of the priority level. If false, use the number of healthy and unhealthy hosts
// to determine the health of the priority level, or in other words assume each host has a weight of 1 for
// this calculation.
//
// Note: this is not currently implemented for
// :ref:`locality weighted load balancing <arch_overview_load_balancing_locality_weighted_lb>`.
bool weighted_priority_health = 6;
}
// Name of the cluster. This will be the :ref:`service_name

@ -194,9 +194,9 @@ message LocalityLbEndpoints {
// default to the highest priority (0).
//
// Under usual circumstances, Envoy will only select endpoints for the highest
// priority (0). In the event all endpoints for a particular priority are
// priority (0). In the event that enough endpoints for a particular priority are
// unavailable/unhealthy, Envoy will fail over to selecting endpoints for the
// next highest priority group.
// next highest priority group. Read more at :ref:`priority levels <arch_overview_load_balancing_priority_levels>`.
//
// Priorities should range from 0 (highest) to N (lowest) without skipping.
uint32 priority = 5 [(validate.rules).uint32 = {lte: 128}];

Loading…
Cancel
Save