mirror of
https://github.com/m1ngsama/tracker.git
synced 2025-12-24 10:51:43 +00:00
Add process monitoring module
This commit is contained in:
parent
b25998e57b
commit
25bac713e7
2 changed files with 38 additions and 0 deletions
34
process_monitor.py
Normal file
34
process_monitor.py
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
"""
|
||||||
|
Process monitoring utilities
|
||||||
|
"""
|
||||||
|
|
||||||
|
import psutil
|
||||||
|
|
||||||
|
|
||||||
|
class ProcessMonitor:
|
||||||
|
def get_top_processes(self, limit=5):
|
||||||
|
"""Get top processes by CPU usage"""
|
||||||
|
processes = []
|
||||||
|
for proc in psutil.process_iter(['pid', 'name', 'cpu_percent', 'memory_percent']):
|
||||||
|
try:
|
||||||
|
processes.append(proc.info)
|
||||||
|
except (psutil.NoSuchProcess, psutil.AccessDenied):
|
||||||
|
pass
|
||||||
|
|
||||||
|
processes.sort(key=lambda x: x['cpu_percent'] or 0, reverse=True)
|
||||||
|
return processes[:limit]
|
||||||
|
|
||||||
|
def get_process_count(self):
|
||||||
|
"""Get total number of running processes"""
|
||||||
|
return len(psutil.pids())
|
||||||
|
|
||||||
|
def display_processes(self):
|
||||||
|
"""Display top processes"""
|
||||||
|
print(f"\nTop Processes by CPU Usage:")
|
||||||
|
print(f"{'PID':<10}{'Name':<30}{'CPU%':<10}{'Memory%':<10}")
|
||||||
|
print("-" * 60)
|
||||||
|
|
||||||
|
for proc in self.get_top_processes():
|
||||||
|
print(f"{proc['pid']:<10}{proc['name']:<30}{proc['cpu_percent']:<10.2f}{proc['memory_percent']:<10.2f}")
|
||||||
|
|
||||||
|
print(f"\nTotal Processes: {self.get_process_count()}")
|
||||||
|
|
@ -6,11 +6,13 @@ System Tracker - Monitor machine health and performance
|
||||||
import psutil
|
import psutil
|
||||||
import time
|
import time
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
from process_monitor import ProcessMonitor
|
||||||
|
|
||||||
|
|
||||||
class SystemTracker:
|
class SystemTracker:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.start_time = time.time()
|
self.start_time = time.time()
|
||||||
|
self.process_monitor = ProcessMonitor()
|
||||||
|
|
||||||
def get_cpu_usage(self):
|
def get_cpu_usage(self):
|
||||||
"""Get current CPU usage percentage"""
|
"""Get current CPU usage percentage"""
|
||||||
|
|
@ -50,6 +52,8 @@ class SystemTracker:
|
||||||
disk = self.get_disk_usage()
|
disk = self.get_disk_usage()
|
||||||
print(f"Disk: {disk['percent']}% ({disk['used'] / (1024**3):.2f}GB / {disk['total'] / (1024**3):.2f}GB)")
|
print(f"Disk: {disk['percent']}% ({disk['used'] / (1024**3):.2f}GB / {disk['total'] / (1024**3):.2f}GB)")
|
||||||
|
|
||||||
|
self.process_monitor.display_processes()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
tracker = SystemTracker()
|
tracker = SystemTracker()
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue