pub struct HealthMonitor {
pub health_score: u8,
pub issues: Vec<(HealthIssue, SeverityLevel)>,
pub recovery_attempts: u32,
pub last_check: Instant,
}Expand description
Health monitoring state
Fields§
§health_score: u8Overall health score (0-100, where 100 is perfect health)
issues: Vec<(HealthIssue, SeverityLevel)>Detected health issues
recovery_attempts: u32Number of recovery attempts made
last_check: InstantTimestamp of last health check (skipped for serialization as Instant is not serializable)
Implementations§
Source§impl HealthMonitor
impl HealthMonitor
Sourcepub fn add_issue(&mut self, issue: HealthIssue)
pub fn add_issue(&mut self, issue: HealthIssue)
Add a health issue and update the health score
Sourcepub fn remove_issue(&mut self, issue: &HealthIssue)
pub fn remove_issue(&mut self, issue: &HealthIssue)
Remove a health issue and update the health score
Sourcepub fn clear_issues(&mut self)
pub fn clear_issues(&mut self)
Clear all health issues and reset to perfect health
Sourcefn recalculate_score(&mut self)
fn recalculate_score(&mut self)
Recalculate health score based on current issues
Sourcepub fn is_healthy(&self) -> bool
pub fn is_healthy(&self) -> bool
Check if the system is healthy (score >= 70)
Sourcepub fn is_critical(&self) -> bool
pub fn is_critical(&self) -> bool
Check if the system is in critical state (score < 50)
Sourcepub fn issues_by_severity(&self, severity: SeverityLevel) -> Vec<&HealthIssue>
pub fn issues_by_severity(&self, severity: SeverityLevel) -> Vec<&HealthIssue>
Get issues by severity level
Sourcepub fn increment_recovery_attempts(&mut self)
pub fn increment_recovery_attempts(&mut self)
Increment recovery attempt counter
Trait Implementations§
Source§impl Clone for HealthMonitor
impl Clone for HealthMonitor
Source§fn clone(&self) -> HealthMonitor
fn clone(&self) -> HealthMonitor
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for HealthMonitor
impl Debug for HealthMonitor
Source§impl Default for HealthMonitor
impl Default for HealthMonitor
Auto Trait Implementations§
impl Freeze for HealthMonitor
impl RefUnwindSafe for HealthMonitor
impl Send for HealthMonitor
impl Sync for HealthMonitor
impl Unpin for HealthMonitor
impl UnwindSafe for HealthMonitor
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].