pub struct HealthConfig {
pub system_cpu: Vec<Step>,
pub load_avg: Vec<Step>,
pub process_cpu: Vec<Step>,
pub memory_gb: Vec<Step>,
pub threads: Vec<Step>,
pub fds: Vec<Step>,
}Expand description
Configurable thresholds for SystemHealth::quick_check /
SystemHealth::health_score.
Each metric (system_cpu / load_avg / process_cpu / memory_gb /
threads / fds) accepts a list of Steps. When the metric exceeds a
step’s threshold, the step’s penalty is subtracted from the running
score (starting at 100). The first matching step wins, so list steps in
descending threshold order.
The load-average steps are interpreted as multipliers of num_cpus::get()
(e.g. Step::new(2.0, 25.0) applies when load exceeds 2 × CPU count).
The defaults in HealthConfig::default match the v0.9.x behavior
exactly so existing dashboards do not shift unexpectedly.
§Example
use metrics_lib::{HealthConfig, Step, SystemHealth};
use std::time::Duration;
// Stricter CPU thresholds for a CPU-bound workload.
let cfg = HealthConfig {
system_cpu: vec![
Step::new(70.0, 30.0),
Step::new(50.0, 15.0),
Step::new(30.0, 5.0),
],
..HealthConfig::default()
};
let health = SystemHealth::with_config(Duration::from_millis(500), cfg);
let _ = health.health_score();Fields§
§system_cpu: Vec<Step>Penalty steps applied to the system-wide CPU percentage (0..=100).
load_avg: Vec<Step>Penalty steps applied to the 1-minute load average, expressed as a
multiplier of num_cpus::get() (e.g. threshold 2.0 ⇒ trips
when load > 2× cores).
process_cpu: Vec<Step>Penalty steps applied to the process CPU percentage (0..=100).
memory_gb: Vec<Step>Penalty steps applied to system memory used, in gigabytes.
threads: Vec<Step>Penalty steps applied to the process thread count.
fds: Vec<Step>Penalty steps applied to the process file-descriptor count.
Trait Implementations§
Source§impl Clone for HealthConfig
impl Clone for HealthConfig
Source§fn clone(&self) -> HealthConfig
fn clone(&self) -> HealthConfig
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 HealthConfig
impl Debug for HealthConfig
Source§impl Default for HealthConfig
impl Default for HealthConfig
Source§impl PartialEq for HealthConfig
impl PartialEq for HealthConfig
Source§fn eq(&self, other: &HealthConfig) -> bool
fn eq(&self, other: &HealthConfig) -> bool
self and other values to be equal, and is used by ==.