pub struct DaemonHealth {
pub agents: AgentCounts,
pub inference: Vec<PoolOccupancy>,
pub tools_busy: usize,
pub tools_queued: usize,
pub tools_parked: usize,
pub tools_workers: usize,
pub dead_cycles: u32,
pub relief_granted: usize,
pub redrive_secs: u64,
pub providers_down: Vec<ProviderCircuitState>,
}Expand description
The daemon’s own health, alongside the run listing.
A per-run view answers “what is this run doing”; this answers “is the daemon getting anywhere at all”. They are different questions, and issue #191 was only visible in the second: every individual run looked fine, and the factory as a whole had not moved in hours.
Fields§
§agents: AgentCountsLoaded agents by status.
inference: Vec<PoolOccupancy>Inference-pool occupancy, one entry per model actually used.
tools_busy: usizeTool batches holding lane capacity and running.
tools_queued: usizeTool batches waiting for lane capacity.
tools_parked: usizeTool batches parked on an unbounded wait, holding no capacity.
tools_workers: usizeThe tool lane’s concurrency cap, including any relief granted.
dead_cycles: u32Consecutive safety re-drives that found a lane at capacity and no run moving. Zero on a healthy daemon, and reset by any sign of progress.
relief_granted: usizeHow many extra tool-lane permits the relief valve has handed out.
redrive_secs: u64How often the daemon re-drives itself, so a client can turn
dead_cycles into wall-clock time.
providers_down: Vec<ProviderCircuitState>Providers currently out of service, and when each is probed again.
Empty on a healthy daemon. #[serde(default)] so an older client still
parses a newer daemon’s response (issue #201).
Trait Implementations§
Source§impl Clone for DaemonHealth
impl Clone for DaemonHealth
Source§fn clone(&self) -> DaemonHealth
fn clone(&self) -> DaemonHealth
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for DaemonHealth
impl Debug for DaemonHealth
Source§impl Default for DaemonHealth
impl Default for DaemonHealth
Source§fn default() -> DaemonHealth
fn default() -> DaemonHealth
Source§impl<'de> Deserialize<'de> for DaemonHealth
impl<'de> Deserialize<'de> for DaemonHealth
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for DaemonHealth
impl PartialEq for DaemonHealth
Source§impl Serialize for DaemonHealth
impl Serialize for DaemonHealth
impl StructuralPartialEq for DaemonHealth
Auto Trait Implementations§
impl Freeze for DaemonHealth
impl RefUnwindSafe for DaemonHealth
impl Send for DaemonHealth
impl Sync for DaemonHealth
impl Unpin for DaemonHealth
impl UnsafeUnpin for DaemonHealth
impl UnwindSafe for DaemonHealth
Blanket Implementations§
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
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,
impl<T> ConditionalSend for Twhere
T: Send,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> FromTemplate for T
impl<T> FromTemplate for T
Source§impl<T> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere
T: Default,
Source§fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Creates Self using default().
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> IntoResult<T> for T
impl<T> IntoResult<T> for T
Source§fn into_result(self) -> Result<T, RunSystemError>
fn into_result(self) -> Result<T, RunSystemError>
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> Serialize for T
impl<T> Serialize for T
fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>
fn do_erased_serialize( &self, serializer: &mut dyn Serializer, ) -> Result<(), ErrorImpl>
Source§impl<T> Template for T
impl<T> Template for T
Source§fn build_template(
&self,
_context: &mut TemplateContext<'_, '_>,
) -> Result<<T as Template>::Output, BevyError>
fn build_template( &self, _context: &mut TemplateContext<'_, '_>, ) -> Result<<T as Template>::Output, BevyError>
entity context to produce a Template::Output.Source§fn clone_template(&self) -> T
fn clone_template(&self) -> T
Clone.