2026-05-15

Building a Realtime AI Operations Platform with Astro, Grafana and SSE

Centro de operaciones en tiempo real con Astro, SSE, Prometheus y Grafana.

El Problema

Cuando construyes un cluster de inferencia local con GPUs AMD y LM Studio, necesitas saber en todo momento que esta pasando: que modelo se esta usando, que temperatura tiene la GPU, cuanta VRAM queda libre, si el gateway responde.

Los dashboards de Grafana son excelentes para metricas historicas, pero no para monitorizacion operativa en tiempo real tipo NOC/SOC.

La Solucion

Construir una capa de observabilidad en tiempo real sobre el portal Astro existente, usando:

  • Server-Sent Events (SSE) para streaming de datos cada 3s
  • Event Bus en Python con 9 tipos de eventos cognitivos
  • Runtime Analytics Engine con health score 0-100
  • Prometheus para metricas de gateway y GPU
  • Grafana para dashboards historicos

Arquitectura

GPU Nodes (Windows)
| (windows_exporter + PowerShell API)
v
Prometheus (:9090)
|
+-- Grafana dashboards (:3000)
|
+-- Live API (:8084)
|
+-- /api/status.json (polling)
+-- /api/topology (polling)
+-- /api/events (SSE streaming)
+-- /api/analytics (health + metrics)
|
v
Astro Portal
+-- /ops (Command Center)
+-- /status/live
+-- /status/gpus
+-- /status/history

Componentes Clave

1. SSE Event Bus

El corazon del sistema es un bus de eventos en Python con soporte para conexiones multiples concurrentes via ThreadingHTTPServer:

from runtime.event_bus import emit, get_history
# Emitir evento cuando se selecciona un modelo
emit("model_selected", {"model": "qwen2.5-coder-14b", "node": "RX9070", "latency_ms": 2450})
# Obtener estadisticas del bus
stats = get_stats()
# {"total_events": 150, "active_listeners": 2, "event_types": {...}}

2. Health Score

Algoritmo de puntuacion de salud 0-100 que evalua 6 factores:

FactorPenalizacionDescripcion
GPUs online-30 por GPU offlineHasta 2 GPUs
Gateway-15 si no respondeHealth check :8008
Router API-10 si no respondeHealth check :8083
Prometheus-10 si no respondeHealth check 1.40:9090
Docker-5 si <5 contenedoresContenedores activos
Latencia-20 si >30sLatencia de inferencia

3. Portal en Tiempo Real

El portal Astro consume los datos via:

  • SSE para el EventStream (conexion persistente)
  • Polling cada 8s para el Command Center (/ops)
  • Polling cada 10s para GPU Telemetry (/status/gpus)

Resultados

El AI Operations Center muestra en tiempo real:

  • Health Score con codigo de colores
  • 8 metricas clave (GPUs, requests, sesiones, latencia, routing, streams, errores)
  • Stream de eventos en vivo
  • Factores de salud detallados
  • Ultimos errores del sistema

Stack Tecnologico

ComponenteTecnologia
FrontendAstro 6 + Starlight + Tailwind 4
Tiempo realSSE + ThreadingHTTPServer
MetricasPrometheus + Grafana 13
BackendPython 3.14 + FastAPI
GPUsLM Studio + windows_exporter
InfraDocker + Traefik + systemd

Proximos Pasos

  1. Experiments Lab con benchmarks GPU y comparativas de modelos
  2. Blog tecnico con arquitectura detallada
  3. Pagina de proyectos con 8 proyectos activos
  4. Historical telemetry con evolucion 24h/7d

Articulo escrito el 15 de Mayo de 2026 como parte de la documentacion del proyecto AI-LAB.