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
This commit is contained in:
parent
c8e26b9bac
commit
0c544753f9
@ -41,11 +41,11 @@ pub struct DiskCollector {
|
|||||||
|
|
||||||
impl DiskCollector {
|
impl DiskCollector {
|
||||||
pub fn new(config: DiskConfig) -> Self {
|
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(
|
let temperature_thresholds = HysteresisThresholds::with_custom_gaps(
|
||||||
60.0, // warning at 60°C
|
config.temperature_warning_celsius,
|
||||||
5.0, // 5°C gap for recovery
|
5.0, // 5°C gap for recovery
|
||||||
70.0, // critical at 70°C
|
config.temperature_critical_celsius,
|
||||||
5.0, // 5°C gap for recovery
|
5.0, // 5°C gap for recovery
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@ -36,7 +36,6 @@ pub struct CollectorConfig {
|
|||||||
pub memory: MemoryConfig,
|
pub memory: MemoryConfig,
|
||||||
pub disk: DiskConfig,
|
pub disk: DiskConfig,
|
||||||
pub systemd: SystemdConfig,
|
pub systemd: SystemdConfig,
|
||||||
pub smart: SmartConfig,
|
|
||||||
pub backup: BackupConfig,
|
pub backup: BackupConfig,
|
||||||
pub network: NetworkConfig,
|
pub network: NetworkConfig,
|
||||||
pub nixos: NixOSConfig,
|
pub nixos: NixOSConfig,
|
||||||
@ -75,6 +74,11 @@ pub struct DiskConfig {
|
|||||||
pub usage_critical_percent: f32,
|
pub usage_critical_percent: f32,
|
||||||
/// Filesystem configurations
|
/// Filesystem configurations
|
||||||
pub filesystems: Vec<FilesystemConfig>,
|
pub filesystems: Vec<FilesystemConfig>,
|
||||||
|
/// 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
|
/// Filesystem configuration entry
|
||||||
@ -102,16 +106,6 @@ pub struct SystemdConfig {
|
|||||||
pub host_user_mapping: String,
|
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
|
/// NixOS collector configuration
|
||||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user