pub struct PlbPeerState {
pub id: PlbPeerId,
pub capacity: u32,
pub in_flight: u32,
pub success_count: u64,
pub failure_count: u64,
pub avg_latency_ms: f64,
pub last_used_ts: u64,
pub is_healthy: bool,
pub weight: f64,
pub cooldown_until_ts: u64,
}Expand description
Runtime state for a single peer tracked by the balancer.
Fields§
§id: PlbPeerIdPeer identifier.
capacity: u32Maximum concurrent requests this peer can handle.
in_flight: u32Currently in-flight requests directed at this peer.
success_count: u64Cumulative successful responses.
failure_count: u64Cumulative failed responses.
avg_latency_ms: f64Exponentially weighted moving average of response latency (ms).
last_used_ts: u64Unix-ms timestamp of the last request sent to this peer.
is_healthy: boolWhether this peer is currently considered healthy.
weight: f64Normalised selection weight in [0, 1].
cooldown_until_ts: u64Unix-ms timestamp at which the cooldown expires (0 = not in cooldown).
Implementations§
Source§impl PlbPeerState
impl PlbPeerState
Sourcepub fn failure_rate(&self) -> f64
pub fn failure_rate(&self) -> f64
Failure rate in [0, 1]. Returns 0 when no requests have been observed.
Trait Implementations§
Source§impl Clone for PlbPeerState
impl Clone for PlbPeerState
Source§fn clone(&self) -> PlbPeerState
fn clone(&self) -> PlbPeerState
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for PlbPeerState
impl RefUnwindSafe for PlbPeerState
impl Send for PlbPeerState
impl Sync for PlbPeerState
impl Unpin for PlbPeerState
impl UnsafeUnpin for PlbPeerState
impl UnwindSafe for PlbPeerState
Blanket Implementations§
impl<T> Allocation for T
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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> 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>
Converts
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>
Converts
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