# modules/diagnostics.py - System Diagnostics Module from fastapi import APIRouter import psutil from datetime import datetime def register_module(app, client, username): """Register diagnostics module with FastAPI app""" router = APIRouter() @router.get("/diagnostics/health") async def diagnostics_health(): """Basic system health check""" cpu = psutil.cpu_percent() memory = psutil.virtual_memory() return { "module": "diagnostics", "status": "active", "system": { "cpu_usage": cpu, "memory_used": memory.percent, "memory_available": memory.available / (1024**3), # GB "timestamp": datetime.now().isoformat() } } @router.get("/diagnostics/full") async def full_diagnostics(): """Complete system diagnostics""" try: from modules.orchestrator import get_system_diagnostics return await get_system_diagnostics() except ImportError: return { "module": "diagnostics", "status": "fallback", "message": "Using basic diagnostics", "basic_metrics": { "cpu": psutil.cpu_percent(), "memory": psutil.virtual_memory().percent, "disk": psutil.disk_usage('/').percent } } app.include_router(router) print("✅ Diagnostics module registered with FastAPI") # Export function for direct imports async def get_basic_metrics(): """Get basic system metrics""" return { "cpu": psutil.cpu_percent(), "memory": psutil.virtual_memory().percent, "disk": psutil.disk_usage('/').percent, "timestamp": datetime.now().isoformat() }