pub struct ActiveHealth {
pub kind: ProbeKind,
pub path: String,
pub interval_ms: u64,
pub timeout_ms: u64,
pub success_threshold: u32,
pub failure_threshold: u32,
pub jitter_ms: u64,
}Expand description
Active health check knobs (DW-013). A block with no keys enables HTTP probes with the defaults.
Probe semantics (frozen):
httpprobes issueGET {path}over HTTP/1.1 DIRECTLY to the endpoint (bypassing load balancing and the pooled client); success is a 2xx status. Redirects (3xx) are NOT followed — a health endpoint answering 3xx is treated as a failure (a load balancer must not chase redirects to decide health).tcpprobes succeed when a TCP connection completes withintimeout_ms.- Full jitter: each loop sleeps
interval_msplus a uniform random0..jitter_msbefore the next probe.
Fields§
§kind: ProbeKindProbe kind (default http).
path: StringPath probed by http checks (default /healthz). Ignored by tcp.
interval_ms: u64Time between probe attempts in milliseconds (default 5000). Must be
=
timeout_msand >=jitter_ms.
timeout_ms: u64Per-probe timeout in milliseconds (default 2000), covering connect plus the response for http probes.
success_threshold: u32Consecutive probe SUCCESSES required to (re)admit an ejected endpoint (default 2).
failure_threshold: u32Consecutive probe FAILURES required to eject a healthy endpoint (default 3). Reports the same per-endpoint streak the passive checker uses; see the active-health module docs for precedence.
jitter_ms: u64Full-jitter bound in milliseconds (default 500): each loop sleeps a
uniform random 0..jitter_ms in addition to interval_ms. Must be
<= interval_ms.
Trait Implementations§
Source§impl Clone for ActiveHealth
impl Clone for ActiveHealth
Source§fn clone(&self) -> ActiveHealth
fn clone(&self) -> ActiveHealth
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ActiveHealth
impl Debug for ActiveHealth
Source§impl Default for ActiveHealth
impl Default for ActiveHealth
Source§impl<'de> Deserialize<'de> for ActiveHealth
impl<'de> Deserialize<'de> for ActiveHealth
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for ActiveHealth
impl JsonSchema for ActiveHealth
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl PartialEq for ActiveHealth
impl PartialEq for ActiveHealth
Source§impl Serialize for ActiveHealth
impl Serialize for ActiveHealth
impl StructuralPartialEq for ActiveHealth
Auto Trait Implementations§
impl Freeze for ActiveHealth
impl RefUnwindSafe for ActiveHealth
impl Send for ActiveHealth
impl Sync for ActiveHealth
impl Unpin for ActiveHealth
impl UnwindSafe for ActiveHealth
Blanket Implementations§
§impl<T> AnyExt for T
impl<T> AnyExt for T
§fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
T behind reference§fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
T behind mutable reference§fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
T behind Rc pointer§fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
T behind Arc pointer§fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
T behind Box pointer§fn downcast_move<T>(this: Self) -> Option<T>
fn downcast_move<T>(this: Self) -> Option<T>
Self to T,
useful only in generic context as a workaround for specializationSource§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,
§impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
fn coerce_rc_to(self: Rc<X>) -> Rc<T>
fn coerce_box_to(self: Box<X>) -> Box<T>
fn coerce_ref_to(&self) -> &T
fn coerce_mut_to(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more