Spaces:
Running
Running
File size: 1,913 Bytes
03e5649 | 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 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | """
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),
}
|