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

Материал из Dynatrace

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

Запросы

Запросы

Для полноценной работы анализа пользовательских данных в Dynatrace должны быть доставлены следующие HTTP-запросы:

  • ruxitagentjs_ используется для JavaScript при автоматической инъекции — имя тега может содержать дополнительную информацию, такую как активные модули кода и версия тега. Безагентный способ требует использования ruxitagent_.
  • /rb_<id> и /bf или /bf_<id>являются сигналами монитора, которые RUM JavaScript отправляет обратно в Dynatrace.
    • Монитор использует параметры запроса. Для предыдущей версии протокола 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-заголовки. Все эти заголовки должны иметь доступ к Dynatrace.

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

Заголовок Цель
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. Все это должно быть доступно для Dynatrace.

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-запросов. Dynatrace использует этот заголовок, чтобы связать мобильную часть веб-запроса с сервисной частью, захваченной другим Единым Агентом.

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

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