¿Qué es Application Performance Monitoring (APM)?

El APM observa una aplicación en ejecución desde dentro: tiempos de respuesta, errores y trazas por endpoint. Cómo funciona y sobre qué alertar.

¿Qué es el Application Performance Monitoring (APM)?

El Application Performance Monitoring (APM, monitorización del rendimiento de aplicaciones) observa una aplicación en ejecución desde dentro. Un pequeño agente en tu código registra cuánto tarda cada petición, qué consulta a base de datos o llamada externa la ralentizó y qué línea lanzó un error. Obtienes tiempos de respuesta, tasas de error, rendimiento y trazas de peticiones del tráfico real de producción, agrupados por endpoint, servicio y host.

Cómo funciona el APM

Un agente APM se ejecuta dentro del proceso de tu aplicación (JVM, Node.js, .NET, Python, Ruby) y se engancha a frameworks web, clientes de base de datos, clientes HTTP, consumidores de colas y cachés. Cada llamada instrumentada genera un span con hora de inicio y fin, un span padre y etiquetas. Los spans unidos forman una traza: el recorrido completo de una petición desde la entrada hasta la base de datos y de vuelta. Agregadas, las trazas dan los paneles que los equipos abren durante una incidencia.

Ejemplo: el pago se siente lento. La traza de una petición lenta muestra 80 ms en tu código y 1,9 s esperando a un proveedor de pagos. Sin la traza tendrías que adivinar entre la aplicación, la base de datos y la red.

APM frente a monitorización sintética y RUM

  • APM vive dentro de tu código e informa de peticiones reales de producción con detalle por petición. Ideal para encontrar el endpoint o la consulta lentos.
  • La monitorización sintética ejecuta comprobaciones con script desde fuera, a intervalos y desde ubicaciones fijas. Ideal para disponibilidad y para detectar problemas cuando no hay usuarios reales conectados.
  • El monitoreo de usuarios reales (RUM) se ejecuta en el navegador e informa de lo que vivieron los visitantes reales, con dispositivo y red incluidos. Ideal para la vista del usuario.

Responden preguntas distintas. El APM puede indicar que el servidor respondió en 80 ms mientras el RUM muestra que un visitante con una red móvil lenta esperó cuatro segundos. El APM es además una parte de la observabilidad, junto con logs y métricas.

Qué captura el APM

  • Tasa, errores y duración por endpoint (el método RED).
  • Percentiles de latencia como p50, p95 y p99. Mira la latencia para ver por qué las medias engañan.
  • Trazas distribuidas entre servicios, con cada salto cronometrado.
  • Rendimiento de base de datos: consultas lentas, consultas repetidas en un bucle (N+1) y esperas del pool de conexiones.
  • Llamadas externas a APIs de terceros y proveedores de pago, a menudo la parte más lenta y más difícil de arreglar.
  • Salud del runtime: uso de memoria, pausas del recolector de basura, retraso del event loop.
  • Excepciones con stack traces, agrupadas por causa y con recuento.

Sobre qué alertar

  1. Latencia p95 muy por encima de su línea base habitual en un endpoint.
  2. Tasa de errores por encima de tu objetivo. Sigue 5xx y 4xx por separado, porque los 4xx suelen ser un mal uso del cliente.
  3. Caídas de rendimiento por debajo del nivel habitual, a menudo la primera señal de que un balanceador perdió un destino.
  4. Latencia creciente de llamadas externas, que tu servicio hereda como retraso propio.

Elige los umbrales a partir de tu propia línea base y tus SLO, no de una cifra genérica.

Errores frecuentes

  • Alertar sobre medias, que ocultan la cola lenta.
  • Trazar solo rutas HTTP y nunca pasos de negocio como el pago o un trabajo por lotes. Añade spans personalizados para ellos.
  • Muestrear tanto que las peticiones lentas poco frecuentes nunca aparecen.
  • Dejar el APM apagado en staging, de modo que las pruebas de carga no enseñan dónde se va el tiempo.

Cómo implantar APM

Elige un producto APM comercial o una pila de código abierto (trazas y métricas con estándares abiertos), instala el agente del lenguaje, asigna un nombre de servicio y confirma que las trazas llegan en pocos minutos. Después añade spans personalizados alrededor de las operaciones que importan a tu negocio. Para comparar productos, consulta la guía del blog sobre herramientas de APM.

APM y pruebas de carga

El APM muestra lo que ocurre en producción. Las pruebas de carga muestran lo que ocurrirá con más tráfico. Ejecuta una prueba de carga en staging con el APM activado y verás qué endpoint llega primero a su límite y por qué. Un soak test más largo con el APM en marcha también revela el crecimiento de memoria con el tiempo. Las pruebas de carga de LoadFocus generan el tráfico desde 25 regiones cloud y dan a cada ejecución un veredicto de superado o no superado según umbrales de tiempo de respuesta y tasa de errores.

LoadFocus no es un APM y no instrumenta tu código. La monitorización de APIs es el complemento desde fuera: comprueba tus endpoints de forma programada (cada 5 minutos en el plan gratuito) y desglosa cada tiempo de respuesta en DNS, conexión TCP, primer byte y descarga, para que notes un problema aunque ningún usuario real lo esté provocando.

Preguntas frecuentes

¿Qué significa APM?

Application Performance Monitoring. Algunos proveedores lo usan también para Application Performance Management, que añade ajuste y corrección sobre la monitorización.

¿Qué diferencia hay entre APM y logging?

Los logs registran eventos puntuales que tú decides escribir. El APM registra automáticamente tiempos y contexto de cada petición instrumentada, así que ves dónde se fue el tiempo y no solo qué pasó.

¿APM es lo mismo que observabilidad?

No. El APM es una práctica dentro de la observabilidad. La observabilidad incluye además logs, métricas de infraestructura y la capacidad de hacer preguntas nuevas a tu telemetría.

¿Necesito monitorización sintética si ya tengo APM?

Sí. El APM solo ve el tráfico que llega a tu código. Una comprobación sintética desde fuera detecta una caída, un registro DNS roto o un certificado caducado aunque no llegue ninguna petición.

¿El APM ralentiza mi aplicación?

Un agente añade algo de sobrecarga. La mayoría de productos permiten controlarla con muestreo. Mídela ejecutando la misma prueba de carga con y sin agente.

¿Qué tan rápido es tu sitio web?

Mejora su velocidad y SEO sin problemas con nuestra Prueba de Velocidad gratuita.

Prueba de velocidad de sitio web gratis

Analice la velocidad de carga de su sitio web y mejore su rendimiento con nuestro comprobador de velocidad de página gratuito.