Métricas de rendimiento de API: latencia, throughput y tasa de errores
Las métricas de rendimiento de una API miden velocidad, fiabilidad y capacidad: percentiles de latencia, throughput, errores y saturación.
¿Qué son las métricas de rendimiento de API?
Las métricas de rendimiento de una API miden lo rápido que responde, cuánto tráfico soporta y con qué frecuencia falla, con tráfico real o con una prueba. Las cuatro principales son latencia, throughput, tasa de errores y saturación. Los equipos las usan para fijar objetivos, encontrar cuellos de botella y decidir cuándo escalar.
Las cuatro señales de oro
El libro de SRE de Google nombra cuatro señales que cubren casi todo lo que hay que vigilar en un servicio (véase Monitoring Distributed Systems, en inglés). Los valores de ejemplo son solo ilustrativos.
| Señal | Qué mide | Ejemplo |
|---|---|---|
| Latencia | Tiempo en atender una petición | p95 = 250 ms |
| Tráfico (throughput) | Demanda sobre el sistema, en una API normalmente peticiones por segundo | 1.500 RPS |
| Errores | Proporción de peticiones que fallan, de forma explícita o implícita | 0,3 % de 5xx |
| Saturación | Lo lleno que está el servicio | CPU 80 %, cola de 200 |
Latencia: percentiles, no la media
La media esconde la cola lenta. El libro de SRE da el caso clásico: un servicio con 100 ms de latencia media a 1.000 peticiones por segundo puede tener fácilmente un 1 % de peticiones que tardan 5 segundos. Por eso conviene informar con percentiles; más en por qué los percentiles son más útiles que las medias (artículo en inglés).
| Percentil | Qué te dice |
|---|---|
| p50 (mediana) | La petición típica |
| p95 | El 5 % de las peticiones tarda esto o más |
| p99 | El 1 % de las peticiones tarda esto o más |
Mide por separado la latencia de las peticiones correctas y de las fallidas. Un error rápido puede hacer que las cifras parezcan mejores que la experiencia real, y un error lento es peor que uno rápido. Lo básico, en latencia.
Throughput
El throughput (rendimiento o caudal) es el trabajo realizado por unidad de tiempo; en una API suele ser peticiones por segundo (RPS). Magnitudes relacionadas son los usuarios concurrentes (usuarios virtuales en una prueba) y el ancho de banda. Por sí solo dice poco: míralo junto con la latencia y los errores. El punto en que la latencia sube mientras el throughput deja de crecer es tu capacidad práctica; véase cómo se relacionan throughput y tiempo de respuesta (en inglés).
Tasa de errores
La proporción de peticiones que fallan. Sepárala por causa, porque cada una apunta a un sitio distinto:
- Respuestas 5xx: fallos del servidor, un problema tuyo.
- Respuestas 4xx: casi siempre errores del cliente (401, 404, 429), pero un salto repentino puede indicar una versión rota o una credencial caducada.
- Timeouts y errores de conexión: la petición nunca terminó.
- Contenido incorrecto con un 200: el libro de SRE también lo cuenta como error. Comprueba el cuerpo, no solo el código de estado.
Saturación
La saturación muestra lo cerca que está el sistema de su límite. Muchos sistemas se vuelven lentos mucho antes del 100 % de uso. Vigila CPU, memoria, E/S de disco, red, uso del pool de conexiones a la base de datos y longitud de las colas, y fija un objetivo de utilización. Un p99 que sube en una ventana corta suele ser la primera señal.
Otros tiempos útiles
- Tiempo hasta el primer byte: el tiempo de proceso del servidor antes de que empiece la respuesta, véase Time to First Byte (TTFB).
- Tiempo de DNS, conexión TCP y TLS: sobrecarga de red antes de que se ejecute tu código.
- Tiempo de descarga: tamaño de la respuesta y ancho de banda.
- Desglose por endpoint y región: una cifra global puede ocultar un endpoint o una región lentos.
SLI, SLO, SLA y presupuesto de errores
| Término | Significado | Ejemplo |
|---|---|---|
| SLI (indicador) | La métrica que mides | Latencia p95 de GET /orders |
| SLO (objetivo) | Tu objetivo interno para el SLI | p95 por debajo de 500 ms en 30 días |
| SLA (acuerdo) | El contrato con clientes, a menudo con compensación | 99,9 % de disponibilidad |
| Presupuesto de errores | Cuánto fallo permite aún el SLO | 99,9 % en 30 días son unos 43 minutos |
Los 43 minutos salen de una cuenta simple: el 0,1 % de un mes de 30 días (43.200 minutos). Más sobre contratos en gestión de SLA.
Un ejemplo resuelto
Imagina que haces una prueba de carga a un endpoint hipotético /orders con 50, 100 y 200 usuarios virtuales. Con 50 y 100 usuarios el p95 se mantiene en unos 180 ms y casi no hay errores. Con 200 usuarios el p95 salta a 900 ms y el 2 % de las peticiones agota el tiempo, mientras que el throughput apenas creció respecto a la prueba de 100 usuarios. El punto de inflexión está en torno a los 100 usuarios, esa es tu capacidad segura, y el pool de conexiones a la base de datos (una métrica de saturación) es lo primero que hay que revisar.
Cómo medir el rendimiento de una API
- Pruebas de carga: generan tráfico controlado antes de un release y permiten comparar ejecuciones. Véase pruebas de carga.
- Monitorización sintética de API: comprobaciones programadas contra producción que registran tiempo de respuesta, estado y cuerpo. Véase monitorización de API.
- APM y datos de usuarios reales: la instrumentación del servidor y los datos de campo muestran lo que vive el tráfico real. Véase monitorización del rendimiento de aplicaciones.
Ninguna fuente lo ve todo: las pruebas dan una baseline reproducible, la monitorización detecta regresiones en producción y el APM explica la causa.
Errores comunes
- Informar solo de medias. La cola lenta es lo que molesta a los usuarios.
- Medir solo en staging. Los datos, las cachés y la mezcla de tráfico son distintos en producción.
- Sin objetivos. Las métricas que nadie compara con un SLO se ignoran.
- Alertar por cada 5xx. Es mejor alertar por la tasa de errores en una ventana.
- Una sola cifra para todos los endpoints. Desglosa por endpoint y versión.
- Probar una sola vez. Vuelve a probar tras cambios importantes.
Mide el rendimiento de tu API con LoadFocus
Las pruebas de carga de LoadFocus ejecutan pruebas de JMeter, k6 y sin código desde 25 regiones en la nube e informan de tiempo de respuesta, latencia, throughput, errores y de los percentiles 50, 90 y 99, con umbrales de aprobado o suspenso para p95 o p99, tasa de errores y throughput. La monitorización de API comprueba tus endpoints según un calendario (cada 5 minutos en el plan gratuito) y puede dar una comprobación por fallida según estado, cuerpo, cabeceras o tiempo de respuesta. Para una visión más amplia, véase pruebas de API.
Preguntas frecuentes: métricas de rendimiento de API
¿Qué es una buena latencia para una API?
Depende del caso de uso y de lo que esperen los usuarios. Muchos equipos buscan un p95 de unos pocos cientos de milisegundos en endpoints interactivos, y menos en llamadas internas o en tiempo real. Fija el objetivo a partir de tus propios usuarios y mide p95 y p99, no la media.
¿Cómo encuentro el throughput máximo de una API?
Ejecuta una prueba de carga que suba el tráfico por pasos y observa la latencia y los errores. El punto en que la latencia sube o aparecen errores mientras el throughput deja de crecer es el máximo práctico.
¿Qué tasa de errores es aceptable?
No hay una cifra universal. Sale de tu SLO: un endpoint de pagos o de inicio de sesión necesita una tasa mucho más baja que uno no crítico. Defínela por endpoint y mídela en una ventana como 30 días.
¿Debo seguir el p95 o el p99?
Los dos. El p95 describe la calidad para la mayoría de usuarios y el p99 la experiencia de los menos afortunados. Con mucho tráfico, incluso el 1 % es mucha gente.
¿Qué es un presupuesto de errores?
La cantidad de fallo que tu SLO todavía permite. Con un 99,9 % de disponibilidad en 30 días son unos 43 minutos. Cuando el presupuesto casi se agota, los equipos suelen frenar los releases arriesgados y arreglar antes la fiabilidad.
Términos relacionados
- ¿Qué son las API internas?
- ¿Qué es un payload en una API? JSON, XML, ejemplos
- ¿Qué es un endpoint de API? Definición, ejemplos y buenas prácticas
- Qué es una clave de API: definición, uso y seguridad
- ¿Qué es una auditoría de seguridad de API?
- ¿Qué es el API Abuse?
- ¿Qué es el acceso a una API? Claves, OAuth y tokens
- Qué es el caché de API: cabeceras, capas e invalidación
Herramientas LoadFocus relacionadas
Lleva este concepto a la práctica con LoadFocus, la misma plataforma que potencia todo lo que acabas de leer.