Ir al contenido principal
Laravel, shipping fast.
Capitulo 9 · Monitoreo y observabilidad

Que hacer en los primeros cinco minutos de un incidente

Julian Beaujardin

Cuando algo está caído de verdad, los primeros cinco minutos deciden si la hora siguiente es tranquila o caótica. Haz esto en orden, antes de abrir un solo fichero:

  1. Comprueba el endpoint de salud de cada aplicación del camino afectado, no sólo de la que te avisó. Un 503 en una API explica una ola de fallos en otra mucho más rápido que una traza.
  2. Comprueba las cuatro señales de los últimos treinta minutos, no de los últimos cinco. Una tendencia de saturación que empezó hace veinticinco minutos es tu punto de partida real, no el momento en que saltó la alerta.
  3. Saca las filas de JobsLog del site_id o token afectado, si el fallo está acotado a un cliente. metadata.api_calls normalmente te enseñará qué llamada externa falló antes de que hayas leído una línea de código.
  4. Decide si es un síntoma al que ya le has puesto nombre. Un 504 significa que la cadena de manejadores ya capturó una ConnectionException: ya sabes que es un tiempo de espera externo y no tu código.
  5. Sólo entonces, abre un fichero. Todo lo anterior es leer datos que ya recogiste. Todo lo posterior es depurar, y depurar sin los cuatro primeros pasos es adivinar con confianza extra.

Resumen

Health checks

  • [X] Cada dependencia que una petición necesita de verdad tiene su propia comprobación, no un booleano compartido
  • [X] El endpoint de salud devuelve un estado de fallo cuando cualquier dependencia está caída, no sólo cuando el proceso está muerto

Señales

  • [X] Volumen, latencia, errores y saturación son visibles sin leer una traza
  • [X] La latencia se sigue en p95, no en media, y los errores se leen por código de estado

Alertas

  • [X] Las alertas se disparan sobre síntomas visibles para el cliente, no sobre reintentos aún dentro de presupuesto
  • [X] Las excepciones se clasifican por severidad antes de llegar a un rastreador de errores

Trazado

  • [X] Cada petición y cada job trazado deja tras de sí un rastro redactado y consultable
  • [X] Un fallo puede reconstruirse desde datos almacenados en lugar de reproducirse en vivo

Un panel te dice que algo va mal. Una traza te dice qué. Construye ambos, y el siguiente incidente será una lectura de cinco minutos en lugar de una tarde adivinando.