Descripción
Tabla D1 que persiste el estado actual de los 9 servicios internos vigilados por la sonda servicios-check de OPS. Creada en migración 0049 (11-08-2026, s263).
Columnas
| Columna | Tipo | Rol | Notas |
|---|---|---|---|
name | TEXT | PK | ID único del servicio: stage-web, forgejo, prod-web, etc. |
server | TEXT | FK lógica | Categoría: prod, stage, ops, dca — agrupa servicios por servidor origen |
label | TEXT | Descripción | Nombre humano con contexto: “Web de PRODUCCIÓN (vista interna)” |
status | TEXT | Estado | 'up' o 'down' — resultado de chequeo (down = 2 ticks fallando) |
http_code | TEXT | Diagnóstico | Código HTTP del último intento (ej: "400", "503", NULL si timeout/error de red) |
updated_at | TEXT | Timestamp | datetime('now') en cada upsert — detecta datos rancio (>15 min → “sin datos”) |
Ciclo de vida
- Lectura: sonda bash
servicios-check.shcorre cada 5 minutos en el cron de OPS. - Publicación: tool MCP
report_service_statusrecibe la foto completa (todos los 9 targets). - Upsert atómico: N inserts con
ON CONFLICT(name) DO UPDATE, + 1 delete de targets ausentes. - Consumo:
- GET
/api/servicescalcula edad (minutos desdeupdated_at) y marca comostale: truesi >15 min. - Componentes React (
ServerStatusPill,ServerGrid) leen y pintan LEDs (verde/rojo/gris).
- GET
Características de confiabilidad
- No acumula histórico: cada sonda replace overwrite (foto, no transaccional-logging).
- Staleness detection: los LEDs nunca muestran un verde congelado — si la sonda calla >15 min, pasa a “sin datos” (gris).
- Dato incompleto = no datos: si la sonda falla en alguna pasada, no se pintan nada en los LEDs (fallback seguro).
Véase también
- [[entity—functions—tool—report-service-status]]
- [[entity—functions—endpoint—api-services]]
- [[feature—monitoring—led-servicios-onoff]]
- [[concept—infra—health-checks]]