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
.. 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
impl Clone for HealthCheck
Source§fn clone(&self) -> HealthCheck
fn clone(&self) -> HealthCheck
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for HealthCheck
impl Debug for HealthCheck
Source§impl Default for HealthCheck
impl Default for HealthCheck
Source§impl Message for HealthCheck
impl Message for HealthCheck
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self
. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self
.Source§impl Name for HealthCheck
impl Name for HealthCheck
Source§const NAME: &'static str = "HealthCheck"
const NAME: &'static str = "HealthCheck"
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"
const PACKAGE: &'static str = "envoy.config.core.v3"
.
, e.g. google.protobuf
.Source§fn full_name() -> String
fn full_name() -> String
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§impl PartialEq for HealthCheck
impl PartialEq for HealthCheck
impl StructuralPartialEq for HealthCheck
Auto Trait Implementations§
impl Freeze for HealthCheck
impl RefUnwindSafe for HealthCheck
impl Send for HealthCheck
impl Sync for HealthCheck
impl Unpin for HealthCheck
impl UnwindSafe for HealthCheck
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request