Descripción
Tool MCP que publica la foto completa del estado de servicios internos monitoreados por la sonda servicios-check de OPS. Se ejecuta desde el cron cada 5 minutos (cuando la sonda publica).
Entrada: array targets donde cada target es {name, server, label, status, http_code}.
Acción: reemplazo atómico — upsert de cada target + borrado de los ausentes (en una sola llamada DB.batch() para no exceder el límite de subrequests del Worker).
Salida: respuesta JSON con confirmación y recuento de targets procesados.
La sonda da la foto completa (todos los servicios vigilados), no cambios incrementales. Esto es deliberado: garantiza que si un target desaparece de la sonda (p.ej. se desconfigura), se borra automáticamente de D1.
Handler en infra.ts
El caso 'report_service_status' valida que todos los targets sean objetos con estructura esperada:
name(string): ID único del servicio (ej:stage-web,forgejo,dca-web)server(string): categoría (prod,stage,ops,dca)label(string): nombre humano con contextostatus(string,up|down): estado actualhttp_code(string, opcional): código HTTP último visto
Si la validación falla, retorna error antes de tocar la BD.
El batch SQL:
DELETE FROM service_status WHERE name NOT IN (...)— limpia targets ausentes en la foto nueva.- N sentencias
INSERT ... ON CONFLICT(name) DO UPDATE— upsert atómico de cada target.
Nota: sin || echo 000 en curl (fue un bug cazado en el simulacro del 11-08). El curl ya imprime el código HTTP; un echo extra producía "000000" y la sonda se quedaba ciega.
Integración en logging MCP
Registrada en LOGGED_TOOLS del index MCP: action update, entity_type service_status. Así aparece en los logs de auditoría del workspace.
Véase también
- [[entity—functions—endpoint—api-services]]
- [[entity—migrations—table—service-status]]
- [[feature—monitoring—led-servicios-onoff]]
- [[entity—scripts—bash—servicios-check]]
- [[concept—infra—health-checks]]