Tu app Next.js está en producción. Los usuarios están usando tus API routes. Pero, ¿cómo sabes si /api/users responde en 200ms o 2000ms? ¿Cómo sabes si tu webhook de pagos está devolviendo errores 500 a las 3 AM?

La mayoría de los developers hacen deploy y esperan lo mejor. En esta guía vas a aprender cómo configurar monitoreo real para tus API routes de Next.js (con health checks automáticos, tracking de latencia y alertas instantáneas) sin sumar un APM pesado.

¿Por qué monitorear API Routes de Next.js?

Las API routes de Next.js son funciones serverless (en Vercel) o handlers tipo Express (en Node). En ambos casos, pueden fallar silenciosamente:

  • Cold starts pueden disparar la latencia de 50ms a 2000ms+
  • Conexiones a base de datos pueden hacer timeout sin errores visibles
  • APIs de terceros (Stripe, Auth0, etc.) pueden degradarse y causar fallos en cascada
  • Certificados SSL pueden expirar y romper todo el tráfico HTTPS
  • Cambios de DNS pueden propagarse incorrectamente entre regiones

Sin monitoreo, solo te enteras cuando los usuarios se quejan, o cuando bajan los ingresos.

Paso 1: Agregar un endpoint de health

Dale a tu monitoreo algo con sentido para chequear. Una ruta de health que toca tus dependencias reales (base de datos, cache) detecta mucho más que un check a tu home:

// app/api/health/route.ts
import { db } from '@/lib/db'

export async function GET() {
  try {
    await db.query('SELECT 1')
    return Response.json({ status: 'ok' })
  } catch {
    return Response.json({ status: 'error' }, { status: 503 })
  }
}

Devolvé un status distinto de 200 cuando falla una dependencia, así cualquier checker externo lo detecta sin parsear el body.

Paso 2: Instrumentar tus rutas

Creá instrumentation.ts en la raíz del proyecto y registrá OpenTelemetry. Cada ruta genera traces con duración y status, que podés mandar al backend de observabilidad que ya uses:

// instrumentation.ts
import { registerOTel } from '@vercel/otel'

export function register() {
  registerOTel({ serviceName: 'my-next-app' })
}

Paso 3: Programar checks externos y alertas

Las métricas internas no te avisan cuando la app entera está caída. Para eso necesitás un check que corra afuera de tu deploy. Cualquier herramienta de uptime lo hace; la versión en código plano es así:

// check.ts, run every minute from a scheduler outside your app
const url = 'https://your-app.com/api/health'
const start = Date.now()
let status = 0
try {
  const res = await fetch(url, { signal: AbortSignal.timeout(10_000) })
  status = res.status
} catch {}
const ms = Date.now() - start

if (status !== 200 || ms > 2000) {
  await fetch(process.env.SLACK_WEBHOOK_URL!, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ text: `${url} returned ${status || 'no response'} in ${ms}ms` }),
  })
}

Alertá por API caída, alta latencia, tasa de errores o expiración SSL, y mandá las alertas a un canal que alguien mire de verdad (Slack, email o SMS para lo crítico).

Paso 4: Deploy y verificar

Hacé deploy normalmente y después rompé algo a propósito en un preview (por ejemplo, una URL de base de datos incorrecta) para confirmar que la alerta llega. Una alerta que nunca probaste es una alerta en la que no podés confiar.

Monitoreo Multi-Región

Corré los checks desde varias regiones (por ejemplo Estados Unidos, São Paulo, Europa y Tokio). Esto te permite detectar caídas regionales, como cuando tu deploy en Vercel funciona en US pero hace timeout desde Europa.

¿Se puede hacer gratis?

Sí. La ruta de health, OpenTelemetry y un check programado con alertas por webhook de Slack no cuestan nada más que unos minutos de setup. Muchos servicios de uptime tienen además planes gratis con intervalos más lentos (seguido cada 5 minutos). Lo que pagás en los planes pagos son intervalos más cortos, más regiones y más canales de alerta.

Resumen

Monitorear tus API routes de Next.js se reduce a tres piezas: un endpoint de health que toque tus dependencias reales, instrumentación para latencia P95 y tasa de errores por ruta, y checks externos desde varias regiones que te avisen por Slack, email o SMS. No esperes a que los usuarios reporten problemas, enterate primero.