| |
| import psutil |
| from dataclasses import dataclass |
| from typing import Dict, Any |
|
|
| @dataclass |
| class HealthStatus: |
| status: str |
| gpu_memory: Dict[str, float] |
| cpu_usage: float |
| ram_usage: float |
| model_status: Dict[str, str] |
|
|
| class HealthCheck: |
| @staticmethod |
| def check_gpu_memory() -> Dict[str, float]: |
| if torch.cuda.is_available(): |
| return { |
| f"gpu_{i}": torch.cuda.memory_allocated(i) / 1024**3 |
| for i in range(torch.cuda.device_count()) |
| } |
| return {} |
|
|
| @staticmethod |
| def check_system_resources() -> HealthStatus: |
| return HealthStatus( |
| status="healthy", |
| gpu_memory=HealthCheck.check_gpu_memory(), |
| cpu_usage=psutil.cpu_percent(), |
| ram_usage=psutil.virtual_memory().percent, |
| |
| model_status={} |
| ) |
|
|