Настройка Real User Monitoring (RUM) для сайта
Real User Monitoring фиксирует производительность страниц глазами реальных пользователей — с их конкретными устройствами, сетями и браузерами. Синтетический мониторинг показывает идеальную картину; RUM показывает реальную.
Что собирает RUM
Ключевые Web Vitals: LCP (Largest Contentful Paint), FID/INP (First Input Delay / Interaction to Next Paint), CLS (Cumulative Layout Shift), TTFB (Time to First Byte), FCP.
Дополнительно — JavaScript-ошибки, сетевые запросы, время загрузки ресурсов, навигация между страницами в SPA, географическое распределение задержек.
Инструменты
| Инструмент | Особенности | Подходит для |
|---|---|---|
| Datadog RUM | Сессионные реплеи, алерты | Крупные приложения |
| New Relic Browser | Связка с APM бэкенда | Full-stack мониторинг |
| Sentry Performance | Трейсы + ошибки вместе | Стартапы, SaaS |
| Grafana Faro | Open-source, self-hosted | Контроль данных |
| web-vitals (Google) | Лёгкая библиотека | Базовый сбор |
Реализация через web-vitals + собственный эндпоинт
Минималистичный вариант без сторонних SaaS — библиотека web-vitals отправляет метрики на ваш сервер:
import { onCLS, onFCP, onLCP, onTTFB, onINP } from 'web-vitals';
function sendToAnalytics({ name, value, id, rating }) {
navigator.sendBeacon('/api/rum', JSON.stringify({
metric: name, value: Math.round(value),
id, rating, url: location.href,
ua: navigator.userAgent, ts: Date.now()
}));
}
onCLS(sendToAnalytics);
onFCP(sendToAnalytics);
onLCP(sendToAnalytics);
onTTFB(sendToAnalytics);
onINP(sendToAnalytics);
Данные пишутся в ClickHouse — он эффективно хранит временны́е ряды и строит перцентильные отчёты.
Сегментация данных
Сырые средние значения бесполезны. Важно разбить по:
- Устройство — mobile/desktop/tablet
- Страна/регион — задержки CDN сильно различаются
- Тип соединения — 4G, WiFi, 3G
- Версия браузера — особенно при поддержке legacy
-
Маршрут —
/checkoutмедленнее/catalog
Алерты и пороги
Настраиваются по p75 (75-й перцентиль), а не по среднему. Google оценивает LCP «хорошим» при p75 < 2.5 сек. Если p75 LCP на мобильных превышает 4 сек — это прямой сигнал к оптимизации.
Сроки
Базовое внедрение с отправкой метрик и дашбордом в Grafana — 1–2 дня. Интеграция с Datadog или New Relic с сессионными реплеями и алертами — 3–5 дней.







