java.lang.Object
com.google.protobuf.AbstractMessageLite.Builder
com.google.protobuf.AbstractMessage.Builder<BuilderT>
com.google.protobuf.GeneratedMessageV3.Builder<ClientSideWeightedRoundRobin.Builder>
io.envoyproxy.envoy.extensions.load_balancing_policies.client_side_weighted_round_robin.v3.ClientSideWeightedRoundRobin.Builder
All Implemented Interfaces:
com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, ClientSideWeightedRoundRobinOrBuilder, Cloneable
Enclosing class:
ClientSideWeightedRoundRobin

public static final class ClientSideWeightedRoundRobin.Builder extends com.google.protobuf.GeneratedMessageV3.Builder<ClientSideWeightedRoundRobin.Builder> implements ClientSideWeightedRoundRobinOrBuilder
 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)``.

 Note that Envoy will forward the ORCA response headers/trailers from the upstream
 cluster to the downstream client. This means that if the downstream client is also
 configured to use ``client_side_weighted_round_robin`` it will load balance against
 Envoy based on upstream weights. This can happen when Envoy is used as a reverse proxy.
 To avoid this issue you can configure the :ref:`header_mutation filter  <envoy_v3_api_msg_extensions.filters.http.header_mutation.v3.HeaderMutation>` to remove
 the ORCA payload from the response headers/trailers.

 See the :ref:`load balancing architecture
 overview<arch_overview_load_balancing_types>` for more information.

 [#next-free-field: 9]
 
Protobuf type envoy.extensions.load_balancing_policies.client_side_weighted_round_robin.v3.ClientSideWeightedRoundRobin
  • Method Details

    • getDescriptor

      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
    • internalGetFieldAccessorTable

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      Specified by:
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3.Builder<ClientSideWeightedRoundRobin.Builder>
    • clear

      Specified by:
      clear in interface com.google.protobuf.Message.Builder
      Specified by:
      clear in interface com.google.protobuf.MessageLite.Builder
      Overrides:
      clear in class com.google.protobuf.GeneratedMessageV3.Builder<ClientSideWeightedRoundRobin.Builder>
    • getDescriptorForType

      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
      Specified by:
      getDescriptorForType in interface com.google.protobuf.Message.Builder
      Specified by:
      getDescriptorForType in interface com.google.protobuf.MessageOrBuilder
      Overrides:
      getDescriptorForType in class com.google.protobuf.GeneratedMessageV3.Builder<ClientSideWeightedRoundRobin.Builder>
    • getDefaultInstanceForType

      public ClientSideWeightedRoundRobin getDefaultInstanceForType()
      Specified by:
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      Specified by:
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
    • build

      Specified by:
      build in interface com.google.protobuf.Message.Builder
      Specified by:
      build in interface com.google.protobuf.MessageLite.Builder
    • buildPartial

      public ClientSideWeightedRoundRobin buildPartial()
      Specified by:
      buildPartial in interface com.google.protobuf.Message.Builder
      Specified by:
      buildPartial in interface com.google.protobuf.MessageLite.Builder
    • clone

      Specified by:
      clone in interface com.google.protobuf.Message.Builder
      Specified by:
      clone in interface com.google.protobuf.MessageLite.Builder
      Overrides:
      clone in class com.google.protobuf.GeneratedMessageV3.Builder<ClientSideWeightedRoundRobin.Builder>
    • setField

      public ClientSideWeightedRoundRobin.Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, Object value)
      Specified by:
      setField in interface com.google.protobuf.Message.Builder
      Overrides:
      setField in class com.google.protobuf.GeneratedMessageV3.Builder<ClientSideWeightedRoundRobin.Builder>
    • clearField

      public ClientSideWeightedRoundRobin.Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
      Specified by:
      clearField in interface com.google.protobuf.Message.Builder
      Overrides:
      clearField in class com.google.protobuf.GeneratedMessageV3.Builder<ClientSideWeightedRoundRobin.Builder>
    • clearOneof

      public ClientSideWeightedRoundRobin.Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
      Specified by:
      clearOneof in interface com.google.protobuf.Message.Builder
      Overrides:
      clearOneof in class com.google.protobuf.GeneratedMessageV3.Builder<ClientSideWeightedRoundRobin.Builder>
    • setRepeatedField

      public ClientSideWeightedRoundRobin.Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, Object value)
      Specified by:
      setRepeatedField in interface com.google.protobuf.Message.Builder
      Overrides:
      setRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<ClientSideWeightedRoundRobin.Builder>
    • addRepeatedField

      public ClientSideWeightedRoundRobin.Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, Object value)
      Specified by:
      addRepeatedField in interface com.google.protobuf.Message.Builder
      Overrides:
      addRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<ClientSideWeightedRoundRobin.Builder>
    • mergeFrom

      public ClientSideWeightedRoundRobin.Builder mergeFrom(com.google.protobuf.Message other)
      Specified by:
      mergeFrom in interface com.google.protobuf.Message.Builder
      Overrides:
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<ClientSideWeightedRoundRobin.Builder>
    • mergeFrom

    • isInitialized

      public final boolean isInitialized()
      Specified by:
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      Overrides:
      isInitialized in class com.google.protobuf.GeneratedMessageV3.Builder<ClientSideWeightedRoundRobin.Builder>
    • mergeFrom

      public ClientSideWeightedRoundRobin.Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Specified by:
      mergeFrom in interface com.google.protobuf.Message.Builder
      Specified by:
      mergeFrom in interface com.google.protobuf.MessageLite.Builder
      Overrides:
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<ClientSideWeightedRoundRobin.Builder>
      Throws:
      IOException
    • hasEnableOobLoadReport

      public boolean hasEnableOobLoadReport()
       Whether to enable out-of-band utilization reporting collection from
       the endpoints. By default, per-request utilization reporting is used.
       
      .google.protobuf.BoolValue enable_oob_load_report = 1;
      Specified by:
      hasEnableOobLoadReport in interface ClientSideWeightedRoundRobinOrBuilder
      Returns:
      Whether the enableOobLoadReport field is set.
    • getEnableOobLoadReport

      public com.google.protobuf.BoolValue getEnableOobLoadReport()
       Whether to enable out-of-band utilization reporting collection from
       the endpoints. By default, per-request utilization reporting is used.
       
      .google.protobuf.BoolValue enable_oob_load_report = 1;
      Specified by:
      getEnableOobLoadReport in interface ClientSideWeightedRoundRobinOrBuilder
      Returns:
      The enableOobLoadReport.
    • setEnableOobLoadReport

      public ClientSideWeightedRoundRobin.Builder setEnableOobLoadReport(com.google.protobuf.BoolValue value)
       Whether to enable out-of-band utilization reporting collection from
       the endpoints. By default, per-request utilization reporting is used.
       
      .google.protobuf.BoolValue enable_oob_load_report = 1;
    • setEnableOobLoadReport

      public ClientSideWeightedRoundRobin.Builder setEnableOobLoadReport(com.google.protobuf.BoolValue.Builder builderForValue)
       Whether to enable out-of-band utilization reporting collection from
       the endpoints. By default, per-request utilization reporting is used.
       
      .google.protobuf.BoolValue enable_oob_load_report = 1;
    • mergeEnableOobLoadReport

      public ClientSideWeightedRoundRobin.Builder mergeEnableOobLoadReport(com.google.protobuf.BoolValue value)
       Whether to enable out-of-band utilization reporting collection from
       the endpoints. By default, per-request utilization reporting is used.
       
      .google.protobuf.BoolValue enable_oob_load_report = 1;
    • clearEnableOobLoadReport

      public ClientSideWeightedRoundRobin.Builder clearEnableOobLoadReport()
       Whether to enable out-of-band utilization reporting collection from
       the endpoints. By default, per-request utilization reporting is used.
       
      .google.protobuf.BoolValue enable_oob_load_report = 1;
    • getEnableOobLoadReportBuilder

      public com.google.protobuf.BoolValue.Builder getEnableOobLoadReportBuilder()
       Whether to enable out-of-band utilization reporting collection from
       the endpoints. By default, per-request utilization reporting is used.
       
      .google.protobuf.BoolValue enable_oob_load_report = 1;
    • getEnableOobLoadReportOrBuilder

      public com.google.protobuf.BoolValueOrBuilder getEnableOobLoadReportOrBuilder()
       Whether to enable out-of-band utilization reporting collection from
       the endpoints. By default, per-request utilization reporting is used.
       
      .google.protobuf.BoolValue enable_oob_load_report = 1;
      Specified by:
      getEnableOobLoadReportOrBuilder in interface ClientSideWeightedRoundRobinOrBuilder
    • hasOobReportingPeriod

      public boolean hasOobReportingPeriod()
       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.
       
      .google.protobuf.Duration oob_reporting_period = 2;
      Specified by:
      hasOobReportingPeriod in interface ClientSideWeightedRoundRobinOrBuilder
      Returns:
      Whether the oobReportingPeriod field is set.
    • getOobReportingPeriod

      public com.google.protobuf.Duration getOobReportingPeriod()
       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.
       
      .google.protobuf.Duration oob_reporting_period = 2;
      Specified by:
      getOobReportingPeriod in interface ClientSideWeightedRoundRobinOrBuilder
      Returns:
      The oobReportingPeriod.
    • setOobReportingPeriod

      public ClientSideWeightedRoundRobin.Builder setOobReportingPeriod(com.google.protobuf.Duration value)
       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.
       
      .google.protobuf.Duration oob_reporting_period = 2;
    • setOobReportingPeriod

      public ClientSideWeightedRoundRobin.Builder setOobReportingPeriod(com.google.protobuf.Duration.Builder builderForValue)
       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.
       
      .google.protobuf.Duration oob_reporting_period = 2;
    • mergeOobReportingPeriod

      public ClientSideWeightedRoundRobin.Builder mergeOobReportingPeriod(com.google.protobuf.Duration value)
       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.
       
      .google.protobuf.Duration oob_reporting_period = 2;
    • clearOobReportingPeriod

      public ClientSideWeightedRoundRobin.Builder clearOobReportingPeriod()
       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.
       
      .google.protobuf.Duration oob_reporting_period = 2;
    • getOobReportingPeriodBuilder

      public com.google.protobuf.Duration.Builder getOobReportingPeriodBuilder()
       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.
       
      .google.protobuf.Duration oob_reporting_period = 2;
    • getOobReportingPeriodOrBuilder

      public com.google.protobuf.DurationOrBuilder getOobReportingPeriodOrBuilder()
       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.
       
      .google.protobuf.Duration oob_reporting_period = 2;
      Specified by:
      getOobReportingPeriodOrBuilder in interface ClientSideWeightedRoundRobinOrBuilder
    • hasBlackoutPeriod

      public boolean hasBlackoutPeriod()
       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.
       
      .google.protobuf.Duration blackout_period = 3;
      Specified by:
      hasBlackoutPeriod in interface ClientSideWeightedRoundRobinOrBuilder
      Returns:
      Whether the blackoutPeriod field is set.
    • getBlackoutPeriod

      public com.google.protobuf.Duration getBlackoutPeriod()
       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.
       
      .google.protobuf.Duration blackout_period = 3;
      Specified by:
      getBlackoutPeriod in interface ClientSideWeightedRoundRobinOrBuilder
      Returns:
      The blackoutPeriod.
    • setBlackoutPeriod

      public ClientSideWeightedRoundRobin.Builder setBlackoutPeriod(com.google.protobuf.Duration value)
       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.
       
      .google.protobuf.Duration blackout_period = 3;
    • setBlackoutPeriod

      public ClientSideWeightedRoundRobin.Builder setBlackoutPeriod(com.google.protobuf.Duration.Builder builderForValue)
       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.
       
      .google.protobuf.Duration blackout_period = 3;
    • mergeBlackoutPeriod

      public ClientSideWeightedRoundRobin.Builder mergeBlackoutPeriod(com.google.protobuf.Duration value)
       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.
       
      .google.protobuf.Duration blackout_period = 3;
    • clearBlackoutPeriod

      public ClientSideWeightedRoundRobin.Builder clearBlackoutPeriod()
       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.
       
      .google.protobuf.Duration blackout_period = 3;
    • getBlackoutPeriodBuilder

      public com.google.protobuf.Duration.Builder getBlackoutPeriodBuilder()
       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.
       
      .google.protobuf.Duration blackout_period = 3;
    • getBlackoutPeriodOrBuilder

      public com.google.protobuf.DurationOrBuilder getBlackoutPeriodOrBuilder()
       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.
       
      .google.protobuf.Duration blackout_period = 3;
      Specified by:
      getBlackoutPeriodOrBuilder in interface ClientSideWeightedRoundRobinOrBuilder
    • hasWeightExpirationPeriod

      public boolean hasWeightExpirationPeriod()
       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.
       
      .google.protobuf.Duration weight_expiration_period = 4;
      Specified by:
      hasWeightExpirationPeriod in interface ClientSideWeightedRoundRobinOrBuilder
      Returns:
      Whether the weightExpirationPeriod field is set.
    • getWeightExpirationPeriod

      public com.google.protobuf.Duration getWeightExpirationPeriod()
       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.
       
      .google.protobuf.Duration weight_expiration_period = 4;
      Specified by:
      getWeightExpirationPeriod in interface ClientSideWeightedRoundRobinOrBuilder
      Returns:
      The weightExpirationPeriod.
    • setWeightExpirationPeriod

      public ClientSideWeightedRoundRobin.Builder setWeightExpirationPeriod(com.google.protobuf.Duration value)
       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.
       
      .google.protobuf.Duration weight_expiration_period = 4;
    • setWeightExpirationPeriod

      public ClientSideWeightedRoundRobin.Builder setWeightExpirationPeriod(com.google.protobuf.Duration.Builder builderForValue)
       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.
       
      .google.protobuf.Duration weight_expiration_period = 4;
    • mergeWeightExpirationPeriod

      public ClientSideWeightedRoundRobin.Builder mergeWeightExpirationPeriod(com.google.protobuf.Duration value)
       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.
       
      .google.protobuf.Duration weight_expiration_period = 4;
    • clearWeightExpirationPeriod

      public ClientSideWeightedRoundRobin.Builder clearWeightExpirationPeriod()
       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.
       
      .google.protobuf.Duration weight_expiration_period = 4;
    • getWeightExpirationPeriodBuilder

      public com.google.protobuf.Duration.Builder getWeightExpirationPeriodBuilder()
       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.
       
      .google.protobuf.Duration weight_expiration_period = 4;
    • getWeightExpirationPeriodOrBuilder

      public com.google.protobuf.DurationOrBuilder getWeightExpirationPeriodOrBuilder()
       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.
       
      .google.protobuf.Duration weight_expiration_period = 4;
      Specified by:
      getWeightExpirationPeriodOrBuilder in interface ClientSideWeightedRoundRobinOrBuilder
    • hasWeightUpdatePeriod

      public boolean hasWeightUpdatePeriod()
       How often endpoint weights are recalculated. Values less than 100ms are
       capped at 100ms. Default is 1 second.
       
      .google.protobuf.Duration weight_update_period = 5;
      Specified by:
      hasWeightUpdatePeriod in interface ClientSideWeightedRoundRobinOrBuilder
      Returns:
      Whether the weightUpdatePeriod field is set.
    • getWeightUpdatePeriod

      public com.google.protobuf.Duration getWeightUpdatePeriod()
       How often endpoint weights are recalculated. Values less than 100ms are
       capped at 100ms. Default is 1 second.
       
      .google.protobuf.Duration weight_update_period = 5;
      Specified by:
      getWeightUpdatePeriod in interface ClientSideWeightedRoundRobinOrBuilder
      Returns:
      The weightUpdatePeriod.
    • setWeightUpdatePeriod

      public ClientSideWeightedRoundRobin.Builder setWeightUpdatePeriod(com.google.protobuf.Duration value)
       How often endpoint weights are recalculated. Values less than 100ms are
       capped at 100ms. Default is 1 second.
       
      .google.protobuf.Duration weight_update_period = 5;
    • setWeightUpdatePeriod

      public ClientSideWeightedRoundRobin.Builder setWeightUpdatePeriod(com.google.protobuf.Duration.Builder builderForValue)
       How often endpoint weights are recalculated. Values less than 100ms are
       capped at 100ms. Default is 1 second.
       
      .google.protobuf.Duration weight_update_period = 5;
    • mergeWeightUpdatePeriod

      public ClientSideWeightedRoundRobin.Builder mergeWeightUpdatePeriod(com.google.protobuf.Duration value)
       How often endpoint weights are recalculated. Values less than 100ms are
       capped at 100ms. Default is 1 second.
       
      .google.protobuf.Duration weight_update_period = 5;
    • clearWeightUpdatePeriod

      public ClientSideWeightedRoundRobin.Builder clearWeightUpdatePeriod()
       How often endpoint weights are recalculated. Values less than 100ms are
       capped at 100ms. Default is 1 second.
       
      .google.protobuf.Duration weight_update_period = 5;
    • getWeightUpdatePeriodBuilder

      public com.google.protobuf.Duration.Builder getWeightUpdatePeriodBuilder()
       How often endpoint weights are recalculated. Values less than 100ms are
       capped at 100ms. Default is 1 second.
       
      .google.protobuf.Duration weight_update_period = 5;
    • getWeightUpdatePeriodOrBuilder

      public com.google.protobuf.DurationOrBuilder getWeightUpdatePeriodOrBuilder()
       How often endpoint weights are recalculated. Values less than 100ms are
       capped at 100ms. Default is 1 second.
       
      .google.protobuf.Duration weight_update_period = 5;
      Specified by:
      getWeightUpdatePeriodOrBuilder in interface ClientSideWeightedRoundRobinOrBuilder
    • hasErrorUtilizationPenalty

      public boolean hasErrorUtilizationPenalty()
       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.
       
      .google.protobuf.FloatValue error_utilization_penalty = 6 [(.validate.rules) = { ... }
      Specified by:
      hasErrorUtilizationPenalty in interface ClientSideWeightedRoundRobinOrBuilder
      Returns:
      Whether the errorUtilizationPenalty field is set.
    • getErrorUtilizationPenalty

      public com.google.protobuf.FloatValue getErrorUtilizationPenalty()
       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.
       
      .google.protobuf.FloatValue error_utilization_penalty = 6 [(.validate.rules) = { ... }
      Specified by:
      getErrorUtilizationPenalty in interface ClientSideWeightedRoundRobinOrBuilder
      Returns:
      The errorUtilizationPenalty.
    • setErrorUtilizationPenalty

      public ClientSideWeightedRoundRobin.Builder setErrorUtilizationPenalty(com.google.protobuf.FloatValue value)
       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.
       
      .google.protobuf.FloatValue error_utilization_penalty = 6 [(.validate.rules) = { ... }
    • setErrorUtilizationPenalty

      public ClientSideWeightedRoundRobin.Builder setErrorUtilizationPenalty(com.google.protobuf.FloatValue.Builder builderForValue)
       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.
       
      .google.protobuf.FloatValue error_utilization_penalty = 6 [(.validate.rules) = { ... }
    • mergeErrorUtilizationPenalty

      public ClientSideWeightedRoundRobin.Builder mergeErrorUtilizationPenalty(com.google.protobuf.FloatValue value)
       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.
       
      .google.protobuf.FloatValue error_utilization_penalty = 6 [(.validate.rules) = { ... }
    • clearErrorUtilizationPenalty

      public ClientSideWeightedRoundRobin.Builder clearErrorUtilizationPenalty()
       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.
       
      .google.protobuf.FloatValue error_utilization_penalty = 6 [(.validate.rules) = { ... }
    • getErrorUtilizationPenaltyBuilder

      public com.google.protobuf.FloatValue.Builder getErrorUtilizationPenaltyBuilder()
       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.
       
      .google.protobuf.FloatValue error_utilization_penalty = 6 [(.validate.rules) = { ... }
    • getErrorUtilizationPenaltyOrBuilder

      public com.google.protobuf.FloatValueOrBuilder getErrorUtilizationPenaltyOrBuilder()
       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.
       
      .google.protobuf.FloatValue error_utilization_penalty = 6 [(.validate.rules) = { ... }
      Specified by:
      getErrorUtilizationPenaltyOrBuilder in interface ClientSideWeightedRoundRobinOrBuilder
    • getMetricNamesForComputingUtilizationList

      public com.google.protobuf.ProtocolStringList getMetricNamesForComputingUtilizationList()
       By default, endpoint weight is computed based on the :ref:`application_utilization <envoy_v3_api_field_.xds.data.orca.v3.OrcaLoadReport.application_utilization>` field reported by the endpoint.
       If that field is not set, then utilization will instead be computed by taking the max of the values of the metrics specified here.
       For map fields in the ORCA proto, the string will be of the form ``<map_field_name>.<map_key>``. For example, the string ``named_metrics.foo`` will mean to look for the key ``foo`` in the ORCA :ref:`named_metrics <envoy_v3_api_field_.xds.data.orca.v3.OrcaLoadReport.named_metrics>` field.
       If none of the specified metrics are present in the load report, then :ref:`cpu_utilization <envoy_v3_api_field_.xds.data.orca.v3.OrcaLoadReport.cpu_utilization>` is used instead.
       
      repeated string metric_names_for_computing_utilization = 7;
      Specified by:
      getMetricNamesForComputingUtilizationList in interface ClientSideWeightedRoundRobinOrBuilder
      Returns:
      A list containing the metricNamesForComputingUtilization.
    • getMetricNamesForComputingUtilizationCount

      public int getMetricNamesForComputingUtilizationCount()
       By default, endpoint weight is computed based on the :ref:`application_utilization <envoy_v3_api_field_.xds.data.orca.v3.OrcaLoadReport.application_utilization>` field reported by the endpoint.
       If that field is not set, then utilization will instead be computed by taking the max of the values of the metrics specified here.
       For map fields in the ORCA proto, the string will be of the form ``<map_field_name>.<map_key>``. For example, the string ``named_metrics.foo`` will mean to look for the key ``foo`` in the ORCA :ref:`named_metrics <envoy_v3_api_field_.xds.data.orca.v3.OrcaLoadReport.named_metrics>` field.
       If none of the specified metrics are present in the load report, then :ref:`cpu_utilization <envoy_v3_api_field_.xds.data.orca.v3.OrcaLoadReport.cpu_utilization>` is used instead.
       
      repeated string metric_names_for_computing_utilization = 7;
      Specified by:
      getMetricNamesForComputingUtilizationCount in interface ClientSideWeightedRoundRobinOrBuilder
      Returns:
      The count of metricNamesForComputingUtilization.
    • getMetricNamesForComputingUtilization

      public String getMetricNamesForComputingUtilization(int index)
       By default, endpoint weight is computed based on the :ref:`application_utilization <envoy_v3_api_field_.xds.data.orca.v3.OrcaLoadReport.application_utilization>` field reported by the endpoint.
       If that field is not set, then utilization will instead be computed by taking the max of the values of the metrics specified here.
       For map fields in the ORCA proto, the string will be of the form ``<map_field_name>.<map_key>``. For example, the string ``named_metrics.foo`` will mean to look for the key ``foo`` in the ORCA :ref:`named_metrics <envoy_v3_api_field_.xds.data.orca.v3.OrcaLoadReport.named_metrics>` field.
       If none of the specified metrics are present in the load report, then :ref:`cpu_utilization <envoy_v3_api_field_.xds.data.orca.v3.OrcaLoadReport.cpu_utilization>` is used instead.
       
      repeated string metric_names_for_computing_utilization = 7;
      Specified by:
      getMetricNamesForComputingUtilization in interface ClientSideWeightedRoundRobinOrBuilder
      Parameters:
      index - The index of the element to return.
      Returns:
      The metricNamesForComputingUtilization at the given index.
    • getMetricNamesForComputingUtilizationBytes

      public com.google.protobuf.ByteString getMetricNamesForComputingUtilizationBytes(int index)
       By default, endpoint weight is computed based on the :ref:`application_utilization <envoy_v3_api_field_.xds.data.orca.v3.OrcaLoadReport.application_utilization>` field reported by the endpoint.
       If that field is not set, then utilization will instead be computed by taking the max of the values of the metrics specified here.
       For map fields in the ORCA proto, the string will be of the form ``<map_field_name>.<map_key>``. For example, the string ``named_metrics.foo`` will mean to look for the key ``foo`` in the ORCA :ref:`named_metrics <envoy_v3_api_field_.xds.data.orca.v3.OrcaLoadReport.named_metrics>` field.
       If none of the specified metrics are present in the load report, then :ref:`cpu_utilization <envoy_v3_api_field_.xds.data.orca.v3.OrcaLoadReport.cpu_utilization>` is used instead.
       
      repeated string metric_names_for_computing_utilization = 7;
      Specified by:
      getMetricNamesForComputingUtilizationBytes in interface ClientSideWeightedRoundRobinOrBuilder
      Parameters:
      index - The index of the value to return.
      Returns:
      The bytes of the metricNamesForComputingUtilization at the given index.
    • setMetricNamesForComputingUtilization

      public ClientSideWeightedRoundRobin.Builder setMetricNamesForComputingUtilization(int index, String value)
       By default, endpoint weight is computed based on the :ref:`application_utilization <envoy_v3_api_field_.xds.data.orca.v3.OrcaLoadReport.application_utilization>` field reported by the endpoint.
       If that field is not set, then utilization will instead be computed by taking the max of the values of the metrics specified here.
       For map fields in the ORCA proto, the string will be of the form ``<map_field_name>.<map_key>``. For example, the string ``named_metrics.foo`` will mean to look for the key ``foo`` in the ORCA :ref:`named_metrics <envoy_v3_api_field_.xds.data.orca.v3.OrcaLoadReport.named_metrics>` field.
       If none of the specified metrics are present in the load report, then :ref:`cpu_utilization <envoy_v3_api_field_.xds.data.orca.v3.OrcaLoadReport.cpu_utilization>` is used instead.
       
      repeated string metric_names_for_computing_utilization = 7;
      Parameters:
      index - The index to set the value at.
      value - The metricNamesForComputingUtilization to set.
      Returns:
      This builder for chaining.
    • addMetricNamesForComputingUtilization

      public ClientSideWeightedRoundRobin.Builder addMetricNamesForComputingUtilization(String value)
       By default, endpoint weight is computed based on the :ref:`application_utilization <envoy_v3_api_field_.xds.data.orca.v3.OrcaLoadReport.application_utilization>` field reported by the endpoint.
       If that field is not set, then utilization will instead be computed by taking the max of the values of the metrics specified here.
       For map fields in the ORCA proto, the string will be of the form ``<map_field_name>.<map_key>``. For example, the string ``named_metrics.foo`` will mean to look for the key ``foo`` in the ORCA :ref:`named_metrics <envoy_v3_api_field_.xds.data.orca.v3.OrcaLoadReport.named_metrics>` field.
       If none of the specified metrics are present in the load report, then :ref:`cpu_utilization <envoy_v3_api_field_.xds.data.orca.v3.OrcaLoadReport.cpu_utilization>` is used instead.
       
      repeated string metric_names_for_computing_utilization = 7;
      Parameters:
      value - The metricNamesForComputingUtilization to add.
      Returns:
      This builder for chaining.
    • addAllMetricNamesForComputingUtilization

      public ClientSideWeightedRoundRobin.Builder addAllMetricNamesForComputingUtilization(Iterable<String> values)
       By default, endpoint weight is computed based on the :ref:`application_utilization <envoy_v3_api_field_.xds.data.orca.v3.OrcaLoadReport.application_utilization>` field reported by the endpoint.
       If that field is not set, then utilization will instead be computed by taking the max of the values of the metrics specified here.
       For map fields in the ORCA proto, the string will be of the form ``<map_field_name>.<map_key>``. For example, the string ``named_metrics.foo`` will mean to look for the key ``foo`` in the ORCA :ref:`named_metrics <envoy_v3_api_field_.xds.data.orca.v3.OrcaLoadReport.named_metrics>` field.
       If none of the specified metrics are present in the load report, then :ref:`cpu_utilization <envoy_v3_api_field_.xds.data.orca.v3.OrcaLoadReport.cpu_utilization>` is used instead.
       
      repeated string metric_names_for_computing_utilization = 7;
      Parameters:
      values - The metricNamesForComputingUtilization to add.
      Returns:
      This builder for chaining.
    • clearMetricNamesForComputingUtilization

      public ClientSideWeightedRoundRobin.Builder clearMetricNamesForComputingUtilization()
       By default, endpoint weight is computed based on the :ref:`application_utilization <envoy_v3_api_field_.xds.data.orca.v3.OrcaLoadReport.application_utilization>` field reported by the endpoint.
       If that field is not set, then utilization will instead be computed by taking the max of the values of the metrics specified here.
       For map fields in the ORCA proto, the string will be of the form ``<map_field_name>.<map_key>``. For example, the string ``named_metrics.foo`` will mean to look for the key ``foo`` in the ORCA :ref:`named_metrics <envoy_v3_api_field_.xds.data.orca.v3.OrcaLoadReport.named_metrics>` field.
       If none of the specified metrics are present in the load report, then :ref:`cpu_utilization <envoy_v3_api_field_.xds.data.orca.v3.OrcaLoadReport.cpu_utilization>` is used instead.
       
      repeated string metric_names_for_computing_utilization = 7;
      Returns:
      This builder for chaining.
    • addMetricNamesForComputingUtilizationBytes

      public ClientSideWeightedRoundRobin.Builder addMetricNamesForComputingUtilizationBytes(com.google.protobuf.ByteString value)
       By default, endpoint weight is computed based on the :ref:`application_utilization <envoy_v3_api_field_.xds.data.orca.v3.OrcaLoadReport.application_utilization>` field reported by the endpoint.
       If that field is not set, then utilization will instead be computed by taking the max of the values of the metrics specified here.
       For map fields in the ORCA proto, the string will be of the form ``<map_field_name>.<map_key>``. For example, the string ``named_metrics.foo`` will mean to look for the key ``foo`` in the ORCA :ref:`named_metrics <envoy_v3_api_field_.xds.data.orca.v3.OrcaLoadReport.named_metrics>` field.
       If none of the specified metrics are present in the load report, then :ref:`cpu_utilization <envoy_v3_api_field_.xds.data.orca.v3.OrcaLoadReport.cpu_utilization>` is used instead.
       
      repeated string metric_names_for_computing_utilization = 7;
      Parameters:
      value - The bytes of the metricNamesForComputingUtilization to add.
      Returns:
      This builder for chaining.
    • hasSlowStartConfig

      public boolean hasSlowStartConfig()
       Configuration for slow start mode.
       If this configuration is not set, slow start will not be not enabled.
       
      .envoy.extensions.load_balancing_policies.common.v3.SlowStartConfig slow_start_config = 8;
      Specified by:
      hasSlowStartConfig in interface ClientSideWeightedRoundRobinOrBuilder
      Returns:
      Whether the slowStartConfig field is set.
    • getSlowStartConfig

      public SlowStartConfig getSlowStartConfig()
       Configuration for slow start mode.
       If this configuration is not set, slow start will not be not enabled.
       
      .envoy.extensions.load_balancing_policies.common.v3.SlowStartConfig slow_start_config = 8;
      Specified by:
      getSlowStartConfig in interface ClientSideWeightedRoundRobinOrBuilder
      Returns:
      The slowStartConfig.
    • setSlowStartConfig

      public ClientSideWeightedRoundRobin.Builder setSlowStartConfig(SlowStartConfig value)
       Configuration for slow start mode.
       If this configuration is not set, slow start will not be not enabled.
       
      .envoy.extensions.load_balancing_policies.common.v3.SlowStartConfig slow_start_config = 8;
    • setSlowStartConfig

      public ClientSideWeightedRoundRobin.Builder setSlowStartConfig(SlowStartConfig.Builder builderForValue)
       Configuration for slow start mode.
       If this configuration is not set, slow start will not be not enabled.
       
      .envoy.extensions.load_balancing_policies.common.v3.SlowStartConfig slow_start_config = 8;
    • mergeSlowStartConfig

      public ClientSideWeightedRoundRobin.Builder mergeSlowStartConfig(SlowStartConfig value)
       Configuration for slow start mode.
       If this configuration is not set, slow start will not be not enabled.
       
      .envoy.extensions.load_balancing_policies.common.v3.SlowStartConfig slow_start_config = 8;
    • clearSlowStartConfig

      public ClientSideWeightedRoundRobin.Builder clearSlowStartConfig()
       Configuration for slow start mode.
       If this configuration is not set, slow start will not be not enabled.
       
      .envoy.extensions.load_balancing_policies.common.v3.SlowStartConfig slow_start_config = 8;
    • getSlowStartConfigBuilder

      public SlowStartConfig.Builder getSlowStartConfigBuilder()
       Configuration for slow start mode.
       If this configuration is not set, slow start will not be not enabled.
       
      .envoy.extensions.load_balancing_policies.common.v3.SlowStartConfig slow_start_config = 8;
    • getSlowStartConfigOrBuilder

      public SlowStartConfigOrBuilder getSlowStartConfigOrBuilder()
       Configuration for slow start mode.
       If this configuration is not set, slow start will not be not enabled.
       
      .envoy.extensions.load_balancing_policies.common.v3.SlowStartConfig slow_start_config = 8;
      Specified by:
      getSlowStartConfigOrBuilder in interface ClientSideWeightedRoundRobinOrBuilder
    • setUnknownFields

      public final ClientSideWeightedRoundRobin.Builder setUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      Specified by:
      setUnknownFields in interface com.google.protobuf.Message.Builder
      Overrides:
      setUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<ClientSideWeightedRoundRobin.Builder>
    • mergeUnknownFields

      public final ClientSideWeightedRoundRobin.Builder mergeUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      Specified by:
      mergeUnknownFields in interface com.google.protobuf.Message.Builder
      Overrides:
      mergeUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<ClientSideWeightedRoundRobin.Builder>