Ограничения брандмауэра для данных с веб-браузеров и мобильных приложений

Материал из Dynatrace

Мониторинг пользовательских данных использует технологии HTTP для отправки данных о производительности из браузеров конечных пользователей в Ключ-АСТРОМ. Для этого RUM JavaScript внедряется на веб-страницы приложения. Этот тег или фрагмент кода взаимодействует с Ключ-АСТРОМ. Однако вы должны проверить конфигурацию своих брандмауэров, прокси-серверов и веб-серверов, чтобы обеспечить прохождение всех необходимых данных.

Запросы

Запросы

Для полноценной работы анализа пользовательских данных в Ключ-АСТРОМ должны быть доставлены следующие HTTP-запросы:

  • ruxitagentjs_ используется для JavaScript при автоматической инъекции — имя тега может содержать дополнительную информацию, такую как активные модули кода и версия тега. Безагентный способ требует использования ruxitagent_.
  • /rb_<id> и /bf или /bf_<id>являются сигналами монитора, которые RUM JavaScript отправляет обратно в Ключ-АСТРОМ.
    • Монитор использует параметры запроса. Для предыдущей версии протокола beacon 2 они app, flavor, format, referer, session, svrid, type, visitID, size, zip, va, tt, ns, и даже больше. Для нового протокола beacon версии 3 они type, svrid, rf, sn, app, dbg, flavor, vi, modifiedSince, bp, contentType, crc, v, end.
    • POST Тело содержит полезную нагрузку. Полезная нагрузка отправляется с text/plain типом содержимого. Для воспроизведения сеанса application/octet-stream также можно использовать тип содержимого.

Заголовки

RUM использует следующие HTTP-заголовки. Все эти заголовки должны иметь доступ к Ключ-АСТРОМ.

Заголовки запросов

Заголовок Цель
x-dynatrace Используется для объединения транзакций в заголовках HTTP. Устанавливается Единым Агентом для соединения веб-серверов. Убедитесь, что сетевые компоненты, такие как брандмауэры и маршрутизаторы, не настроены на удаление этих заголовков. Неправильная конфигурация может потенциально привести к повреждению распределенных трассировок. Некоторые сетевые компоненты отключают такие запросы и выдают 403 ошибку HTTP, поэтому необходимо настроить эти компоненты для приема x-dynatrace заголовка.
x-dynatrace-application Содержит идентификатор приложения RUM, домен cookie и правило внедрения (noop, auto, before, или after). Также содержит шаблон внедрения, когда injectionRule=after или injectionRule=before.

Используется в случае, если между браузером пользователя и исходным процессом, который доставляет страницу, есть какой-то прокси.

x-dynatrace-origin-url Сохраняет исходный URL-адрес запроса в случае перезаписи URL.
X-dynaTrace-RequestState Отслеживает глубину дерева подпутей, чтобы избежать бесконечных распределенных трассировок.
x-dtpc Определяет надлежащие конечные точки для передачи маяка; включает идентификатор сеанса для корреляции.
x-dtreferer Содержит ссылку на страницу для действия и улучшает результаты корреляции.
x-dtc Содержит информацию для корреляции временных интервалов между источниками.
Cookie Устанавливает dtCookie cookie на случай, если HTTP-запрос их не содержит.
X-Ruxit-Forwarded-For Используется для отслеживания сценариев прокси с помощью модуля кода NGINX.
X-ruxit-Apache-ServerNamePorts Используется модулем Apache code для синхронизации именования служб с модулем PHP code.
X-ruxit-Disposition Используется модулем кода IIS для удаления .Вложенные пути к модулю сетевого кода.
Accept-Encoding Отбрасывается модулем Apache code во время тонкой настройки поведения HTML-инъекции.
Content-Encoding Отбрасывается во время тонкой настройки поведения HTML-инъекции.
If-None-Match Отбрасывается при подавлении кэширования.
If-Not-Modified-Since Отбрасывается при подавлении кэширования.
If-Match Изменяется при подавлении кэширования.
If-Range Изменяется при подавлении кэширования.
tracecontext Используется для маркировки W3C.
referer Содержит адрес предыдущей веб-страницы, с которой была перейдена ссылка на запрашиваемую в данный момент страницу.
user-agent Используется для обнаружения браузера и операционной системы.
x-host Содержит информацию о хосте для доменов, отличных от http.

Заголовки ответов

Заголовок Цель
X-OneAgent-JS-Injection Подтверждает, что был введен RUM JavaScript, чтобы избежать дублирования.

Имеет одно из следующих значений:

  • true: внедрение завершено.
  • block: в это время не следует пытаться выполнить инъекцию.
X-ruxit-JS-Agent Подтверждает, что был введен RUM JavaScript, чтобы избежать дублирования.

Имеет одно из следующих значений:

  • true: внедрение завершено.
  • block: в это время не следует пытаться выполнить инъекцию.
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 Устанавливается для ответов на специальные запросы.

Файлы cookie

RUM использует следующие файлы cookie. Все это должно быть доступно для Ключ-АСТРОМ.

Cookie Максимальный размер Цель
dtCookie Нет установленного ограничения, но обычно менее 100 B Отслеживает посещение по нескольким запросам.
dtLatC 5 B Измеряет задержку сервера для мониторинга производительности.
dtPC 58 B Определяет надлежащие конечные точки для передачи маяка; включает идентификатор сеанса для корреляции.
dtSa Максимальная длина URL-адреса Служит промежуточным хранилищем для действий, охватывающих страницы.
dtValidationCookie Длина dTValidationCookieValue строки, то есть 23 Определяет домен верхнего уровня.
dtDisabled 4 B Определяет, следует ли деактивировать RUM JavaScript из-за затрат и контроля трафика или предотвращения перегрузки.
rxVisitor 45 B Содержит идентификатор посетителя для сопоставления сеансов.
rxvt 27 B Включает временную метку тайм-аута сеанса.

Мобильный RUM

Единый Агент для мобильных устройств использует x-dynatrace заголовок для пометки HTTP-запросов. Ключ-АСТРОМ использует этот заголовок, чтобы связать мобильную часть веб-запроса с сервисной частью, захваченной другим Единым Агентом.

Для гибридных приложений файл dtAdk cookie позволяет присоединяться к сеансу из Единого Агента для мобильных устройств и сеансу из RUM JavaScript, чтобы эти сеансы отображались как один сеанс, в то время dtAdkSettings как файл cookie используется для синхронизации настроек между Единым Агентом для мобильных устройств и RUM JavaScript.

/mbeacon это сигнал монитора, который Единый Агент для мобильных устройств отправляет обратно в Ключ АСТРОМ, если данные передаются через Активный Шлюз. Если данные отправляются другому Единому агенту, сигнал монитора будет/dtmb.