Struct HealthCheck

Source
pub struct HealthCheck {
Show 22 fields pub timeout: Option<Duration>, pub interval: Option<Duration>, pub initial_jitter: Option<Duration>, pub interval_jitter: Option<Duration>, pub interval_jitter_percent: u32, pub unhealthy_threshold: Option<UInt32Value>, pub healthy_threshold: Option<UInt32Value>, pub alt_port: Option<UInt32Value>, pub reuse_connection: Option<BoolValue>, pub no_traffic_interval: Option<Duration>, pub no_traffic_healthy_interval: Option<Duration>, pub unhealthy_interval: Option<Duration>, pub unhealthy_edge_interval: Option<Duration>, pub healthy_edge_interval: Option<Duration>, pub event_log_path: String, pub event_logger: Vec<TypedExtensionConfig>, pub event_service: Option<EventServiceConfig>, pub always_log_health_check_failures: bool, pub always_log_health_check_success: bool, pub tls_options: Option<TlsOptions>, pub transport_socket_match_criteria: Option<Struct>, pub health_checker: Option<HealthChecker>,
}
Expand description

[#next-free-field: 27]

Fields§

§timeout: Option<Duration>

The time to wait for a health check response. If the timeout is reached the health check attempt will be considered a failure.

§interval: Option<Duration>

The interval between health checks.

§initial_jitter: Option<Duration>

An optional jitter amount in milliseconds. If specified, Envoy will start health checking after for a random time in ms between 0 and initial_jitter. This only applies to the first health check.

§interval_jitter: Option<Duration>

An optional jitter amount in milliseconds. If specified, during every interval Envoy will add interval_jitter to the wait time.

§interval_jitter_percent: u32

An optional jitter amount as a percentage of interval_ms. If specified, during every interval Envoy will add interval_ms * interval_jitter_percent / 100 to the wait time.

If interval_jitter_ms and interval_jitter_percent are both set, both of them will be used to increase the wait time.

§unhealthy_threshold: Option<UInt32Value>

The number of unhealthy health checks required before a host is marked unhealthy. Note that for http health checking if a host responds with a code not in :ref:expected_statuses <envoy_v3_api_field_config.core.v3.HealthCheck.HttpHealthCheck.expected_statuses> or :ref:retriable_statuses <envoy_v3_api_field_config.core.v3.HealthCheck.HttpHealthCheck.retriable_statuses>, this threshold is ignored and the host is considered immediately unhealthy.

§healthy_threshold: Option<UInt32Value>

The number of healthy health checks required before a host is marked healthy. Note that during startup, only a single successful health check is required to mark a host healthy.

§alt_port: Option<UInt32Value>

[#not-implemented-hide:] Non-serving port for health checking.

§reuse_connection: Option<BoolValue>

Reuse health check connection between health checks. Default is true.

§no_traffic_interval: Option<Duration>

The “no traffic interval” is a special health check interval that is used when a cluster has never had traffic routed to it. This lower interval allows cluster information to be kept up to date, without sending a potentially large amount of active health checking traffic for no reason. Once a cluster has been used for traffic routing, Envoy will shift back to using the standard health check interval that is defined. Note that this interval takes precedence over any other.

The default value for “no traffic interval” is 60 seconds.

§no_traffic_healthy_interval: Option<Duration>

The “no traffic healthy interval” is a special health check interval that is used for hosts that are currently passing active health checking (including new hosts) when the cluster has received no traffic.

This is useful for when we want to send frequent health checks with no_traffic_interval but then revert to lower frequency no_traffic_healthy_interval once a host in the cluster is marked as healthy.

Once a cluster has been used for traffic routing, Envoy will shift back to using the standard health check interval that is defined.

If no_traffic_healthy_interval is not set, it will default to the no traffic interval and send that interval regardless of health state.

§unhealthy_interval: Option<Duration>

The “unhealthy interval” is a health check interval that is used for hosts that are marked as unhealthy. As soon as the host is marked as healthy, Envoy will shift back to using the standard health check interval that is defined.

The default value for “unhealthy interval” is the same as “interval”.

§unhealthy_edge_interval: Option<Duration>

The “unhealthy edge interval” is a special health check interval that is used for the first health check right after a host is marked as unhealthy. For subsequent health checks Envoy will shift back to using either “unhealthy interval” if present or the standard health check interval that is defined.

The default value for “unhealthy edge interval” is the same as “unhealthy interval”.

§healthy_edge_interval: Option<Duration>

The “healthy edge interval” is a special health check interval that is used for the first health check right after a host is marked as healthy. For subsequent health checks Envoy will shift back to using the standard health check interval that is defined.

The default value for “healthy edge interval” is the same as the default interval.

§event_log_path: String
👎Deprecated

.. attention:: This field is deprecated in favor of the extension :ref:event_logger <envoy_v3_api_field_config.core.v3.HealthCheck.event_logger> and :ref:event_log_path <envoy_v3_api_field_extensions.health_check.event_sinks.file.v3.HealthCheckEventFileSink.event_log_path> in the file sink extension.

Specifies the path to the :ref:health check event log <arch_overview_health_check_logging>.

§event_logger: Vec<TypedExtensionConfig>

A list of event log sinks to process the health check event. [#extension-category: envoy.health_check.event_sinks]

§event_service: Option<EventServiceConfig>

[#not-implemented-hide:] The gRPC service for the health check event service. If empty, health check events won’t be sent to a remote endpoint.

§always_log_health_check_failures: bool

If set to true, health check failure events will always be logged. If set to false, only the initial health check failure event will be logged. The default value is false.

§always_log_health_check_success: bool

If set to true, health check success events will always be logged. If set to false, only host addition event will be logged if it is the first successful health check, or if the healthy threshold is reached. The default value is false.

§tls_options: Option<TlsOptions>

This allows overriding the cluster TLS settings, just for health check connections.

§transport_socket_match_criteria: Option<Struct>

Optional key/value pairs that will be used to match a transport socket from those specified in the cluster’s :ref:tranport socket matches <envoy_v3_api_field_config.cluster.v3.Cluster.transport_socket_matches>. For example, the following match criteria

.. code-block:: yaml

transport_socket_match_criteria: useMTLS: true

Will match the following :ref:cluster socket match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>

.. code-block:: yaml

transport_socket_matches:

  • name: “useMTLS” match: useMTLS: true transport_socket: name: envoy.transport_sockets.tls config: { … } # tls socket configuration

If this field is set, then for health checks it will supersede an entry of envoy.transport_socket in the :ref:LbEndpoint.Metadata <envoy_v3_api_field_config.endpoint.v3.LbEndpoint.metadata>. This allows using different transport socket capabilities for health checking versus proxying to the endpoint.

If the key/values pairs specified do not match any :ref:transport socket matches <envoy_v3_api_field_config.cluster.v3.Cluster.transport_socket_matches>, the cluster’s :ref:transport socket <envoy_v3_api_field_config.cluster.v3.Cluster.transport_socket> will be used for health check socket configuration.

§health_checker: Option<HealthChecker>

Trait Implementations§

Source§

impl Clone for HealthCheck

Source§

fn clone(&self) -> HealthCheck

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 HealthCheck

Source§

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

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

impl Default for HealthCheck

Source§

fn default() -> Self

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

impl Message for HealthCheck

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 HealthCheck

Source§

const NAME: &'static str = "HealthCheck"

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.core.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 HealthCheck

Source§

fn eq(&self, other: &HealthCheck) -> 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 HealthCheck

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