Terminal / api /grid_status.py
Baida—-
deploy: full backend sync for Node A [Kernel Restore]
8b87770 verified
Raw
History Blame
1.91 kB
"""
backend/api/grid_status.py — Grid Status Endpoint (S766-GRID-3)
Endpoint per monitorare lo stato della Grid Orchestration:
- Health dei provider per ogni profilo
- Stato di sincronizzazione Supabase
- Metriche di carico e performance
"""
from fastapi import APIRouter, Request
from .global_state_sync import get_global_state_sync
from ..models.grid_router import get_grid_router
import time
router = APIRouter()
@router.get("/api/grid/health")
async def grid_health():
"""
Restituisce lo stato di salute della Grid.
Metriche per ogni provider/profilo.
"""
grid_router = get_grid_router()
health = await grid_router.get_health_status()
return {
"status": "ok",
"grid_enabled": grid_router._enabled,
"providers": health,
"timestamp": int(time.time() * 1000),
}
@router.get("/api/grid/sync")
async def grid_sync_status():
"""
Restituisce lo stato di sincronizzazione Supabase tra i profili.
"""
sync = get_global_state_sync()
supabase_status = await sync.get_health_status()
return {
"status": "ok",
"sync_enabled": sync._enabled,
"supabase_profiles": supabase_status,
"timestamp": int(time.time() * 1000),
}
@router.get("/api/grid/status")
async def grid_full_status():
"""
Restituisce lo stato completo della Grid (provider + sync).
"""
grid_router = get_grid_router()
sync = get_global_state_sync()
provider_health = await grid_router.get_health_status()
supabase_status = await sync.get_health_status()
return {
"status": "ok",
"grid": {
"enabled": grid_router._enabled,
"providers": provider_health,
},
"sync": {
"enabled": sync._enabled,
"supabase_profiles": supabase_status,
},
"timestamp": int(time.time() * 1000),
}