From 0c544753f98809a0419620ec4e01168c3ba2eb8e Mon Sep 17 00:00:00 2001 From: Christoffer Martinsson Date: Sat, 25 Oct 2025 22:29:26 +0200 Subject: [PATCH] Move SMART configuration into disk config - Consolidate SMART thresholds into DiskConfig structure - Remove separate SmartConfig - disk collector handles all drive data - Update NixOS configuration to use disk.temperature_* settings - Remove hardcoded temperature thresholds in disk collector - Logical grouping: disk collector owns all disk/drive configuration --- agent/src/collectors/disk.rs | 6 +++--- agent/src/config/mod.rs | 16 +++++----------- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/agent/src/collectors/disk.rs b/agent/src/collectors/disk.rs index cb6baf5..649400a 100644 --- a/agent/src/collectors/disk.rs +++ b/agent/src/collectors/disk.rs @@ -41,11 +41,11 @@ pub struct DiskCollector { impl DiskCollector { pub fn new(config: DiskConfig) -> Self { - // Create hysteresis thresholds for disk temperature + // Create hysteresis thresholds for disk temperature from config let temperature_thresholds = HysteresisThresholds::with_custom_gaps( - 60.0, // warning at 60°C + config.temperature_warning_celsius, 5.0, // 5°C gap for recovery - 70.0, // critical at 70°C + config.temperature_critical_celsius, 5.0, // 5°C gap for recovery ); diff --git a/agent/src/config/mod.rs b/agent/src/config/mod.rs index c54cd3b..e6d8351 100644 --- a/agent/src/config/mod.rs +++ b/agent/src/config/mod.rs @@ -36,7 +36,6 @@ pub struct CollectorConfig { pub memory: MemoryConfig, pub disk: DiskConfig, pub systemd: SystemdConfig, - pub smart: SmartConfig, pub backup: BackupConfig, pub network: NetworkConfig, pub nixos: NixOSConfig, @@ -75,6 +74,11 @@ pub struct DiskConfig { pub usage_critical_percent: f32, /// Filesystem configurations pub filesystems: Vec, + /// SMART monitoring thresholds + pub temperature_warning_celsius: f32, + pub temperature_critical_celsius: f32, + pub wear_warning_percent: f32, + pub wear_critical_percent: f32, } /// Filesystem configuration entry @@ -102,16 +106,6 @@ pub struct SystemdConfig { pub host_user_mapping: String, } -/// SMART collector configuration -#[derive(Debug, Clone, Serialize, Deserialize)] -pub struct SmartConfig { - pub enabled: bool, - pub interval_seconds: u64, - pub temperature_warning_celsius: f32, - pub temperature_critical_celsius: f32, - pub wear_warning_percent: f32, - pub wear_critical_percent: f32, -} /// NixOS collector configuration #[derive(Debug, Clone, Serialize, Deserialize)]