BookinglyTech News
Software

Un middleware perfila rutas de Express con peticiones reales grabadas

El paquete @api-profiler/express mide latencia, errores y peticiones por segundo de cada ruta, y puede repetir una petición real miles de veces bajo carga.

2 min de lecturaDev.to0 vistas

Un desarrollador ha publicado en npm un middleware que mide el rendimiento de las rutas de Express y NestJS usando peticiones reales, no fixtures inventados. El paquete se llama @api-profiler/express, va bajo licencia AGPL y su autor lo ha dado a conocer él mismo en una entrada de blog. No hay banco de pruebas independiente ni cifras de terceros detrás.

La instalación es la de siempre: npm install @api-profiler/express y después app.use(profiler()). A partir de ahí cada petición que atraviese la aplicación queda registrada en memoria y el comando npx api-profiler abre una tabla en vivo con la latencia media por ruta, el máximo, la tasa de error y las peticiones por segundo, con un semáforo verde, amarillo o rojo.

Lo que el autor vende como diferencial es que el middleware ve la petición tal cual llegó: el token de autenticación válido, el parámetro de ruta que existe en la base de datos, el cuerpo que la ruta acepta. Guarda eso en memoria, enmascarado y sin escribir nada a disco, y lo puede reproducir bajo carga con npx api-profiler run GET /users/:id. Basta con lanzar una petición real una vez para que la herramienta la repita unos miles de veces y devuelva las métricas del propio servidor. Sin script de k6, sin fixtures de mentira y sin copiar tokens de un sitio a otro.

Las reglas que el autor se impuso

Son la parte más interesante del anuncio, porque marcan los límites de la herramienta:

  • Un número que no se ha medido no se muestra nunca. Si no hay muestras suficientes, aparece --.
  • Latencia y throughput no se mezclan en la misma cifra.
  • Las pruebas de carga están desactivadas en producción, solo escuchan en localhost y solo admiten GET salvo que se habilite una ruta a mano.
  • Reproducir un POST escribe datos reales.
  • Nada sale de la máquina: sin cuenta, sin telemetría, sin servidor.

El soporte declarado es Express 4 y 5, y NestJS sobre el adaptador de Express. El código está en GitHub. Además hay una extensión de VS Code ya empaquetada que mostrará la latencia junto a la línea de cada ruta, y que el autor dice que llegará al marketplace esta semana. Esa parte, de momento, es un anuncio: no hay enlace de descarga en la nota.

Para quien sospecha que una ruta concreta va lenta, la alternativa habitual es montar un escenario de carga aparte o mirar el número a ojo en Postman y cruzar los dedos. Meter el middleware en la aplicación ahorra ese trabajo, a cambio de instrumentar el proceso y de fiarse de las métricas que da el propio servidor. Queda por ver si el repositorio recibe mantenimiento más allá del lanzamiento y si alguien reproduce las cifras fuera del autor.