AumCore-AI / modules /sys_diagnostics.py
AumCoreAI's picture
Rename modules/system_diagnostics.py to modules/sys_diagnostics.py
d202ad0 verified
raw
history blame
3.53 kB
# modules/sys_diagnostics.py - System Diagnostics Module
from fastapi import APIRouter
import psutil
import os
from datetime import datetime
def register_module(app, client, username):
"""Register diagnostics module with FastAPI app"""
router = APIRouter(prefix="/system")
@router.get("/diagnostics/health")
async def diagnostics_health():
"""Basic system health check"""
try:
cpu = psutil.cpu_percent()
memory = psutil.virtual_memory()
return {
"success": True,
"module": "diagnostics",
"status": "active",
"system": {
"cpu_usage": cpu,
"memory_used": memory.percent,
"memory_available": round(memory.available / (1024**3), 2),
"timestamp": datetime.now().isoformat()
}
}
except Exception as e:
return {
"success": False,
"error": str(e),
"module": "diagnostics"
}
@router.get("/diagnostics/full")
async def full_diagnostics():
"""Complete system diagnostics"""
try:
cpu = psutil.cpu_percent()
memory = psutil.virtual_memory()
disk = psutil.disk_usage('/')
app_running = any('app.py' in p.info().get('cmdline', []) for p in psutil.process_iter(['cmdline']))
return {
"success": True,
"diagnostics": {
"timestamp": datetime.now().isoformat(),
"system_id": f"DIAG-{os.getpid()}",
"status": "HEALTHY",
"health_score": 85,
"sections": {
"system_resources": {
"cpu": {"usage_percent": cpu, "cores": psutil.cpu_count()},
"memory": {
"used_percent": memory.percent,
"available_gb": round(memory.available / (1024**3), 2)
},
"disk": {
"used_percent": disk.percent,
"free_gb": round(disk.free / (1024**3), 2)
}
},
"application": {
"app_running": app_running,
"directories": {
"logs": os.path.exists('logs'),
"data": os.path.exists('data')
}
}
}
}
}
except Exception as e:
return {
"success": False,
"error": str(e),
"message": "Diagnostics failed"
}
app.include_router(router)
print("✅ Diagnostics module registered with FastAPI")
return {"status": "registered"}
async def get_basic_metrics():
"""Get basic system metrics"""
try:
return {
"success": True,
"cpu": psutil.cpu_percent(),
"memory": psutil.virtual_memory().percent,
"disk": psutil.disk_usage('/').percent,
"timestamp": datetime.now().isoformat()
}
except Exception as e:
return {
"success": False,
"error": str(e)
}