From a7433756e374cc7bdce8f5d544f1338316a96835 Mon Sep 17 00:00:00 2001 From: m1ngsama Date: Mon, 2 Dec 2024 14:30:00 +0800 Subject: [PATCH] Implement alert system for threshold monitoring --- alert_system.py | 53 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 alert_system.py diff --git a/alert_system.py b/alert_system.py new file mode 100644 index 0000000..64afbe8 --- /dev/null +++ b/alert_system.py @@ -0,0 +1,53 @@ +""" +Alert system for system monitoring +""" + +from logger import TrackerLogger + + +class AlertSystem: + def __init__(self, config): + self.config = config + self.logger = TrackerLogger() + self.alert_history = [] + + def check_cpu_alert(self, cpu_percent): + """Check if CPU usage exceeds threshold""" + threshold = self.config.get('alert_thresholds.cpu_percent', 80) + if cpu_percent > threshold: + message = f"CPU usage is {cpu_percent}% (threshold: {threshold}%)" + self.trigger_alert('CPU', message) + return True + return False + + def check_memory_alert(self, memory_percent): + """Check if memory usage exceeds threshold""" + threshold = self.config.get('alert_thresholds.memory_percent', 85) + if memory_percent > threshold: + message = f"Memory usage is {memory_percent}% (threshold: {threshold}%)" + self.trigger_alert('Memory', message) + return True + return False + + def check_disk_alert(self, disk_percent): + """Check if disk usage exceeds threshold""" + threshold = self.config.get('alert_thresholds.disk_percent', 90) + if disk_percent > threshold: + message = f"Disk usage is {disk_percent}% (threshold: {threshold}%)" + self.trigger_alert('Disk', message) + return True + return False + + def trigger_alert(self, alert_type, message): + """Trigger an alert""" + alert = { + 'type': alert_type, + 'message': message + } + self.alert_history.append(alert) + self.logger.log_alert(f"{alert_type}: {message}") + print(f"\n⚠️ ALERT: {message}") + + def get_alert_history(self): + """Get alert history""" + return self.alert_history