Ограничения брандмауэра для мониторинга реальных пользователей
Ограничения брандмауэра для RUM
Мониторинг реального пользователя (RUM) использует HTTP-технологии для отправки данных о производительности из браузеров ваших конечных пользователей в Ключ-АСТРОМ. Для этого RUM JavaScript внедряется в веб-страницы вашего приложения. Этот тег или фрагмент кода взаимодействует с Ключ-АСТРОМ. Однако необходимо проверить конфигурацию ваших брандмауэров, прокси-серверов и веб-серверов, чтобы разрешить передачу всех необходимых данных.
Запросы
Для полноценной работы RUM следующие HTTP-запросы должны проходить через вашу инфраструктуру:
Запросы кода мониторинга RUM:
- В случае безагентного мониторинга эти запросы отправляются на CDN или АктивныйШлюз кластера, настроенный в соответствии с инструкциями по настройке безагентного мониторинга реального пользователя.
- В случае автоматического внедрения они по умолчанию отправляются на веб-сервер или сервер приложений, на котором размещено приложение, а их URL-путь содержит строку
ruxitagentjs_. Подробнее о стандартном URL и доступных параметрах конфигурации см. в разделе «Настройка источника кода мониторинга реального пользователя».
Сигналы RUM, сообщающие данные, собранные RUM JavaScript, обратно в Ключ-АСТРОМ:
- В случае безагентного мониторинга сигналы по умолчанию отправляются на конечную точку сигналов, которая является частью Активного Шлюза кластера. Путь URL —
/bfили/bf/. - В случае автоматического внедрения сигналы по умолчанию отправляются на веб-сервер или сервер приложений, на котором размещено приложение, а путь URL заканчивается на
/rb_. - URL сигнала содержит параметры запроса. Убедитесь, что ваш брандмауэр не удаляет никакие параметры запроса.
- Тело POST-запроса содержит полезную нагрузку. Полезная нагрузка отправляется с типом содержимого
text/plain. Для Воспроизведения сессий также может использоваться тип содержимогоapplication/octet-stream. Доступные параметры конфигурации конечной точки сигналов см. в разделе «Настройка конечной точки сигналов для веб-приложений».
Заголовки
RUM использует следующие HTTP-заголовки. Все эти заголовки должны иметь возможность достигать Ключ-АСТРОМ.
Заголовки запроса
| Заголовок | Назначение |
|---|---|
x-astromkey |
Используется для сшивки транзакций в HTTP-заголовках. Устанавливается Единым Агентом для связи веб-серверов. Убедитесь, что сетевые компоненты, такие как брандмауэры и маршрутизаторы, никогда не настроены на удаление этих заголовков. Неправильная конфигурация может привести к разрыву распределенных трасс. Некоторые сетевые компоненты отключают такие запросы и выдают ошибку HTTP 403, поэтому необходимо настроить эти компоненты на прием заголовка x-astromkey.
|
x-astromkey-application |
Содержит идентификатор приложения RUM, домен cookie и правило внедрения (noop, auto, before или after). Также содержит шаблон внедрения, когда injectionRule=after или injectionRule=before. Используется, если между браузером пользователя и исходным процессом, предоставляющим страницу, есть прокси-сервер.
|
x-astromkey-origin-url |
Сохраняет исходный URL запроса в случае перезаписи URL. |
X-astromkey-RequestState |
Отслеживает глубину дерева подпутей, чтобы избежать бесконечных распределенных трасс. |
x-dtpc |
Идентифицирует правильные конечные точки для передачи сигналов; включает идентификатор сеанса для корреляции. |
x-dtreferer |
Содержит referer страницы для действия и улучшает результаты корреляции. |
x-dtc |
Содержит информацию для корреляции кросс-доменных XHR. |
Cookie |
Устанавливает cookie dtCookie, если HTTP-запрос его не содержит.
|
X-Ruxit-Forwarded-For |
Используется модулем кода NGINX для отслеживания сценариев прокси. |
X-ruxit-Apache-ServerNamePorts |
Используется модулем кода Apache для синхронизации именования служб с модулем кода PHP. |
X-ruxit-Disposition |
Используется модулем кода IIS для упорядочения подпутей модуля кода .NET. |
Accept-Encoding |
Отбрасывается модулем кода Apache при тонкой настройке поведения внедрения HTML. |
Content-Encoding |
Отбрасывается при тонкой настройке поведения внедрения HTML. |
If-None-Match |
Отбрасывается при подавлении кэширования. |
If-Not-Modified-Since |
Отбрасывается при подавлении кэширования. |
If-Match |
Изменяется при подавлении кэширования. |
If-Range |
Изменяется при подавлении кэширования. |
traceparent |
Используется для тегирования W3C. |
tracestate |
Используется для тегирования W3C. |
referer |
Содержит адрес предыдущей веб-страницы, с которой была запрошена текущая страница. |
user-agent |
|
x-host |
Содержит информацию о хосте для доменов, не относящихся к HTTP(S). |
Заголовки ответа
| Заголовок | Назначение |
|---|---|
X-OneAgent-JS-Injection |
Подтверждает, что RUM JavaScript был внедрен, чтобы избежать дублирования внедрения. Имеет одно из следующих значений:
|
X-ruxit-JS-Agent |
Подтверждает, что RUM JavaScript был внедрен, чтобы избежать дублирования внедрения. Имеет одно из следующих значений:
|
x-dtHealthCheck |
Содержит результаты диагностики внедрения RUM JavaScript, выполняемой службой поддержки Ключ-АСТРОМ. |
x-dtAgentId |
Если проверка работоспособности RUM включена, любой задействованный модуль кода Единого Агента добавляет сюда свой идентификатор. Устанавливается для ответов на специальные запросы. |
x-dtInjectedServlet |
Содержит полное имя внедренного сервлета или фильтра. |
Set-Cookie |
Устанавливает cookie состояния сеанса Единого Агента. |
ETag |
ЕдиныйАгент добавляет пользовательскую строку к исходному заголовку ответа ETag, чтобы отслеживать изменения в конфигурации приложения.
|
Last-modified |
Если заголовок ответа ETag изменен, ЕдиныйАгент также вычитает 1 секунду из исходного значения этого заголовка. Устанавливается для ответов на специальные запросы.
|
Content-Length |
Адаптируется при внедрении HTML. Устанавливается для ответов на специальные запросы. |
Vary |
Адаптируется при внедрении HTML в сжатые ответы. Устанавливается для ответов на специальные запросы. |
Content-Encoding |
Адаптируется при внедрении HTML в сжатые ответы. |
Content-Type |
Устанавливается для ответов на специальные запросы. |
Access-Control-Allow-Origin |
Устанавливается для ответов на специальные запросы. |
Cache-Control |
Устанавливается для ответов на специальные запросы. |
Server-Timing |
Используется для передачи информации, важной для корреляции RUM. |
Timing-Allow-Origin |
Позволяет RUM JavaScript получать доступ к информации, важной для корреляции RUM, в случае кросс-доменных запросов. |
Access-Control-Allow-Headers |
Устанавливается для ответов на специальные запросы. |
Access-Control-Allow-Methods |
Устанавливается для ответов на специальные запросы. |
Access-Control-Max-Age |
Устанавливается для ответов на специальные запросы. |
Cookies
RUM использует следующие cookies. Все они должны иметь возможность достигать Ключ-АСТРОМ. Более подробную информацию о том, как Ключ-АСТРОМ использует cookies, а также объяснение используемых обозначений см. в разделе «Cookies и клиентское хранилище для RUM и Воспроизведения сессий».
| Cookie | Максимальный размер | Назначение |
|---|---|---|
dtCookie |
Нет установленного ограничения, но обычно менее 100 Б | Отслеживает визит на протяжении нескольких запросов. |
dtPC |
58 Б | Идентифицирует правильные конечные точки для передачи сигналов; включает идентификатор сеанса для корреляции. |
dtSa |
Максимальная длина URL | Служит промежуточным хранилищем для действий, охватывающих несколько страниц. |
dtValidationCookie |
Длина строки dTValidationCookieValue, составляющая 23 символа |
Определяет домен верхнего уровня. |
rxVisitor |
45 Б | Содержит идентификатор посетителя для корреляции сеансов. |
rxvt |
27 Б | Содержит временную метку тайм-аута сеанса. |
dtsrVID |
20 Б | Указывает идентификатор текущей записанной просмотра. |
dtSR |
81 Б | Если включено Воспроизведение сессий, хранит необходимые значения для сохранения непрерывности записи между страницами. |
dtsrVID cookie существует в версиях RUM JavaScript с 1.325+ по 1.333. Дополнительный cookie dtSR доступен, начиная с версии RUM JavaScript 1.335+.
Мобильный RUM
Для RUM Classic ЕдиныйАгент для мобильных устройств помечает HTTP-запросы заголовком x-astromkey. Ключ-АСТРОМ использует этот заголовок для связи мобильной части веб-запроса с сервисной частью, захваченной другим ЕдинымАгентом. Для Нового RUM ЕдиныйАгент для мобильных устройств помечает HTTP-запросы с помощью заголовков traceparent и tracestate. Для гибридных приложений cookie dtAdk позволяет объединить сеанс от Единого Агента для мобильных устройств и сеанс от RUM JavaScript так, чтобы они отображались как один сеанс, а cookie dtAdkSettings используется для синхронизации настроек между ЕдинымАгентом для мобильных устройств и RUM JavaScript. /mbeacon — это сигнал мониторинга, который ЕдиныйАгент для мобильных устройств отправляет обратно в Ключ-АСТРОМ, если данные передаются через АктивныйШлюз. Если данные отправляются другому ЕдиномуАгенту, сигналом мониторинга является /dtmb.