Skip to content

Commit 7a4e694

Browse files
committed
initial commit
1 parent 28faa9c commit 7a4e694

File tree

1 file changed

+73
-0
lines changed

1 file changed

+73
-0
lines changed

Diff for: monitoring.py

+73
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
import psutil
2+
import schedule
3+
import time
4+
import logging
5+
6+
7+
# Function to log messages
8+
def log_message(message):
9+
# Configure logging
10+
logging.basicConfig(filename='system_monitor.log', level=logging.INFO,
11+
format='%(asctime)s - %(message)s')
12+
logging.info(message)
13+
14+
15+
# Function to print alerts to the console
16+
def print_alert(message):
17+
print(f"ALERT: {message}")
18+
19+
20+
# Health check functions
21+
def check_cpu_usage(threshold=50):
22+
cpu_usage = psutil.cpu_percent(interval=1)
23+
if cpu_usage > threshold:
24+
message = f"High CPU usage detected: {cpu_usage}%"
25+
log_message(message)
26+
print_alert(message)
27+
28+
29+
def check_memory_usage(threshold=80):
30+
memory_usage = psutil.virtual_memory().percent
31+
if memory_usage > threshold:
32+
message = f"High memory usage detected: {memory_usage}%"
33+
log_message(message)
34+
print_alert(message)
35+
36+
37+
def check_disk_space(path='/', threshold=75):
38+
disk_usage = psutil.disk_usage(path).percent
39+
if disk_usage > threshold:
40+
message = f"Low disk space detected: {disk_usage}%"
41+
log_message(message)
42+
print_alert(message)
43+
44+
45+
def check_network_traffic(threshold=100 * 1024 * 1024):
46+
network_traffic = psutil.net_io_counters().bytes_recv +\
47+
psutil.net_io_counters().bytes_sent
48+
if network_traffic > threshold:
49+
message = f"High network traffic detected: {network_traffic:.2f} MB"
50+
log_message(message)
51+
print_alert(message)
52+
53+
54+
# Function to run health checks
55+
def run_health_checks():
56+
print("Monitoring the system...")
57+
log_message("Running system health checks...")
58+
59+
check_cpu_usage()
60+
check_memory_usage()
61+
check_disk_space()
62+
check_network_traffic()
63+
64+
log_message("Health checks completed.")
65+
66+
67+
# Schedule health checks to run every minute
68+
schedule.every(1).minutes.do(run_health_checks)
69+
70+
# Main loop to run scheduled tasks
71+
while True:
72+
schedule.run_pending()
73+
time.sleep(1)

0 commit comments

Comments
 (0)