Un endpoint de health check es la forma más simple y efectiva de saber si tu app Next.js funciona correctamente. Es una ruta dedicada que retorna el estado de tu aplicación y sus dependencias (base de datos, cache, APIs externas) en formato legible por máquinas.

Paso 1: Crear el Endpoint Básico

En Next.js App Router, crea app/api/health/route.ts que retorne un JSON con status, timestamp y uptime del proceso. Retorna HTTP 200 para saludable, 503 para no saludable.

Paso 2: Agregar Checks de Dependencias

Agrega verificaciones de base de datos (query simple como SELECT 1), APIs externas (Stripe, Auth0), y uso de memoria. Si cualquier dependencia falla, retorna HTTP 503.

Paso 3: Monitorearlo desde Afuera

Un health check que nadie verifica es inútil. Necesitas un servicio externo que llame tu ruta /api/health regularmente desde fuera de tu infraestructura.

Apuntá un servicio de monitoreo de uptime a tu URL /api/health con un intervalo de 1 a 5 minutos, idealmente desde más de una región. Para una versión mínima hecha a mano, alcanza con un job programado fuera de tu hosting (un cron en otro servidor o un workflow programado de CI) que haga un fetch con timeout y avise si la respuesta no es 200. Las buenas herramientas además registran DNS, TLS, TTFB y tamaño de respuesta.

Paso 4: Configurar Alertas

Configurá reglas de alerta para API caída, alta latencia, tasa de errores y expiración SSL. Mandá las alertas al canal que tu equipo realmente mira (Slack, email, SMS o un pager), con una notificación cuando empieza el incidente y otra cuando se resuelve.

Mejores Prácticas

  • Mantenlo rápidoLos health checks deben responder en menos de 500ms
  • No cacheesSiempre ejecuta fresco con Cache-Control: no-cache
  • Incluye versiónRetorna la versión de tu app o commit hash
  • Usa JSON estructuradoFormato consistente para que las herramientas lo parseen