Real User Monitoring (RUM): Definición, Tools, Ejemplos
RUM captura performance y errores de sesiones usuario reales en producción — instrumentación JS. Complementa synthetic con datos real-world.
¿Qué es Real User Monitoring (RUM)?
Real User Monitoring (RUM) es la práctica de capturar datos performance, errores y user-experience de usuarios reales que browsean tu aplicación en producción. Un pequeño snippet JavaScript corre en el navegador del usuario, recolecta datos timing/error y los envía a un backend monitoring.
RUM complementa (no reemplaza) synthetic monitoring. Synthetic = baseline consistente desde entornos controlados. RUM = realidad messy.
Qué mide RUM
| Categoría | Métricas |
|---|---|
| Carga página | TTFB, FCP, LCP, DOMContentLoaded, evento load |
| Responsiveness | INP, FID (legacy), long tasks |
| Estabilidad visual | CLS |
| Errores | JS exceptions, promise rejections, errores red |
| Performance recurso | Tiempos carga per-asset, tamaño transferencia |
| Contexto usuario | Navegador, OS, device, país, ISP |
| Eventos custom | KPIs negocio |
| Session recording | (Algunas tools) replay acciones |
RUM vs synthetic monitoring
| Aspecto | RUM | Synthetic |
|---|---|---|
| Fuente datos | Sesiones reales | Tests scripted |
| Sample | Todo tráfico real | Schedule fijo |
| Coverage | Logged-in, todos navegadores | Páginas públicas |
| Detecta issues pre-tráfico | No | Sí |
| Refleja realidad usuario | Sí | No |
| Costo | ~$ por sesión | ~$ por check |
Mejor práctica: usar ambos.
Cómo funciona RUM (técnico)
new PerformanceObserver((list) => {
for (const entry of list.getEntries()) {
sendBeacon('/rum', { metric: 'lcp', value: entry.startTime });
}
}).observe({ type: 'largest-contentful-paint', buffered: true });Tools RUM populares
| Tool | Fortalezas | Pricing |
|---|---|---|
| Datadog RUM | Integración con APM/logs | Per-sesión |
| Sentry | Error monitoring + RUM | Per-evento |
| New Relic Browser | Observability full-stack | Per-usuario |
| Cloudflare Web Analytics | Privacy-first | Free tier fuerte |
| Akamai mPulse | Integrado CDN | Enterprise |
| SpeedCurve | Performance-focused | Per-monitor |
| Raygun | Errores + RUM | Per-error |
| Self-hosted (Boomerang.js) | Privacy | DIY |
Para qué es bueno RUM
- Diagnosticar performance real-world.
- Validar fixes.
- Catchear bugs browser-específicos.
- Datos user-impact.
- Setear performance budgets.
- Correlar performance con conversión.
Para qué NO es bueno RUM
- Testing pre-launch.
- Testear internal/staging.
- Detectar outages infraestructura.
- Comparar con competidores.
- Benchmarks reproducibles.
Mejores prácticas RUM
- Samplear apropiadamente.
- Taggear con contexto.
- Trackear p75 y p95.
- Segmentar por device + connection.
- Watchear quirks Safari.
- Respetar privacy.
- Combinar con errores.
- Setear thresholds alert.
RUM y Core Web Vitals
El CrUX de Google es esencialmente datos RUM de usuarios Chrome.
FAQ: Real User Monitoring
¿Es RUM lo mismo que APM?
No. APM = monitoring backend. RUM = monitoring frontend.
¿RUM ralentiza mi sitio?
Marginalmente.
¿Diferencia entre RUM y CrUX?
CrUX: solo Chrome, agregado. RUM: todos navegadores, tus sesiones.
¿Cuántos datos recolecta RUM?
Por sesión: ~1-5KB.
¿Puedo hacer RUM sin vendor?
Sí — Boomerang.js o web-vitals.js + backend custom.
¿Es RUM GDPR-compliant?
Depende qué recolectes.
¿Cómo maneja RUM SPAs?
SPAs necesitan markers explícitos page-view.
Combina RUM con synthetic vía LoadFocus
RUM te dice qué experimentaron usuarios; synthetic te dice qué es posible. LoadFocus corre auditorías Lighthouse + load tests desde 25+ regiones. Regístrate en loadfocus.com/signup.
Herramientas LoadFocus relacionadas
Lleva este concepto a la práctica con LoadFocus — la misma plataforma que potencia todo lo que acabas de leer.