Real User Monitoring (RUM) : Définition, Outils, Exemples
RUM capture performance et erreurs depuis sessions utilisateurs réelles en production — instrumentation JS. Complète synthetic avec données real-world.
Qu'est-ce que le Real User Monitoring (RUM) ?
Le Real User Monitoring (RUM) est la pratique de capturer des données performance, erreurs et user-experience d'utilisateurs réels qui browsent votre application en production. Un petit snippet JavaScript tourne dans le navigateur de l'utilisateur, collecte les données timing/erreur et les envoie à un backend monitoring.
RUM complète (ne remplace pas) le synthetic monitoring. Synthetic = baseline consistante depuis des environnements contrôlés. RUM = réalité messy.
Ce que RUM mesure
| Catégorie | Métriques |
|---|---|
| Chargement page | TTFB, FCP, LCP, DOMContentLoaded, événement load |
| Responsiveness | INP, FID (legacy), long tasks |
| Stabilité visuelle | CLS |
| Erreurs | JS exceptions, promise rejections, erreurs réseau |
| Performance ressource | Temps chargement per-asset, taille transfert |
| Contexte utilisateur | Navigateur, OS, device, pays, ISP |
| Événements custom | KPIs business |
| Session recording | (Certains outils) replay actions |
RUM vs synthetic monitoring
| Aspect | RUM | Synthetic |
|---|---|---|
| Source données | Sessions réelles | Tests scripted |
| Sample | Tout trafic réel | Schedule fixe |
| Coverage | Logged-in, tous navigateurs | Pages publiques |
| Détecte issues pre-trafic | Non | Oui |
| Reflète réalité utilisateur | Oui | Non |
| Coût | ~$ par session | ~$ par check |
Best practice : utiliser les deux.
Comment RUM fonctionne (technique)
new PerformanceObserver((list) => {
for (const entry of list.getEntries()) {
sendBeacon('/rum', { metric: 'lcp', value: entry.startTime });
}
}).observe({ type: 'largest-contentful-paint', buffered: true });Outils RUM populaires
| Outil | Forces | Pricing |
|---|---|---|
| Datadog RUM | Intégration avec APM/logs | Per-session |
| Sentry | Error monitoring + RUM | Per-événement |
| New Relic Browser | Observability full-stack | Per-utilisateur |
| Cloudflare Web Analytics | Privacy-first | Free tier fort |
| Akamai mPulse | Intégré CDN | Enterprise |
| SpeedCurve | Performance-focused | Per-monitor |
| Raygun | Erreurs + RUM | Per-erreur |
| Self-hosted (Boomerang.js) | Privacy | DIY |
Pour quoi RUM est bon
- Diagnostiquer performance real-world.
- Valider fixes.
- Catcher bugs browser-spécifiques.
- Données user-impact.
- Définir performance budgets.
- Corréler performance avec conversion.
Pour quoi RUM n'est PAS bon
- Testing pre-launch.
- Tester internal/staging.
- Détecter outages infrastructure.
- Comparer avec concurrents.
- Benchmarks reproductibles.
Best practices RUM
- Sampler approprié.
- Tagger avec contexte.
- Tracker p75 et p95.
- Segmenter par device + connection.
- Watcher quirks Safari.
- Respecter privacy.
- Combiner avec erreurs.
- Définir thresholds alert.
RUM et Core Web Vitals
Le CrUX de Google est essentiellement données RUM d'utilisateurs Chrome.
FAQ : Real User Monitoring
RUM est-il la même chose qu'APM ?
Non. APM = monitoring backend. RUM = monitoring frontend.
RUM ralentit-il mon site ?
Marginalement.
Différence entre RUM et CrUX ?
CrUX : Chrome-only, agrégé. RUM : tous navigateurs, vos sessions.
Combien de données RUM collecte-t-il ?
Par session : ~1-5KB.
Puis-je faire du RUM sans vendor ?
Oui — Boomerang.js ou web-vitals.js + backend custom.
RUM est-il GDPR-compliant ?
Dépend de ce que vous collectez.
Comment RUM gère-t-il les SPAs ?
Les SPAs nécessitent des markers explicites page-view.
Combinez RUM avec synthetic via LoadFocus
RUM vous dit ce que les utilisateurs ont expérimenté ; synthetic vous dit ce qui est possible. LoadFocus exécute des audits Lighthouse + load tests depuis 25+ régions. Inscrivez-vous sur loadfocus.com/signup.
Outils LoadFocus connexes
Mettez ce concept en pratique avec LoadFocus — la plateforme même qui propulse tout ce que vous venez de lire.