Что такое мониторинг реальных пользователей (RUM — Real User Monitoring)?
Выбор подходящих инструментов и подходов для мониторинга производительностью приложений — сложная и важная задача. Стоит помнить, что конечная цель APM (Application Performance Monitoring) — ответить на два вопроса:
- Как конечные пользователи используют ваш сайт или мобильное приложение?
- Как превратить полученные данные в полезные идеи для бизнеса и развития DevOps в компании?
Хорошей отправной точкой для достижения этих целей станет внедрение RUM (Real User Monitoring) — мониторинга реальных пользователей.
Содержание:
- Что такое “мониторинг реальных пользователей”?
- Этапы мониторинга реальных пользователей
- Как работает RUM?
- Преимущества RUM
- Ограничения этого вида мониторинга
- Практическое использование
Что такое “мониторинг реальных пользователей?”
Мониторинг реальных пользователей (RUM) — это пассивный метод мониторинга производительности, который собирает и передает данные о реальных пользователях веб-сайта или сервиса.
Отчеты с данными дают DevOps информацию о производительности веб-страницы с учетом переменных среды конечного пользователя: местоположение, устройство, операционную систему, браузер. Мониторинг реального пользователя позволяет обнаружить проблемы с обновлениями сайта на ранней стадии, так как RUM собирает следующую информацию:
- Время загрузки до первого байта и полной готовности страницы
- Редиректы, DNS и время, необходимое для подключения
- Время для отправки запроса и получения ответа на бэкенде
- Объектная модель документа (DOM — Document Object Model) во внешнем интерфейсе и время рендеринга
Это тип пассивного мониторинга, связанный со службами веб-мониторинга, для постоянного наблюдения за работой вашей системы, отслеживания доступности и функциональности. Другое название мониторинга реальных пользователей — мониторинг взаимодействия с конечным пользователем (EUM — end-user experience monitoring).
Этапы мониторинга реальных пользователей
RUM помогает узнать, насколько легко пользователям взаимодействовать с облачными, мобильными и веб-приложениями. Мониторинговые платформы, поддерживающие этот тип мониторинга, позволяют записывать пользовательские сессии в реальном времени, отслеживать взаимодействие с пользователем на нескольких уровнях, отслеживать, на какие страницы заходит человек, анализировать время отклика и определять, когда и где определенные страницы “падают”.
Этап 1. Сбор данных
Даже когда запрошенный контент размещен на других сайтах, он собирает сведения о запросах страниц, JSON и других ресурсов от браузера к веб-серверам.
Этап 2. “Сессионирование” (sessionization)
Сессионирование — процесс разделения данных о каждом посещении и объединения их в запись, которая включает указание на страницы, компоненты и информацию о времени посещения.
Этап 3. Обнаружение проблемы
Для разных сайтов, страниц и посещений исследуется любое странное поведение: задержка ответа, системные проблемы, проблемы с веб-навигацией и другие сбои.
Этап 4. Отчетность по индивидуальным посещениям
Индивидуальные посещения воссоздаются с использованием собранных данных. Можно точно отследить, что и как просматривал пользователь.
Этап 5. Отчетность и сегментация — два важных аспекта любого бизнеса
Доступность и производительность страницы можно определить с помощью агрегированных по нескольким браузерам и пользовательским сегментам данных.
Этап 6. Оповещения
При обнаружении серьезной проблемы система выдает оповещение.
Как работает мониторинг реальных пользователей?
Как и следует из названия, этот вид мониторинга собирает данные только в случае реальных посещений страницы, поэтому он и называется пассивным. Активный мониторинг, также известный как “синтетический мониторинг” (Synthetic Monitoring), имитирует пользователя и тестирует взаимодействие со страницами.
Мониторинг реальных пользователей может выполняться различными способами, включая сбор данных со стороны сервера (server-side collection), со стороны браузера (browser-side collection), или их сочетание. “Пропорция” в сочетании определяется задачами мониторинга: что вам нужно измерить.
Процесс сбора и визуализации данных разделен на пять этапов:
- “Загрузить”: асинхронная загрузка небольшого файла скрипта, находящегося в тегах отслеживаемых страниц.
- “Записать”: по мере загрузки страницы файл скрипта собирает данные о производительности.
- “Отправить”: после завершения загрузки страницы файл скрипта через безопасное соединение отправляет данные обратно на серверы службы мониторинга.
- “Обработать”: данные обрабатываются серверами. При повышенной нагрузке в пиковые часы данные о производительности , пользовательской среде и метаданные время обработки может исчисляться минутами.
- “Агрегировать”: результаты классифицируются по посещенным страницам, местоположению, браузеру (тип и версия), операционной системе (тип и версия) и виду устройства.
Преимущества мониторинга реальных пользователей
RUM поможет определить, как посетители используют веб-сайт или приложение. Вы получаете доступ к важным метрикам и возможность анализировать отдельные посещения.
- Целевые показатели уровня обслуживания (targets for service levels) легко измерить
Отслеживание взаимодействия фактических посетителей с вашим сайтом или приложением и статистика по актуальным вариантам использования позволяет приблизиться к достижению критически важных целей.
- Быстрое выявление проблем и эффективная приоритизация задач
RUM дает возможность воспроизводить пользовательские сеансы и отслеживать транзакции, что поможет обнаружить скрытые и неочевидные проблемы.
- Сегментация данных
У всех разные браузеры, типы подключений, устройства, на пользовательский опыт влияет множество факторов. Важно сегментировать данные, чтобы выявлять проблему, характерную для определенных пользователей, и проводить тесты с учетом этого разделения.
Ограничения мониторинга реальных пользователей
У RUM есть определенные недостатки, несмотря на его многочисленные преимущества. Эти недостатки легко восполнить при сочетании RUM с синтетическим мониторингом.
- Нет бенчмаркинга. RUM не может исследовать сайты конкурентов, поэтому сложно сравнивать эффективность вашего сайта с другими.
- В условиях пре-продакшна эффективность RUM ограничена. RUM функционирует в предпроизводственной среде, но у большинства разработчиков в ней почти нет трафика, с которым работает RUM.
- Слишком много данных. Даже с лучшими решениями на рынке просмотр огромного количества данных, которые собираются при мониторинге реальных пользователей, может оказаться затруднительным.
Практическое использование
RUM используется для отслеживания приложений и веб-сайтов, чтобы выявлять проблемы, которые упускают другие методы тестирования. Несколько примеров:
- Непрерывный фоновый мониторинг блога, чтобы узнать, когда и где увеличивается время загрузки страницы. Увеличение времени загрузки и тайм-аутов приведет к недовольству читателей блога и ухудшению рейтинга сайта в Google
- Может использоваться, например, банковским ПО для обнаружения периодически возникающих трудностей, таких как сбои при входе в систему
- RUM может использовать разработчик приложения для выявления сбоев платформы, которые не видны во время тестирования перед развертыванием
- Команда разработчиков может использовать RUM для устранения трудностей, возникающих при развертывании, и сузить область поиска с помощью фильтров и переменных
- Продакт-менеджеры, не имеющие большого опыта программирования, могут использовать информационные панели инструментов RUM, чтобы определять, когда страницы с высоким приоритетом работают плохо, а затем эффективно распределять ресурсы для решения проблемы
Заключение
Мониторинг реальных пользователей позволят улучшить впечатление клиентов от вашего сайта или приложения. Медленная или неполная загрузка страниц, трудности с транзакциями и другие проблемы могут испортить ваши отношения с пользователями и их восприятие компании.
RUM — отличное решение для обнаружения препятствий на пути к отличному пользовательскому опыту. Мониторинг реальных пользователей поддерживает работу вашего сайта или приложения с оптимальной производительностью, поэтому посетители будут возвращаться.