Files
SIA/sia/system_metrics.py

40 lines
1.1 KiB
Python

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