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: u64Number 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
impl Clone for SupervisorHealthEntry
Source§fn clone(&self) -> SupervisorHealthEntry
fn clone(&self) -> SupervisorHealthEntry
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more