Fundaia

Entrar Empezar

Página de estado

Cada proyecto puede publicar una página de estado para sus clientes o su equipo: quien tenga el enlace ve, sin entrar, si cada servicio que elijas funciona, qué incidentes hay abiertos y cómo van, los mantenimientos programados, una barra por día con la disponibilidad de los últimos 90 días y el historial de incidentes. La página se refresca sola cada minuto mientras está a la vista.

Publicarla

En Editar proyecto → Página de estado → Página:

  • Publicar una página de estado la enciende o la retira. Retirada, el enlace responde que no existe, y también su feed y su insignia.
  • Título: lo que lee quien entra; vacío, el nombre del proyecto. La foto del proyecto, si tiene, sale a su lado.
  • Zona horaria: las horas de los incidentes y los mantenimientos se enseñan en ella; por defecto, Madrid.
  • Servicios que enseña: solo los que marques, en ese orden y con el nombre que ves en el lienzo. Nunca aparece un contenedor, un host interno ni un identificador de servicio.
  • Darle un enlace nuevo cambia el código aleatorio de la dirección (https://infrastructure.fundaia.com/estado/aB3x…); el viejo, su feed y su insignia dejan de funcionar al momento.
fundaia status-page tienda on --title "Tienda online" --services web,api
fundaia status-page tienda                  # si está publicada, su enlace y qué ve un visitante
fundaia status-page tienda --timezone America/Mexico_City
fundaia status-page tienda --rotate         # enlace nuevo
fundaia status-page tienda off

Qué enseña

  • El estado general, arriba y bien grande: Todos los sistemas funcionan, Rendimiento degradado, Interrupción parcial del servicio, Interrupción grave del servicio o Mantenimiento en curso. Lo decide lo peor de los servicios y de los incidentes abiertos.
  • Los incidentes abiertos, cada uno con su línea de novedades, la más reciente primero.
  • Los mantenimientos programados y en curso, con su ventana en la zona horaria de la página.
  • Cada servicio: su estado (Operativo, Degradado, Interrupción parcial, Caído, En mantenimiento), su disponibilidad y una barra por día. Una barra se pinta por lo peor del día: sus minutos caído y sus incidentes; al pasar por encima (o al tocarla en el móvil) dice el porcentaje y qué incidentes hubo. En el móvil se ven los últimos 30 días.
  • El tiempo de respuesta, solo si el servicio tiene un monitor: la media de las últimas 24 horas y una línea con cada media hora. Sin monitor no se inventa nada.
  • Los incidentes anteriores de los últimos 90 días, agrupados por día, cada uno con su historia.

Un servicio dormido cuenta como operativo: la primera visita lo despierta, y eso no es una caída. Mientras se despliega una versión nueva, también, porque responde la anterior. Se mira el entorno por defecto del proyecto, producción.

Incidentes

Cuando algo falla, cuéntalo en Página de estado → Incidentes y mantenimiento → Abrir un incidente:

  • Qué pasa, en una línea (hasta 120 caracteres).
  • Impacto: Informativo (un aviso que no cambia el estado), Leve (rendimiento degradado), Grave (interrupción parcial) o Crítico (interrupción grave).
  • A qué servicios afecta: de los que enseña la página; ninguno, toda la página.
  • Estado (Investigando, Identificado, Vigilando) y la primera novedad, en Markdown sencillo: párrafos, listas con -, negrita, cursiva, código y enlaces, hasta 5000 caracteres.

Se publica al momento. Desde ahí se publican novedades (un estado y un mensaje), se cambia el impacto si empeora o mejora, se corrige o borra una novedad (la página la marca como editada) y se resuelve. Uno abierto por error se borra entero. Nada se publica solo: si un servicio de la página se cae o su monitor falla, la pantalla ofrece ¿Abrir un incidente? con el título y el mensaje ya escritos, y eres tú quien lo publica.

fundaia status-page incident open tienda --title "Los pagos fallan" --impact major \
  --services pagos --message "Estamos investigando por qué falla el cobro con tarjeta."
fundaia status-page incident update tienda "Los pagos fallan" --state identified \
  --message "El proveedor de pagos tiene una caída; estamos en contacto con ellos."
fundaia status-page incident resolve tienda "Los pagos fallan"
fundaia status-page incident list tienda

Un incidente se nombra por su id (sin_…) o por su título exacto.

Mantenimiento programado

Programar anuncia una ventana: título, cuándo empieza (vacío, ahora) y cuánto dura o cuándo termina —como mucho siete días—, a qué servicios afecta y un mensaje opcional. Antes de empezar se ve como Programado; durante la ventana, los servicios que nombra se ven En mantenimiento y esas horas no cuentan como caída. Cancelar uno que ya ha empezado lo da por terminado en ese momento.

fundaia status-page maintenance add tienda --title "Cambio de base de datos" \
  --starts "2026-10-21 02:00" --ends 2h --services api
fundaia status-page maintenance list tienda
fundaia status-page maintenance cancel tienda "Cambio de base de datos"

Las horas se leen en la zona horaria de la página; también valen una fecha con zona (2026-10-21T00:00Z) o una duración (30m, 2h, 1d).

Compartirla

Página de estado → Compartir tiene todo para copiar:

  • El enlace de la página.
  • La insignia (…/badge.svg), al estilo de shields.io: estado | operativo · 99,98 %, con el color de lo que pasa. Su Markdown para un README: [![Estado de Tienda](https://…/api/infra/status/<código>/badge.svg)](https://…/estado/<código>).
  • El feed Atom (…/feed.atom) con cada incidente y mantenimiento y su historia: para un lector de feeds o para Slack (/feed subscribe <dirección>).

El JSON, la insignia y el feed se guardan en caché un minuto.

Cómo se mide

Cada cinco minutos la plataforma apunta, por cada servicio de una página publicada, si estaba arriba. Se guarda por día: minutos arriba y minutos medidos, y la disponibilidad es la división de los dos. Lo que no se midió no cuenta: si la plataforma estuvo apagada una hora, esa hora no suma ni resta, y durante un mantenimiento no se mide. Los datos se guardan 90 días. Una página que acabas de publicar empieza sin datos y los va llenando.

Para un agente o por HTTP

  • MCP: read_status_page, set_status_page, list_status_incidents, open_status_incident, update_status_incident, resolve_status_incident, edit_status_incident_update, delete_status_incident_update, delete_status_incident, schedule_status_maintenance y cancel_status_maintenance.
  • REST: GET·PUT /api/infra/projects/:proyecto/status-page, y bajo ella …/incidents (GET, POST), …/incidents/:incidente (PATCH, DELETE), …/incidents/:incidente/updates (POST), …/incidents/:incidente/resolve (POST), …/incidents/:incidente/updates/:novedad (PATCH, DELETE), …/maintenance (GET, POST) y …/maintenance/:mantenimiento (DELETE).
  • Sin sesión: GET /api/infra/status/:código (lo que ve un visitante, con incidents, pastIncidents y maintenance), …/feed.atom, …/badge.svg y …/image (la foto del proyecto).

La plataforma tiene su propia página, Estado de Fundaia.