| """ | |
| Threading Metrics Submodule | |
| """ | |
| import threading | |
| import time | |
| from dataclasses import dataclass, field | |
| import psutil | |
| class SystemMetrics: | |
| """Current system performance metrics""" | |
| memory_percent: float | |
| cpu_percent: float | |
| available_memory_gb: float | |
| active_threads: int | |
| timestamp: float = field(default_factory=time.time) | |
| def get_system_metrics() -> SystemMetrics: | |
| """Get current system performance metrics""" | |
| memory = psutil.virtual_memory() | |
| cpu_percent = psutil.cpu_percent(interval=None) | |
| active_threads = threading.active_count() | |
| return SystemMetrics( | |
| memory_percent=memory.percent, | |
| cpu_percent=cpu_percent, | |
| available_memory_gb=memory.available / (1024**3), | |
| active_threads=active_threads, | |
| ) | |