Capítulo 13 · Monitorización y observabilidad
Los primeros cinco minutos de un incidente
Cuando algo está caído, los primeros cinco minutos deciden si la hora siguiente es tranquila o caótica. Haz esto en orden, antes de abrir un solo archivo.
- Comprueba la ruta de salud en todas las instancias, no solo en la que alertó. Te dice al instante si el problema está en las dependencias propias de esta aplicación.
- Mira las cuatro señales de los últimos treinta minutos, no de los últimos cinco. Una tasa de errores que empezó a subir hace veinticinco minutos es tu verdadero punto de partida, no el momento en que saltó la alerta.
- Lee los errores por código de estado. Un muro de 504 apunta al proveedor. Un muro de 500 apunta a ti. Un muro de 429 apunta a un consumidor, o tu propio limitador puesto demasiado bajo.
- Si afecta a un solo consumidor, saca una traza. La línea de la llamada saliente suele mostrar qué llamada falló antes de que hayas leído nada del código de la aplicación.
- Solo entonces abre un archivo. Todo lo anterior a este paso es leer datos que ya recogiste. Todo lo posterior es depurar, y depurar sin los cuatro primeros pasos es adivinar con más aplomo.
Resumen del capítulo 13
Comprobaciones de salud:
- Amplía
/upcon un listener deDiagnosingHealthque compruebe lo que necesita una petición: la base de datos y la caché. - Nunca compruebes ahí a un proveedor. La caída de una dependencia no debe sacar tus servidores de la rotación.
Señales:
- Volumen, latencia, errores y saturación, visibles sin leer una traza de pila.
- La latencia en el percentil 95. Los errores por código de estado, nunca sumados.
Alertas:
- Despierta a alguien por síntomas que un consumidor puede ver, no por reintentos que siguen dentro del presupuesto.
- Clasifica las excepciones por severidad antes de que lleguen al rastreador de errores.
Trazas:
- Registra cada llamada al proveedor, por host y estado, con un solo listener.
- Con un ID de traza en
Context, la petición, sus jobs, sus llamadas al proveedor y sus excepciones se leen como una sola historia.
Objetivos:
- Pon por escrito qué cuenta como fallo, una meta por debajo del 100 % y una ventana. Un objetivo es una consulta sobre el log de peticiones.
- Gasta el presupuesto de error en entregar, y deja de entregar cuando se acabe.
Durante un incidente:
- Ruta de salud, cuatro señales en treinta minutos, errores por código de estado, una traza. Solo entonces abre un archivo.