Spaces:
Sleeping
Sleeping
File size: 1,871 Bytes
20fae3a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | # 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()
} |