Struct OutlierDetection

Source
pub struct OutlierDetection {
Show 24 fields pub consecutive_5xx: Option<UInt32Value>, pub interval: Option<Duration>, pub base_ejection_time: Option<Duration>, pub max_ejection_percent: Option<UInt32Value>, pub enforcing_consecutive_5xx: Option<UInt32Value>, pub enforcing_success_rate: Option<UInt32Value>, pub success_rate_minimum_hosts: Option<UInt32Value>, pub success_rate_request_volume: Option<UInt32Value>, pub success_rate_stdev_factor: Option<UInt32Value>, pub consecutive_gateway_failure: Option<UInt32Value>, pub enforcing_consecutive_gateway_failure: Option<UInt32Value>, pub split_external_local_origin_errors: bool, pub consecutive_local_origin_failure: Option<UInt32Value>, pub enforcing_consecutive_local_origin_failure: Option<UInt32Value>, pub enforcing_local_origin_success_rate: Option<UInt32Value>, pub failure_percentage_threshold: Option<UInt32Value>, pub enforcing_failure_percentage: Option<UInt32Value>, pub enforcing_failure_percentage_local_origin: Option<UInt32Value>, pub failure_percentage_minimum_hosts: Option<UInt32Value>, pub failure_percentage_request_volume: Option<UInt32Value>, pub max_ejection_time: Option<Duration>, pub max_ejection_time_jitter: Option<Duration>, pub successful_active_health_check_uneject_host: Option<BoolValue>, pub monitors: Vec<TypedExtensionConfig>,
}
Expand description

See the :ref:architecture overview <arch_overview_outlier_detection> for more information on outlier detection. [#next-free-field: 25]

Fields§

§consecutive_5xx: Option<UInt32Value>

The number of consecutive server-side error responses (for HTTP traffic, 5xx responses; for TCP traffic, connection failures; for Redis, failure to respond PONG; etc.) before a consecutive 5xx ejection occurs. Defaults to 5.

§interval: Option<Duration>

The time interval between ejection analysis sweeps. This can result in both new ejections as well as hosts being returned to service. Defaults to 10000ms or 10s.

§base_ejection_time: Option<Duration>

The base time that a host is ejected for. The real time is equal to the base time multiplied by the number of times the host has been ejected and is capped by :ref:max_ejection_time<envoy_v3_api_field_config.cluster.v3.OutlierDetection.max_ejection_time>. Defaults to 30000ms or 30s.

§max_ejection_percent: Option<UInt32Value>

The maximum % of an upstream cluster that can be ejected due to outlier detection. Defaults to 10% but will eject at least one host regardless of the value.

§enforcing_consecutive_5xx: Option<UInt32Value>

The % chance that a host will be actually ejected when an outlier status is detected through consecutive 5xx. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100.

§enforcing_success_rate: Option<UInt32Value>

The % chance that a host will be actually ejected when an outlier status is detected through success rate statistics. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100.

§success_rate_minimum_hosts: Option<UInt32Value>

The number of hosts in a cluster that must have enough request volume to detect success rate outliers. If the number of hosts is less than this setting, outlier detection via success rate statistics is not performed for any host in the cluster. Defaults to 5.

§success_rate_request_volume: Option<UInt32Value>

The minimum number of total requests that must be collected in one interval (as defined by the interval duration above) to include this host in success rate based outlier detection. If the volume is lower than this setting, outlier detection via success rate statistics is not performed for that host. Defaults to 100.

§success_rate_stdev_factor: Option<UInt32Value>

This factor is used to determine the ejection threshold for success rate outlier ejection. The ejection threshold is the difference between the mean success rate, and the product of this factor and the standard deviation of the mean success rate: mean - (stdev * success_rate_stdev_factor). This factor is divided by a thousand to get a double. That is, if the desired factor is 1.9, the runtime value should be 1900. Defaults to 1900.

§consecutive_gateway_failure: Option<UInt32Value>

The number of consecutive gateway failures (502, 503, 504 status codes) before a consecutive gateway failure ejection occurs. Defaults to 5.

§enforcing_consecutive_gateway_failure: Option<UInt32Value>

The % chance that a host will be actually ejected when an outlier status is detected through consecutive gateway failures. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 0.

§split_external_local_origin_errors: bool

Determines whether to distinguish local origin failures from external errors. If set to true the following configuration parameters are taken into account: :ref:consecutive_local_origin_failure<envoy_v3_api_field_config.cluster.v3.OutlierDetection.consecutive_local_origin_failure>, :ref:enforcing_consecutive_local_origin_failure<envoy_v3_api_field_config.cluster.v3.OutlierDetection.enforcing_consecutive_local_origin_failure> and :ref:enforcing_local_origin_success_rate<envoy_v3_api_field_config.cluster.v3.OutlierDetection.enforcing_local_origin_success_rate>. Defaults to false.

§consecutive_local_origin_failure: Option<UInt32Value>

The number of consecutive locally originated failures before ejection occurs. Defaults to 5. Parameter takes effect only when :ref:split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors> is set to true.

§enforcing_consecutive_local_origin_failure: Option<UInt32Value>

The % chance that a host will be actually ejected when an outlier status is detected through consecutive locally originated failures. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100. Parameter takes effect only when :ref:split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors> is set to true.

§enforcing_local_origin_success_rate: Option<UInt32Value>

The % chance that a host will be actually ejected when an outlier status is detected through success rate statistics for locally originated errors. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100. Parameter takes effect only when :ref:split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors> is set to true.

§failure_percentage_threshold: Option<UInt32Value>

The failure percentage to use when determining failure percentage-based outlier detection. If the failure percentage of a given host is greater than or equal to this value, it will be ejected. Defaults to 85.

§enforcing_failure_percentage: Option<UInt32Value>

The % chance that a host will be actually ejected when an outlier status is detected through failure percentage statistics. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 0.

[#next-major-version: setting this without setting failure_percentage_threshold should be invalid in v4.]

§enforcing_failure_percentage_local_origin: Option<UInt32Value>

The % chance that a host will be actually ejected when an outlier status is detected through local-origin failure percentage statistics. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 0.

§failure_percentage_minimum_hosts: Option<UInt32Value>

The minimum number of hosts in a cluster in order to perform failure percentage-based ejection. If the total number of hosts in the cluster is less than this value, failure percentage-based ejection will not be performed. Defaults to 5.

§failure_percentage_request_volume: Option<UInt32Value>

The minimum number of total requests that must be collected in one interval (as defined by the interval duration above) to perform failure percentage-based ejection for this host. If the volume is lower than this setting, failure percentage-based ejection will not be performed for this host. Defaults to 50.

§max_ejection_time: Option<Duration>

The maximum time that a host is ejected for. See :ref:base_ejection_time<envoy_v3_api_field_config.cluster.v3.OutlierDetection.base_ejection_time> for more information. If not specified, the default value (300000ms or 300s) or :ref:base_ejection_time<envoy_v3_api_field_config.cluster.v3.OutlierDetection.base_ejection_time> value is applied, whatever is larger.

§max_ejection_time_jitter: Option<Duration>

The maximum amount of jitter to add to the ejection time, in order to prevent a ‘thundering herd’ effect where all proxies try to reconnect to host at the same time. See :ref:max_ejection_time_jitter<envoy_v3_api_field_config.cluster.v3.OutlierDetection.base_ejection_time> Defaults to 0s.

§successful_active_health_check_uneject_host: Option<BoolValue>

If active health checking is enabled and a host is ejected by outlier detection, a successful active health check unejects the host by default and considers it as healthy. Unejection also clears all the outlier detection counters. To change this default behavior set this config to false where active health checking will not uneject the host. Defaults to true.

§monitors: Vec<TypedExtensionConfig>

Set of host’s passive monitors. [#not-implemented-hide:]

Trait Implementations§

Source§

impl Clone for OutlierDetection

Source§

fn clone(&self) -> OutlierDetection

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for OutlierDetection

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for OutlierDetection

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Message for OutlierDetection

Source§

fn encoded_len(&self) -> usize

Returns the encoded length of the message without a length delimiter.
Source§

fn clear(&mut self)

Clears the message, resetting all fields to their default.
Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>
where Self: Sized,

Encodes the message to a buffer. Read more
Source§

fn encode_to_vec(&self) -> Vec<u8>
where Self: Sized,

Encodes the message to a newly allocated buffer.
Source§

fn encode_length_delimited( &self, buf: &mut impl BufMut, ) -> Result<(), EncodeError>
where Self: Sized,

Encodes the message with a length-delimiter to a buffer. Read more
Source§

fn encode_length_delimited_to_vec(&self) -> Vec<u8>
where Self: Sized,

Encodes the message with a length-delimiter to a newly allocated buffer.
Source§

fn decode(buf: impl Buf) -> Result<Self, DecodeError>
where Self: Default,

Decodes an instance of the message from a buffer. Read more
Source§

fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>
where Self: Default,

Decodes a length-delimited instance of the message from the buffer.
Source§

fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>
where Self: Sized,

Decodes an instance of the message from a buffer, and merges it into self. Read more
Source§

fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>
where Self: Sized,

Decodes a length-delimited instance of the message from buffer, and merges it into self.
Source§

impl Name for OutlierDetection

Source§

const NAME: &'static str = "OutlierDetection"

Simple name for this Message. This name is the same as it appears in the source .proto file, e.g. FooBar.
Source§

const PACKAGE: &'static str = "envoy.config.cluster.v3"

Package name this message type is contained in. They are domain-like and delimited by ., e.g. google.protobuf.
Source§

fn full_name() -> String

Fully-qualified unique name for this Message. It’s prefixed with the package name and names of any parent messages, e.g. google.rpc.BadRequest.FieldViolation. By default, this is the package name followed by the message name. Fully-qualified names must be unique within a domain of Type URLs.
Source§

fn type_url() -> String

Type URL for this Message, which by default is the full name with a leading slash, but may also include a leading domain name, e.g. type.googleapis.com/google.profile.Person. This can be used when serializing into the google.protobuf.Any type.
Source§

impl PartialEq for OutlierDetection

Source§

fn eq(&self, other: &OutlierDetection) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for OutlierDetection

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more