22 lines
519 B
Python
22 lines
519 B
Python
import os
|
|
from dataclasses import dataclass
|
|
from typing import Optional
|
|
|
|
|
|
@dataclass
|
|
class SystemStats:
|
|
cpu_percent: Optional[float]
|
|
memory_mb: Optional[float]
|
|
|
|
|
|
def get_system_stats() -> SystemStats:
|
|
try:
|
|
import psutil
|
|
except ImportError:
|
|
return SystemStats(cpu_percent=None, memory_mb=None)
|
|
|
|
process = psutil.Process(os.getpid())
|
|
cpu = psutil.cpu_percent(interval=None)
|
|
mem = process.memory_info().rss / (1024 * 1024)
|
|
return SystemStats(cpu_percent=cpu, memory_mb=mem)
|