RUM vs monitoring syntetyczny
- RUM: prawdziwy rozkład urządzeń, sieci i geografii; wymaga ruchu; dane dopiero po wdrożeniu zmian.
- Syntetyk: powtarzalne warunki, testy przed wdrożeniem i na środowiskach stagingowych; nie odda różnorodności realnych użytkowników.
- Dojrzały monitoring łączy oba podejścia: syntetyk do regresji i alertów, RUM do priorytetów i oceny efektu.
Co warto zbierać
Minimum to Core Web Vitals (LCP, INP, CLS) z podziałem na typ urządzenia, kraj i szablon strony, plus błędy JavaScript i czasy odpowiedzi API. Analizuj percentyle (p75, p95), nie średnie — średnia maskuje problemy, które dotykają istotną mniejszość użytkowników.
Przykład
Minimalny fragment kodu RUM z PerformanceObserver — zbiera LCP z rzeczywistych wizyt i wysyła dane do punktu końcowego systemu analitycznego.
new PerformanceObserver((list) => {
const entry = list.getEntries().at(-1);
navigator.sendBeacon('/rum', JSON.stringify({
metric: 'LCP',
value: entry.startTime,
path: location.pathname
}));
}).observe({ type: 'largest-contentful-paint', buffered: true });Źródła i dalsza lektura
- MDN — Rum vs. Synthetic monitoring dokumentacja
- web.dev — Dlaczego dane lab i field się różnią dokumentacja
- W3C — Performance Timeline (API pomiarowe) standard