¿Qué es Application Performance Monitoring (APM)?
APM (application performance monitoring) instrumenta el código en ejecución para reportar latencia, errores, throughput y traces por request en producción.
¿Qué es application performance monitoring (APM)?
Application performance monitoring (APM) instrumenta el código de aplicación en ejecución para reportar latencia, tasa de errores, throughput y execution traces de cada request que llega a producción. Mientras los logs cuentan qué pasó, APM muestra cuánto tardó cada paso, qué downstream call ralentizó el request y qué línea de código lanzó la exception. Los datos están indexados por request y agregados por endpoint, host, service y ventana temporal.
Un APM agent corre in-process (una library dentro de la JVM, Node runtime, .NET CLR, intérprete Python, VM Ruby) y se engancha en web frameworks, clientes de base de datos, clientes HTTP, consumers de message queue y libraries de cache. Cada call instrumentado emite un span: start time, end time, parent span, tags. Spans ensamblados en un trace dan el ciclo completo del request desde el clic frontend hasta el retorno de la fila de base de datos.
APM vs synthetic monitoring vs RUM
Tres categorías de monitoring que se confunden:
- APM: agent dentro del código de tu app. Reporta tráfico real de producción con granularidad por request. La mejor opción para encontrar el endpoint o query lento.
- Synthetic monitoring: check scripted desde una ubicación conocida en intervalo fijo. Reporta disponibilidad y performance predecible. Ver synthetic monitoring.
- RUM (real-user monitoring): JS beacon en el browser. Reporta lo que usuarios reales experimentaron incluyendo red, dispositivo, geografía. Ver RUM.
Necesitas las tres. APM dice: el servidor emitió 200 en 80 ms. RUM dice: el usuario en Sydney vio una página de 4 segundos por red last-mile lenta. Synthetic dice: la homepage respondió cada 5 minutos desde us-east-1, incluso a las 3 AM.
Qué captura APM
- Request rate y error rate por endpoint, service y host. El método RED (Rate, Errors, Duration).
- Percentiles de latencia p50, p95, p99 por endpoint. Ver latencia para entender por qué los promedios engañan.
- Distributed traces a través de microservicios: HTTP client a gateway a auth service a product service a base de datos, cada hop con timestamp.
- Performance de queries: lista de slow queries, detección N+1, esperas de connection pool.
- Latencia de external calls: APIs third-party, S3, Stripe, payment gateways. Suele ser la pieza más lenta.
- Métricas de runtime: heap JVM, GC pause time, lag del event loop de Node, contención del GIL de Python.
- Exceptions y stack traces agrupados por fingerprint con conteo de ocurrencias.
Señales APM clave para alertar
- Latencia p95 del endpoint 2x sobre baseline. Detecta regresión gradual e incidentes súbitos.
- Error rate del endpoint sobre 1% (o tu SLO). Trackear 5xx y 4xx por separado.
- Apdex score bajo threshold (0.7 es la yellow line típica).
- Caída de throughput bajo baseline RPS: a menudo el primer signo de load balancer dropeando un target.
- Spike de latencia de external call: API downstream o base de datos lenta, tu service heredando la espera.
Cómo desplegar APM
Elegir vendor (Datadog, New Relic, Dynatrace, Honeycomb, AppDynamics, Elastic APM) u OSS (Jaeger más Prometheus para traces y metrics). Instalar el agent del lenguaje: un library import más una env var con service name para la mayoría de stacks. Los primeros traces llegan en minutos. Luego añadir custom spans alrededor de operaciones de negocio (checkout, ai-generation, batch-job).
APM es más útil combinado con load tests. Correr load testing, soak testing y spike testing contra staging con APM activo permite ver exactamente qué endpoint pega su techo primero y por qué.
Si tu equipo necesita combinar load testing con análisis APM-grade de traces bajo carga de producción, LoadFocus ofrece servicios de load testing donde ingenieros diseñan scenarios y correlacionan traces APM con perfiles de carga.
Herramientas LoadFocus relacionadas
Lleva este concepto a la práctica con LoadFocus — la misma plataforma que potencia todo lo que acabas de leer.