import time from typing import Dict import psutil from .util import format_timestamp class SystemMetrics: """ Tracks system metrics including memory and disk usage. """ def get_metrics(self) -> Dict: """ Get current system metrics. Clears usage samples after calculating averages. Returns: Dict containing: - timestamp: Current timestamp - memory_used: Used memory in bytes - memory_total: Total memory in bytes - disk_used: Used disk space in bytes - disk_total: Total disk space in bytes """ metrics = {} # Add timestamp metrics["timestamp"] = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime()) # Memory usage in bytes memory = psutil.virtual_memory() metrics["memory_used"] = memory.used metrics["memory_total"] = memory.total # Disk usage in bytes (root partition) disk = psutil.disk_usage('/') metrics["disk_used"] = disk.used metrics["disk_total"] = disk.total return metrics