diff --git a/hwmonDaemon.py b/hwmonDaemon.py index fe0354e..f3faa3c 100644 --- a/hwmonDaemon.py +++ b/hwmonDaemon.py @@ -127,7 +127,9 @@ class SystemHealthMonitor: 'PROMETHEUS_TEXTFILE_PATH': None, # Path for textfile collector (alternative to HTTP) # SMART analysis thresholds 'NEW_DRIVE_HOURS_THRESHOLD': 720, # Hours to consider a drive "new" (~30 days) - 'SMART_ERROR_RECENT_HOURS': 168 # Hours window for recent SMART errors (~1 week) + 'SMART_ERROR_RECENT_HOURS': 168, # Hours window for recent SMART errors (~1 week) + # Storage limits + 'HISTORY_MAX_BYTES': 52428800 # 50MB max storage for history files } @classmethod @@ -204,6 +206,11 @@ class SystemHealthMonitor: cls.CONFIG['SMART_ERROR_RECENT_HOURS'] = int(value) except ValueError: logger.warning(f"Invalid SMART_ERROR_RECENT_HOURS value: {value}") + elif key == 'HISTORY_MAX_BYTES': + try: + cls.CONFIG['HISTORY_MAX_BYTES'] = int(value) + except ValueError: + logger.warning(f"Invalid HISTORY_MAX_BYTES value: {value}") except Exception as e: logger.error(f"Failed to load .env file: {e}") @@ -658,13 +665,15 @@ class SystemHealthMonitor: # Ensure history directory exists os.makedirs(self.CONFIG['HISTORY_DIR'], exist_ok=True) - def _enforce_storage_limit(self, history_dir: str, max_bytes: int = 10485760): + def _enforce_storage_limit(self, history_dir: str, max_bytes: int = None): """ - Delete oldest history files if directory exceeds size limit (default 10MB). + Delete oldest history files if directory exceeds size limit. :param history_dir: Directory containing history files - :param max_bytes: Maximum directory size in bytes (default 10MB) + :param max_bytes: Maximum directory size in bytes (default from CONFIG) """ + if max_bytes is None: + max_bytes = self.CONFIG.get('HISTORY_MAX_BYTES', 52428800) if not os.path.exists(history_dir): return