Skip to main content

ModuleHealthStatus

Struct ModuleHealthStatus 

Source
pub struct ModuleHealthStatus {
    pub status: SupervisorHealthStatus,
    pub last_probe_ms: Option<u64>,
    pub detail: Option<String>,
    pub metrics: Option<Value>,
    pub consecutive_failures: u32,
    pub late_answer_count: u64,
    pub last_late_answer_latency_ms: Option<u64>,
    pub last_action: Option<String>,
    pub last_action_ms: Option<u64>,
}
Expand description

The supervisor’s view of one module’s health, relayed to clients over channel-0 and rendered by ck health.

THIS TYPE IS WHERE THE ABSENCE MEANINGS ARE CREATED, which is why they are stated here rather than only at the wire type a consumer reads. A reader can look up what None means; only a writer can silently change it, and the writer has no reason to go looking at a downstream contract before editing.

last_probe_ms: None MEANS NEVER PROBED, not probed-long-ago. It is cleared back to None on re-registration precisely so a respawned module does not carry its predecessor’s timestamp — so an old value and an absent one call for opposite readings, and anything that defaulted this to a number would make a never-probed module indistinguishable from one probed at the epoch.

detail and metrics are None when the module published none on this probe, which does not mean it reported nothing wrong — it is also the shape when the probe never reached it. last_probe_ms is what separates those.

Fields§

§status: SupervisorHealthStatus§last_probe_ms: Option<u64>§detail: Option<String>§metrics: Option<Value>§consecutive_failures: u32§late_answer_count: u64

Number of replies received after a recurring health probe’s deadline. Unlike a timeout, every increment proves the module was alive.

§last_late_answer_latency_ms: Option<u64>

End-to-end latency of the newest late reply, measured from probe start.

§last_action: Option<String>§last_action_ms: Option<u64>

Set together with last_action; the pair moves as one, and both being absent means no escalation has ever been taken rather than that the last one succeeded.

Trait Implementations§

Source§

impl Clone for ModuleHealthStatus

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ModuleHealthStatus

Source§

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

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

impl Default for ModuleHealthStatus

Source§

fn default() -> Self

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

impl PartialEq for ModuleHealthStatus

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for ModuleHealthStatus

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> Same for T

Source§

type Output = T

Should always be Self
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 = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

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