pub struct HealthParams {
pub window_ms: u64,
pub consecutive_failures: u32,
pub failure_ratio: f64,
pub failure_min_volume: u32,
pub eject_ms: u64,
pub half_open_probes: u32,
pub recovery_ramp_ms: u64,
}Expand description
Resolved (validated) passive-health parameters, shared per upstream and
snapshotted inside each balancer state generation. A rebuild with new
config swaps the whole Arc; in-flight reports pin the generation they
were dispatched with, so parameter changes apply only to new
observations.
Fields§
§window_ms: u64Rolling observation window for the failure ratio (milliseconds).
consecutive_failures: u32Eject after this many consecutive transport/5xx outcomes.
failure_ratio: f64Eject when the in-window failure share is >= this ratio AND volume
is >= failure_min_volume.
failure_min_volume: u32Minimum observations in the window before failure_ratio applies.
eject_ms: u64How long an ejected endpoint stays out of rotation (milliseconds).
half_open_probes: u32Trial requests allowed through per half-open recovery attempt.
recovery_ramp_ms: u64Recovery ramp window in milliseconds (REL-06, #217). When > 0, a recovered endpoint ramps its effective weight from 1 to its configured weight over this window. Default 0 = no ramp.
Implementations§
Source§impl HealthParams
impl HealthParams
Sourcepub fn from_config(h: &PassiveHealth) -> Self
pub fn from_config(h: &PassiveHealth) -> Self
Resolve from the config form (serde already applied defaults; this is the single place production defaults live for direct construction too).
Trait Implementations§
Source§impl Clone for HealthParams
impl Clone for HealthParams
Source§fn clone(&self) -> HealthParams
fn clone(&self) -> HealthParams
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for HealthParams
impl Debug for HealthParams
Source§impl PartialEq for HealthParams
impl PartialEq for HealthParams
impl Copy for HealthParams
impl StructuralPartialEq for HealthParams
Auto Trait Implementations§
impl Freeze for HealthParams
impl RefUnwindSafe for HealthParams
impl Send for HealthParams
impl Sync for HealthParams
impl Unpin for HealthParams
impl UnwindSafe for HealthParams
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