intermediate

Real user monitoring

Measure actual user sessions by device, network, geography, route, release, and percentile rather than averages alone.

Real User Monitoring (RUM) collects performance and error data from actual sessions—devices, networks, geographies, releases—and reports distributions (p75/p95), not single lab scores.

| Signal | Why RUM matters | |--------|-----------------| | LCP/INP/CLS field | What users truly experience | | Route / view | Which pages regress after deploy | | Release version | Tie metrics to build SHA | | Device class | Mobile vs desktop gap |

					// Concept: beacon on navigation
navigator.sendBeacon('/rum', JSON.stringify({ route, vitals, release }));
				

Use CrUX for public origin data; add first-party or vendor RUM (Sentry, Datadog RUM, web-vitals library) for granular routes. Sample high-traffic sites to control cost.

On interviews: RUM vs synthetic; privacy and PII in beacons; sampling strategies; how to debug a p75 LCP regression with cohort filters.

Common pitfalls: averaging global metrics; ignoring long-tail countries; no release dimension; RUM script hurting INP.

The trade-off is fidelity to real users versus instrumentation cost and privacy constraints.

Checklist:

  • Track vitals by route and release.
  • Report percentiles, not only means.
  • Redact PII in client beacons.
  • Compare cohorts after deploy.