Что такое Real User Monitoring?
Real User Monitoring (RUM) — это подход к мониторингу производительности, который фиксирует и анализирует каждую транзакцию реальных пользователей на сайте или в приложении. В отличие от синтетического мониторинга, имитирующего действия пользователей из контролируемых сред, RUM собирает данные из реальных браузерных сессий, обеспечивая подлинное представление о пользовательском опыте на разных устройствах, сетях и в разных регионах.
RUM работает путем внедрения небольшого JavaScript-фрагмента на ваши страницы. Этот скрипт записывает тайминги навигации, загрузку ресурсов, ошибки JavaScript и взаимодействия пользователя, затем отправляет данные на сервер сбора для агрегации и анализа.
RUM против синтетического мониторинга
Оба подхода выполняют критически важные, но различные роли в комплексной стратегии мониторинга. Понимание их различий помогает определить, куда направить усилия и бюджет.
| Аспект | Real User Monitoring | Синтетический мониторинг |
|---|---|---|
| Источник данных | Реальные сессии пользователей | Скриптовые боты из фиксированных локаций |
| Покрытие | Все страницы, которые посещают пользователи | Только заранее определенные сценарии |
| Сетевое разнообразие | Реальные условия (3G, 4G, Wi-Fi) | Контролируемое, стабильное соединение |
| Обнаружение сбоев | Требует трафика для выявления проблем | Обнаруживает сбои даже без трафика |
| Сравнение базовых показателей | Сложнее из-за переменных условий | Легко, условия воспроизводимы |
| Модель стоимости | Масштабируется с объемом трафика | Фиксированная стоимость за интервал проверки |
Лучшая практика — использовать оба подхода: синтетический мониторинг для проактивного оповещения и отслеживания SLA, а RUM — для понимания реального пользовательского опыта.
Core Web Vitals и RUM
Core Web Vitals от Google — это основные метрики, которые должны фиксировать инструменты RUM. Эти метрики напрямую влияют на поисковые позиции и тесно коррелируют с удовлетворенностью пользователей.
- Largest Contentful Paint (LCP) — измеряет скорость загрузки. Цель: менее 2,5 секунд.
- Interaction to Next Paint (INP) — измеряет отзывчивость. Цель: менее 200 миллисекунд.
- Cumulative Layout Shift (CLS) — измеряет визуальную стабильность. Цель: менее 0,1.
RUM фиксирует эти метрики на 75-м перцентиле по всем пользовательским сессиям, совпадая с методологией, которую Google использует для ранжирования в Chrome User Experience Report (CrUX).
Отслеживание Core Web Vitals в коде
Библиотека web-vitals предоставляет легковесный способ захвата метрик CWV:
import { onLCP, onINP, onCLS } from 'web-vitals';
function sendToAnalytics(metric) {
const body = JSON.stringify({
name: metric.name,
value: metric.value,
rating: metric.rating,
delta: metric.delta,
id: metric.id,
navigationType: metric.navigationType
});
navigator.sendBeacon('/analytics/vitals', body);
}
onLCP(sendToAnalytics);
onINP(sendToAnalytics);
onCLS(sendToAnalytics);
Внедрение RUM: пошаговая инструкция
- Выберите стратегию сбора данных. Решите между сторонним RUM-сервисом или самостоятельным решением. Сторонние инструменты, такие как Datadog RUM, New Relic Browser или SpeedCurve, предлагают готовые панели мониторинга. Самостоятельные решения на базе Performance API дают полный контроль над данными.
- Разверните скрипт отслеживания. Добавьте RUM JavaScript в базовый шаблон. Убедитесь, что он загружается асинхронно, чтобы не блокировать страницу. Разместите его в
<head>для максимального покрытия. - Определите ключевые страницы и потоки. Помечайте сессии типом страницы, сегментом пользователя и географией. Это позволит проводить осмысленную сегментацию при анализе.
- Настройте пороги оповещений. Настройте алерты, когда 75-й перцентиль LCP превышает 2,5с или INP превышает 200мс. Оповещайте о внезапных регрессиях CLS, указывающих на ошибки верстки.
- Создайте дашборды для заинтересованных сторон. Создайте представления для инженеров (детальные разбивки таймингов), продукта (корреляция с конверсией) и руководства (общие показатели здоровья).
Популярные инструменты RUM
- Google CrUX — бесплатный, 28-дневные скользящие данные от пользователей Chrome. Ограничен гранулярностью на уровне домена.
- Datadog RUM — полнофункциональный инструмент с записью сессий, отслеживанием ошибок и анализом каскада ресурсов.
- New Relic Browser — сильная интеграция с APM для корреляции фронтенд-производительности с бэкенд-трассировками.
- SpeedCurve — ориентирован на бюджеты производительности и конкурентный бенчмаркинг с отличной визуализацией.
- Sentry Performance — объединяет мониторинг ошибок с данными производительности на уровне транзакций.
Лучшие практики для RUM в продакшене
- Сэмплируйте трафик при высоких объемах для контроля затрат — 10-25% выборки часто достаточно для статистически значимых данных.
- Используйте
navigator.sendBeacon()для сбора данных, чтобы избежать потери информации при выгрузке страницы. - Коррелируйте данные RUM с APM-трассировками бэкенда через общий заголовок trace ID.
- Сегментируйте данные по типу устройства, скорости соединения и географии для выявления когорт с плохим опытом.
- Просматривайте дашборды RUM еженедельно и настройте автоматические алерты регрессий для изменений, связанных с деплоями.
Заключение
Real User Monitoring устраняет разрыв между лабораторным тестированием и реальностью продакшена. Фиксируя Core Web Vitals из реальных пользовательских сессий, вы получаете видимость, необходимую для приоритизации улучшений производительности, напрямую влияющих на пользовательский опыт и бизнес-результаты. Сочетайте RUM с синтетическим мониторингом для полной стратегии наблюдаемости.