Исключение запросов XHR и Fetch из мониторинга

Материал из Документация Ключ-АСТРОМ

Исключение запросов XHR и Fetch из мониторинга

По умолчанию RUM фиксирует событие запроса всякий раз, когда приложение отправляет запрос XMLHttpRequest (XHR) или Fetch. Если запрос инициируется щелчком мыши, также фиксируется действие пользователя, связанное с запросом. Вы можете исключить как события запроса, так и события действия пользователя, создав правила исключения XHR. Эти правила особенно полезны, когда ваше приложение часто отправляет XHR-запросы на основе статуса, которые вы не хотите включать в данные пользователя.

Настройка правила исключения XHR

Чтобы исключить запросы XHR и Fetch из мониторинга:

  1. Перейдите в раздел Ключевые показатели опыта > Обзор.
  2. Выберите Веб, чтобы просмотреть все веб-интерфейсы.
  3. Выберите интерфейс, который хотите настроить.
  4. На вкладке Настройки выберите Настройки XHR.
  5. В разделе Исключить XHR-запросы из мониторинга выберите Добавить.
  6. В правиле исключения XHR укажите регулярное выражение JavaScript, соответствующее URL-адресам запрашиваемых ресурсов.

Избегайте неэффективных регулярных выражений

Неэффективные регулярные выражения могут вызывать проблемы с производительностью вашего приложения, включая зависание браузера на несколько секунд. Для повышения производительности пишите выражения, которые соответствуют подстроке URL-адреса, а не всему URL-адресу целиком. Это особенно актуально для длинных URL-адресов.

Как применяются правила исключения XHR

JavaScript-код RUM проверяет регулярное выражение по отношению к URL-адресу с помощью RegExp.prototype.test(). Регулярное выражение не обязательно должно соответствовать полному URL-адресу, а только его подстроке. Совпадение нечувствительно к регистру, и косые черты (/) не нужно экранировать.

В RUM совпадающий URL всегда является абсолютным. В RUM Classic URL — это то, что было передано в вызов XHR или Fetch, и это может быть как относительный, так и абсолютный URL. Правила исключения XHR, которые вы настраиваете в RUM, также применяются в RUM Classic, поэтому, если вы хотите, чтобы правило работало для обоих случаев, напишите регулярное выражение, которое соответствует как абсолютному URL, так и URL, переданному в вызов XHR или Fetch.

Сайты для тестирования регулярных выражений

При составлении регулярного выражения с помощью такого сайта, как Regex101, выберите следующие параметры:

  • Вариант ECMAScript (JavaScript)
  • Разделитель "
  • Флаг совпадения, нечувствительный к регистру

Примеры

В следующих примерах показано, как задать правила исключения XHR для распространенных сценариев.

Исключение запросов подтверждения активности из вашего собственного приложения

Приложение отправляет запросы подтверждения активности с помощью XMLHttpRequest, и поскольку это запросы из одного источника, оно использует относительный URL /api/heartbeat. Поэтому RUM Classic сопоставляет правила исключения XHR с относительным URL /api/heartbeat, а RUM — с абсолютным URL https://example.com/api/heartbeat.

Указание правила исключения XHR с помощью регулярного выражения /api/heartbeat исключает запросы подтверждения активности из мониторинга как в RUM, так и в RUM Classic.

Исключение маяков Google Analytics

Приложение использует Google Analytics, который отправляет маяки с URL-адресом https://www.google-analytics.com/g/collect?v=2&tid=G-XXXXXXXX&.... Поскольку это междоменные запросы, и для вызова используется абсолютный URL-адрес, правила исключения XHR сопоставляются с абсолютным URL-адресом как в RUM, так и в RUM Classic.

Указание правила исключения XHR с помощью регулярного выражения google-analytics\.com/g/collect исключает эти запросы из мониторинга как в RUM, так и в RUM Classic.

Исключение запросов Google Analytics полностью

Приложение использует Google Analytics, который отправляет запросы на следующие URL-адреса:

Поскольку это междоменные запросы, и для вызова используется абсолютный URL-адрес, правила исключения XHR сопоставляются с абсолютным URL-адресом как в RUM, так и в RUM Classic.

Указание правила исключения XHR с помощью регулярного выражения google-analytics\.com|googletagmanager\.com исключает эти запросы из мониторинга как в RUM, так и в RUM Classic.