La web va lenta el día de matrícula
Monitorizar un servicio es medirlo todo el tiempo para saber si está sano. Así te enteras de que falla antes de que se queje nadie.
Piensa en la web del instituto el día de la matrícula. Si tarda diez segundos en cargar, alguien tiene que verlo. Hoy aprendes qué se mide y cuándo se avisa.
Al final de esta lección
Nota
Puedo saber si un servicio está enfermo a partir de sus medidas.
Palabras clave
| Palabra | Qué significa | Ejemplo |
|---|---|---|
| Métrica | un número que se mide una y otra vez | nginx_up |
| Tasa de errores | el porcentaje de peticiones que fallan | |
| Percentil | el tiempo que no supera esa parte de las peticiones | |
| Alerta | un aviso que salta cuando una medida pasa un límite | |
| Petición | cada vez que alguien pide algo al servicio | |
| Umbral | el límite a partir del cual algo se considera malo |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Una métrica es un número medido muchas veces
Un servicio puede decirte cómo está si lo mides. Cada medida es un número con su hora. Un programa de vigilancia las recoge cada pocos segundos y las guarda.
Las más usadas son cuántas peticiones llegan, cuántas fallan y cuánto tardan.
Ejemplo resuelto: métricas de una tienda en línea
| Qué quieres saber | Qué mides | Señal de problema |
|---|---|---|
| ¿Está viva? | Si contesta o no | No contesta |
| ¿Cuánta gente la usa? | Peticiones por segundo | Se dispara de golpe |
| ¿Falla? | Porcentaje de errores | Sube de lo normal |
| ¿Va lenta? | Tiempo de respuesta | Tarda más de lo normal |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Pide una página al servidor vigilado
curl -s http://app:8080/Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Mira la métrica que dice si está vivo
curl -s http://exporter:9113/metrics | grep '^nginx_up'Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Qué te dicen las dos órdenes
La primera es una petición normal. El servidor contesta con una línea de texto, y eso ya dice que está vivo.
La segunda lee la página donde un programa auxiliar, el exportador, publica las medidas. La línea nginx_up 1 dice que el servidor funciona. Un 0 diría que no.
La tasa de errores es un porcentaje
No basta con contar los errores. Cuatro errores en diez peticiones es grave. Cuatro errores en cien mil casi no se nota.
Por eso se usa la tasa de errores: los errores, multiplicados por cien y divididos entre el total de peticiones.
Ejemplo resuelto: la caja de una tienda
| Peticiones | Errores | Cuenta | Tasa de errores |
|---|---|---|---|
| 200 | 6 | 6 x 100 / 200 | 3 % |
| 1000 | 6 | 6 x 100 / 1000 | 0,6 % |
| 50 | 10 | 10 x 100 / 50 | 20 % |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
El percentil enseña las peticiones más lentas
La media engaña. Una sola petición muy lenta sube la media y no describe a nadie. Una media baja puede esconder usuarios que esperan mucho.
El percentil 90 es el tiempo que no supera el 90 % de las peticiones. Se ordenan los tiempos de menor a mayor y se mira el que está en esa posición.
Ejemplo resuelto: diez peticiones, en milisegundos
| Medida | Cómo se saca | Resultado |
|---|---|---|
| Tiempos ordenados | 40, 45, 50, 55, 60, 65, 70, 75, 80, 900 | diez valores |
| Media | La suma es 1440 y se divide entre 10 | 144 ms |
| Percentil 50 | El valor en la posición 5 | 60 ms |
| Percentil 90 | El valor en la posición 9 | 80 ms |
| El más lento | El valor en la posición 10 | 900 ms |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Calcula un percentil con Python
times = [40, 45, 50, 55, 60, 65, 70, 75, 80, 900]
ordered = sorted(times)
n = len(ordered)
p = 90
# La posición es p por n entre 100, redondeada hacia arriba.
position = (p * n + 99) // 100
print(ordered[position - 1])
# Cambia p a 50 y ejecuta otra vez.
Una alerta avisa al pasar un límite
Nadie mira un gráfico todo el día. Se escribe una regla de alerta: una condición, un tiempo y un aviso.
El tiempo evita falsas alarmas. Un fallo de un segundo no despierta a nadie. Uno que dura dos minutos, sí.
Ejemplo resuelto: una regla de alerta como tabla
| Campo | Valor de ejemplo |
|---|---|
| Nombre | TiendaLenta |
| Condición | percentil 90 mayor que 500 ms |
| Durante | 2 minutos seguidos |
| Aviso | Mensaje al grupo de guardia |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Pregunta si Prometheus está listo
curl -s http://prometheus:9090/-/readySe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Un error frecuente
Advertencia
Mucha gente cree que basta con vigilar la media. No basta: una media buena puede esconder a quien espera mucho. Vigila también un percentil alto, como el 90 o el 95, y la tasa de errores.
Para ir más lejos: la persona de guardia
Una alerta que salta sin que nadie sepa qué hacer sirve de poco. Antes del laboratorio, escribe dos frases.
La primera dice qué ve la persona de guardia cuando salta tu alerta. La segunda dice qué haría primero.