Skip to main content

SupervisorHealthEntry

Struct SupervisorHealthEntry 

Source
pub struct SupervisorHealthEntry {
    pub module_id: String,
    pub status: SupervisorHealthStatus,
    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>,
    pub last_probe_ms: Option<u64>,
}

Fields§

§module_id: String§status: SupervisorHealthStatus§detail: Option<String>

The module’s own human-readable note on its state. Absent means the module said nothing, which is the ordinary shape for a healthy module and is NOT a claim that nothing is wrong. Never parse it: it is prose the module may reword freely, and status plus metrics are the machine surface.

§metrics: Option<Value>

The module’s own metrics object, relayed opaquely. Absent means the module published none on this probe — either it reports no metrics at all, or the probe did not reach it — so absence cannot distinguish “nothing to report” from “nobody asked”. Read last_probe_ms to tell those apart.

§consecutive_failures: u32§late_answer_count: u64

Number of recurring health replies received after their daemon deadline. Each increment is evidence that the module remained alive despite a miss.

§last_late_answer_latency_ms: Option<u64>

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

§last_action: Option<String>

The escalation the supervisor last took for this module (report, restart, alert). Absent means NO ACTION HAS EVER BEEN TAKEN, not that the last one succeeded — a module that has never misbehaved and one whose action record predates a daemon restart both present as absent.

§last_action_ms: Option<u64>

When last_action was taken, as unix milliseconds. Absent exactly when last_action is absent; the pair moves together.

§last_probe_ms: Option<u64>

When the daemon last collected this entry, as unix milliseconds.

supervisor.health answers from the supervisor’s STORED record rather than probing, so every field above describes some moment in the past and nothing here said which. That matters most right after a restart, where the surface is used to confirm a deploy: a record collected before the restart reports the OLD process, reads as a failed deploy, and invites a redeploy of something that was already correct.

None means never probed — distinct from probed-long-ago, and the reader must not collapse them. Absent on modules that advertise no health capability, which is why it is optional rather than defaulted to zero.

Trait Implementations§

Source§

impl Clone for SupervisorHealthEntry

Source§

fn clone(&self) -> SupervisorHealthEntry

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 SupervisorHealthEntry

Source§

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

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

impl<'de> Deserialize<'de> for SupervisorHealthEntry

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl PartialEq for SupervisorHealthEntry

Source§

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

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

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

Inequality operator !=. Read more
Source§

impl Serialize for SupervisorHealthEntry

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for SupervisorHealthEntry

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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> 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 = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.