40 lines
1.1 KiB
Python
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 |