Внедрение Мониторинга реального пользователя JavaScript: различия между версиями
ENetrebin (обсуждение | вклад) |
ENetrebin (обсуждение | вклад) |
||
(не показана 1 промежуточная версия этого же участника) | |||
Строка 1: | Строка 1: | ||
Dynatrace Real User Monitoring (RUM) собирает метрики из веб-браузеров ваших клиентов и сопоставляет данные браузера с информацией на стороне сервера, полученной от ЕдиныйАгент. Данные веб-браузера собираются RUM JavaScript, который помещается в HTML веб-страниц ваших веб-приложений. Мы называем это размещение RUM JavaScript «инъекцией». | |||
== Как работает внедрение RUM JavaScript? == | == Как работает внедрение RUM JavaScript? == | ||
Строка 9: | Строка 9: | ||
Для управления закачкой можно использовать альтернативные форматы закачки . | Для управления закачкой можно использовать альтернативные форматы закачки . | ||
В зависимости от того, как вы включаете RUM, данные мониторинга отправляются в | В зависимости от того, как вы включаете RUM, данные мониторинга отправляются в Dynatrace в различных типах запросов: | ||
* Если у вас установлен ЕдиныйАгент: RUM JavaScript отправляет данные обратно на ваш веб-сервер или сервер приложений. ЕдиныйАгент выполняет некоторый первоначальный мониторинг данных, а затем перенаправляет их в кластер | * Если у вас установлен ЕдиныйАгент: RUM JavaScript отправляет данные обратно на ваш веб-сервер или сервер приложений. ЕдиныйАгент выполняет некоторый первоначальный мониторинг данных, а затем перенаправляет их в кластер Dynatrace. Данные передаются с помощью запросов XHR POST. По умолчанию конечная точка маяка относится к текущему домену. Также возможно отправлять данные через АктивныйШлюз. | ||
* Если у вас не установлен ЕдиныйАгент: данные отправляются непосредственно в | * Если у вас не установлен ЕдиныйАгент: данные отправляются непосредственно в Dynatrace, минуя вашу инфраструктуру. | ||
== Куда внедряется RUM JavaScript? == | == Куда внедряется RUM JavaScript? == | ||
Dynatrace RUM JavaScript работает только с действительным HTML. Грязный код страницы часто является причиной сбоя потока данных мониторинга. Поэтому обратите особое внимание на основные передовые методы работы с HTML, например, убедитесь, что в вашем коде нет незакрытых или отсутствующих тегов. | |||
Наш RUM JavaScript внедряется только в HTML. Мы не изменяем изображения, CSS, службы REST или XML-файлы. ЕдиныйАгент всегда пытается внедрить свой RUM JavaScript в качестве первого скрипта на странице. Это помогает сохранить ваше веб-приложение в целости, но также гарантирует более надежные результаты мониторинга (например, время). Если вы вставляете RUM JavaScript вручную, убедитесь, что это первый исполняемый скрипт на каждой странице. | Наш RUM JavaScript внедряется только в HTML. Мы не изменяем изображения, CSS, службы REST или XML-файлы. ЕдиныйАгент всегда пытается внедрить свой RUM JavaScript в качестве первого скрипта на странице. Это помогает сохранить ваше веб-приложение в целости, но также гарантирует более надежные результаты мониторинга (например, время). Если вы вставляете RUM JavaScript вручную, убедитесь, что это первый исполняемый скрипт на каждой странице. | ||
Строка 158: | Строка 158: | ||
не-<head тег | не-<head тег | ||
|- | <nowiki>|-</nowiki> | ||
|ошибка синтаксического анализа | <nowiki>|</nowiki>ошибка синтаксического анализа | ||
|Содержимое документа не демонстрирует базовую структуру, ожидаемую от тегов и атрибутов HTML. | <nowiki>|</nowiki>Содержимое документа не демонстрирует базовую структуру, ожидаемую от тегов и атрибутов HTML. | ||
|Сканирование документа останавливается. | <nowiki>|</nowiki>Сканирование документа останавливается. | ||
Если потенциальная точка инъекции обнаружена раньше, введите туда и не сканируйте дальше. При наличии нескольких потенциальных точек впрыска используется самая ранняя из них. | Если потенциальная точка инъекции обнаружена раньше, введите туда и не сканируйте дальше. При наличии нескольких потенциальных точек впрыска используется самая ранняя из них. | ||
Если ни одно правило не обеспечивает более раннюю точку внедрения, не выполняйте внедрение. | Если ни одно правило не обеспечивает более раннюю точку внедрения, не выполняйте внедрение. | ||
| | <nowiki>|</nowiki> | ||
|} | <nowiki>|}</nowiki> | ||
Если ЕдиныйАгент не вставляет RUM JavaScript автоматически на страницы вашего приложения из-за ошибок проверки HTML, сначала проверьте возможные ошибки, выполнив приведенные выше инструкции. В качестве альтернативы можно определить пользовательские правила внедрения, чтобы контролировать, когда и где происходит автоматическое внедрение на страницах вашего приложения. Вы также можете отключить внедрение RUM JavaScript для определенных ресурсов. | Если ЕдиныйАгент не вставляет RUM JavaScript автоматически на страницы вашего приложения из-за ошибок проверки HTML, сначала проверьте возможные ошибки, выполнив приведенные выше инструкции. В качестве альтернативы можно определить пользовательские правила внедрения, чтобы контролировать, когда и где происходит автоматическое внедрение на страницах вашего приложения. Вы также можете отключить внедрение RUM JavaScript для определенных ресурсов. | ||
Чтобы создать пользовательское правило инъекции | Чтобы создать пользовательское правило инъекции | ||
# В меню | <nowiki>#</nowiki> В меню Dynatrace выберите Web . | ||
# Выберите приложение, которое вы хотите настроить. | <nowiki>#</nowiki> Выберите приложение, которое вы хотите настроить. | ||
# В правом верхнем углу страницы обзора приложения выберите Дополнительно ( … ) > Изменить . | <nowiki>#</nowiki> В правом верхнем углу страницы обзора приложения выберите Дополнительно ( … ) > Изменить . | ||
# В настройках приложения перейдите в Injection . | # В настройках приложения перейдите в Injection . | ||
Строка 183: | Строка 183: | ||
# Выберите Добавить , чтобы создать пользовательское правило внедрения. | # Выберите Добавить , чтобы создать пользовательское правило внедрения. | ||
== Как контролировать | == Как контролировать инъекцию? == | ||
Независимо от того, используете ли вы автоматическое внедрение через ЕдиныйАгент или решили вручную вставить RUM JavaScript в свое веб-приложение, | Независимо от того, используете ли вы автоматическое внедрение через ЕдиныйАгент или решили вручную вставить RUM JavaScript в свое веб-приложение, Dynatrace предлагает различные форматы внедрения для интеграции RUM в ваше веб-приложение. Но давайте сначала рассмотрим отдельные части, необходимые для интеграции Dynatrace RUM в ваше веб-приложение: | ||
* Код мониторинга : код JavaScript, который предоставляет вам возможности мониторинга RUM, такие как захват действий пользователя. | * Код мониторинга : код JavaScript, который предоставляет вам возможности мониторинга RUM, такие как захват действий пользователя. | ||
* Конфигурация : все настройки, связанные с RUM, которые вы определили в пользовательском интерфейсе | * Конфигурация : все настройки, связанные с RUM, которые вы определили в пользовательском интерфейсе Dynatrace, включая активированные модули, такие как воспроизведение сеанса. | ||
* по желанию Тег JavaScript , который можно использовать для простой интеграции предыдущих двух частей в ваше веб-приложение в зависимости от выбранного формата. | * по желанию Тег JavaScript , который можно использовать для простой интеграции предыдущих двух частей в ваше веб-приложение в зависимости от выбранного формата. | ||
Строка 197: | Строка 197: | ||
* Получить через REST API | * Получить через REST API | ||
=== | === Автоматическая инъекция === | ||
Автоматическая инъекция поддерживает все форматы инъекций и обеспечивает бесшовные автоматические обновления, выполняемые ЕдиныйАгент. | Автоматическая инъекция поддерживает все форматы инъекций и обеспечивает бесшовные автоматические обновления, выполняемые ЕдиныйАгент. | ||
{| class="wikitable" | {| class="wikitable" | ||
Строка 208: | Строка 208: | ||
|- | |- | ||
|Все форматы | |Все форматы | ||
| | |Dynatrace ЕдиныйАгент может использовать все форматы инъекций, перечисленные в разделе « Вставка вручную » , для автоматической интеграции RUM в ваше приложение. | ||
Единственным исключением является формат тега JavaScript, поскольку тег JavaScript ЕдиныйАгент по сути такой же, с той разницей, что включает конфигурацию , поскольку ЕдиныйАгент может автоматически обновлять ее. | Единственным исключением является формат тега JavaScript, поскольку тег JavaScript ЕдиныйАгент по сути такой же, с той разницей, что включает конфигурацию , поскольку ЕдиныйАгент может автоматически обновлять ее. | ||
Строка 250: | Строка 250: | ||
| | | | ||
| | | | ||
|Используйте, когда обновления конфигурации должны немедленно отражаться на клиентах ваших реальных пользователей, когда вы не хотите вручную обновлять конфигурацию или код мониторинга, и когда вы хотите отложить загрузку | |Используйте, когда обновления конфигурации должны немедленно отражаться на клиентах ваших реальных пользователей, когда вы не хотите вручную обновлять конфигурацию или код мониторинга, и когда вы хотите отложить загрузку Dynatrace RUM. 1 | ||
|- | |- | ||
|Встроенный код ( <code>jsInlineScript</code>) | |Встроенный код ( <code>jsInlineScript</code>) | ||
Строка 266: | Строка 266: | ||
| | | | ||
| | | | ||
|Используйте тот же тег JavaScript, который автоматически вставляется | |Используйте тот же тег JavaScript, который автоматически вставляется Dynatrace ЕдиныйАгент с включенным автоматическим внедрением. | ||
Используйте его только в целях тестирования или в сочетании с полностью автоматическими обновлениями API встроенного кода , чтобы убедиться, что код мониторинга и конфигурация всегда актуальны. | Используйте его только в целях тестирования или в сочетании с полностью автоматическими обновлениями API встроенного кода , чтобы убедиться, что код мониторинга и конфигурация всегда актуальны. | ||
Строка 276: | Строка 276: | ||
2 | 2 | ||
Для управляемого используйте собственный CDN. Для SaaS используется CDN | Для управляемого используйте собственный CDN. Для SaaS используется CDN Dynatrace. | ||
Для всех форматов внедрения, за исключением отложенного фрагмента кода ( <code>asyncCS</code>) , полная функциональность кода мониторинга загружается синхронно. | Для всех форматов внедрения, за исключением отложенного фрагмента кода ( <code>asyncCS</code>) , полная функциональность кода мониторинга загружается синхронно. | ||
Строка 282: | Строка 282: | ||
==== Обновления в ручной вставке ==== | ==== Обновления в ручной вставке ==== | ||
{| class="wikitable" | {| class="wikitable" | ||
|Настроено в | |Настроено в Dynatrace. | ||
|Код мониторинга и конфигурация обновляются в соответствии с продолжительностью кэширования, пока изменения не станут активными. Вы можете настроить продолжительность кэширования при настройке инъекции. | |Код мониторинга и конфигурация обновляются в соответствии с продолжительностью кэширования, пока изменения не станут активными. Вы можете настроить продолжительность кэширования при настройке инъекции. | ||
|- | |- | ||
Строка 288: | Строка 288: | ||
|Мы рекомендуем вам регулярно обновлять фрагмент, чтобы новая конфигурация была доступна с самого начала. В противном случае новая конфигурация будет доступна только после первой перезагрузки страницы. Вы должны настроить кэширование в своей среде, используя конфигурацию вашего веб-сервера. | |Мы рекомендуем вам регулярно обновлять фрагмент, чтобы новая конфигурация была доступна с самого начала. В противном случае новая конфигурация будет доступна только после первой перезагрузки страницы. Вы должны настроить кэширование в своей среде, используя конфигурацию вашего веб-сервера. | ||
|} | |} | ||
Все указанные длительности кэширования относятся к тому, как долго | Все указанные длительности кэширования относятся к тому, как долго Dynatrace CDN будет кэшировать ваш код мониторинга и/или конфигурацию. Если вы используете собственную CDN (в Dynatrace Managed), указанные длительности неприменимы, поскольку они зависят от вашей собственной конфигурации. | ||
==== Получить через REST API ==== | ==== Получить через REST API ==== | ||
Используйте API | Используйте API Dynatrace, чтобы вставить RUM JavaScript с помощью скриптов сборки. | ||
==== Использовать ручную вставку для групп процессов ==== | ==== Использовать ручную вставку для групп процессов ==== | ||
Строка 298: | Строка 298: | ||
Чтобы подавить автоматическую инъекцию и вручную вставить RUM JavaScript | Чтобы подавить автоматическую инъекцию и вручную вставить RUM JavaScript | ||
# В меню | # В меню Dynatrace выберите Web . | ||
# Выберите приложение, которое вы хотите настроить. | # Выберите приложение, которое вы хотите настроить. | ||
# В правом верхнем углу страницы обзора приложения выберите Дополнительно ( … ) > Изменить . | # В правом верхнем углу страницы обзора приложения выберите Дополнительно ( … ) > Изменить . | ||
Строка 362: | Строка 362: | ||
=== Оптимизация заголовка кеша для ресурсов, отличных от HTML === | === Оптимизация заголовка кеша для ресурсов, отличных от HTML === | ||
Иногда ЕдиныйАгент изменяет заголовки элементов управления кэшем не-HTML-ресурсов. Это происходит потому, что изменение заголовка происходит до того, как становится известен точный тип содержимого. | Иногда ЕдиныйАгент изменяет заголовки элементов управления кэшем не-HTML-ресурсов. Это происходит потому, что изменение заголовка происходит до того, как становится известен точный тип содержимого. Dynatrace исключает определенные ресурсы из оптимизации заголовка кэша на основе суффикса URI, но невозможно охватить все ресурсы, отличные от HTML. | ||
Чтобы исключить ресурсы, отличные от HTML, из оптимизации заголовка кэша, создайте собственное правило внедрения , чтобы отключить внедрение RUM JavaScript. | Чтобы исключить ресурсы, отличные от HTML, из оптимизации заголовка кэша, создайте собственное правило внедрения , чтобы отключить внедрение RUM JavaScript. | ||
Строка 371: | Строка 371: | ||
Чтобы отключить оптимизацию заголовка управления кешем | Чтобы отключить оптимизацию заголовка управления кешем | ||
# В меню | # В меню Dynatrace выберите Web . | ||
# Выберите приложение, которое вы хотите настроить. | # Выберите приложение, которое вы хотите настроить. | ||
# В правом верхнем углу страницы обзора приложения выберите Дополнительно ( … ) > Изменить . | # В правом верхнем углу страницы обзора приложения выберите Дополнительно ( … ) > Изменить . | ||
Строка 377: | Строка 377: | ||
# В настройках приложения перейдите в « Захват » > « Дополнительные настройки » . | # В настройках приложения перейдите в « Захват » > « Дополнительные настройки » . | ||
# В разделе «Настройки файлов cookie и заголовков » отключите параметр «Оптимизировать значение заголовков управления кешем для использования с | # В разделе «Настройки файлов cookie и заголовков » отключите параметр «Оптимизировать значение заголовков управления кешем для использования с Dynatrace Real User Monitoring» . | ||
Если вы отключите эту функцию для одного из ваших приложений, время, необходимое для развертывания новой конфигурации RUM, будет зависеть исключительно от режима кэширования вашего приложения. | Если вы отключите эту функцию для одного из ваших приложений, время, необходимое для развертывания новой конфигурации RUM, будет зависеть исключительно от режима кэширования вашего приложения. | ||
|} |
Текущая версия на 16:46, 22 января 2023
Dynatrace Real User Monitoring (RUM) собирает метрики из веб-браузеров ваших клиентов и сопоставляет данные браузера с информацией на стороне сервера, полученной от ЕдиныйАгент. Данные веб-браузера собираются RUM JavaScript, который помещается в HTML веб-страниц ваших веб-приложений. Мы называем это размещение RUM JavaScript «инъекцией».
Как работает внедрение RUM JavaScript?
Вы можете инициировать инъекцию одним из двух способов:
- Внедрение JavaScript в ЕдиныйАгент RUM выполняется автоматически для технологий, перечисленных в разделе Технологическая поддержка — Мониторинг реальных пользователей — Веб-серверы и приложения . Все, что вам нужно сделать, чтобы начать внедрение, — это перезапустить процессы вашего веб-сервера после установки ЕдиныйАгент. ЕдиныйАгент идентифицирует ответы HTML-содержимого и автоматически внедряет RUM JavaScript в раздел заголовка каждой страницы.
- В качестве альтернативы вы можете вставить RUM JavaScript в HTML-код вашего веб-приложения вручную, не устанавливая ЕдиныйАгент. Мы предоставляем вам RUM JavaScript в процессе установки. Вы можете вставить тег на страницы, которые вы собираетесь отслеживать.
Для управления закачкой можно использовать альтернативные форматы закачки .
В зависимости от того, как вы включаете RUM, данные мониторинга отправляются в Dynatrace в различных типах запросов:
- Если у вас установлен ЕдиныйАгент: RUM JavaScript отправляет данные обратно на ваш веб-сервер или сервер приложений. ЕдиныйАгент выполняет некоторый первоначальный мониторинг данных, а затем перенаправляет их в кластер Dynatrace. Данные передаются с помощью запросов XHR POST. По умолчанию конечная точка маяка относится к текущему домену. Также возможно отправлять данные через АктивныйШлюз.
- Если у вас не установлен ЕдиныйАгент: данные отправляются непосредственно в Dynatrace, минуя вашу инфраструктуру.
Куда внедряется RUM JavaScript?
Dynatrace RUM JavaScript работает только с действительным HTML. Грязный код страницы часто является причиной сбоя потока данных мониторинга. Поэтому обратите особое внимание на основные передовые методы работы с HTML, например, убедитесь, что в вашем коде нет незакрытых или отсутствующих тегов.
Наш RUM JavaScript внедряется только в HTML. Мы не изменяем изображения, CSS, службы REST или XML-файлы. ЕдиныйАгент всегда пытается внедрить свой RUM JavaScript в качестве первого скрипта на странице. Это помогает сохранить ваше веб-приложение в целости, но также гарантирует более надежные результаты мониторинга (например, время). Если вы вставляете RUM JavaScript вручную, убедитесь, что это первый исполняемый скрипт на каждой странице.
Следующие правила определяют критерии определения подходящего места в HTML-документе для внедрения RUM JavaScript.
Правила инъекции
Имена правил отображаются в журнале ЕдиныйАгент в следующем формате: (NAME rule)
. Пример: (</head> tag rule)
.
Имя | Условие | Действие | Отменяет | ||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
<!ДОКТИП> | Тег <!DOCTYPE> не тот <!DOCTYPE html> .
|
Прервать и не вводить. Примечание: разрешено только одно деклерирование Doctype. | |||||||||||||||||||||||||||||||||||||||||||||||||||||
начальный тег | Перед <html> этим появляется тег, не являющийся одним из следующих:
|
Прервать без инъекции. | |||||||||||||||||||||||||||||||||||||||||||||||||||||
<?xml?> | встречается <?xml ...?> спецификация.
|
Игнорируйте и продолжайте сканировать документ. | не-тег <meta>
не-тег <head> начальный тег | ||||||||||||||||||||||||||||||||||||||||||||||||||||
тег <html> | Тег <html> встречается.
|
Если потенциальная точка инъекции обнаружена раньше, введите туда и не сканируйте дальше. При наличии нескольких потенциальных точек впрыска используется самая ранняя из них.
В противном случае продолжайте сканировать документ |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
Тег <script src> | Тег <script src="..."> находится внутри <head> .
|
Если потенциальная точка инъекции обнаружена раньше, введите туда и не сканируйте дальше. При наличии нескольких потенциальных точек впрыска используется самая ранняя из них.
В противном случае введите перед этим |
не-тег <meta>
Тег <base>/<meta> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Тег <title>/<noscript> | Обнаружен тег <title> или .<noscript>
|
Игнорируйте все до тега </title> или </noscript> , затем продолжайте сканировать документ.
|
Тег <тело> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Тег <base>/<meta> | Встречается либо тег , <base> либо .<meta>
|
Отбросьте любую условную точку впрыска, найденную ранее. Продолжайте сканировать документ. | любая условная точка впрыска, найденная ранее:
не-тег <meta> незакрытый <мета> не-тег <head> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
не-тег <meta> | Внутри находится тег, <head> который не является ни , <meta> ни <title> .
|
Вводить перед ним (условный впрыск).
Продолжайте сканировать документ на случай, если этот вариант инъекции будет отменен. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
незакрытый <мета> | Тег </head> появляется после <meta> тега, который не закрыт ни закрывающим </meta> тегом, ни тегом в стиле XML <meta ... /> .
|
Добавить </meta> с последующим впрыском, как перед </head> (условным впрыском).
Продолжайте сканировать документ на случай, если этот вариант инъекции будет отменен. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
комментарий | Тег <!- comment -> встречается.
|
Игнорируйте и продолжайте сканировать документ. | не-тег <meta>
не-тег <head> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
не-тег <head> | Тег найден после , <html> но до <head> него нет ни , <head> ни <body> .
|
Вводить перед ним (условный впрыск).
Продолжайте сканировать документ на случай, если этот вариант инъекции будет отменен. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
тег </head> | Обнаружен </head> тег.
|
Если потенциальная точка инъекции обнаружена раньше, введите туда и не сканируйте дальше. При наличии нескольких потенциальных точек инъекции используется самая ранняя.
В противном случае продолжите сканирование документа. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
румянец | только Java
Flush вызывается для внедряющего потока/записи за пределами |
Отбросьте условную точку вставки, распространите сброс и продолжайте сканирование документа в поисках новой точки вставки. | любая условная точка впрыска, найденная ранее:
не-тег <head> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
залить в <head> | только Java
Flush вызывается для инъекционного потока/записи внутри |
Сохраняйте точку инъекции и продолжайте сканировать документ.
Не обращайте внимания на флеш. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
Тег <тело> | Тег <body> встречается.
|
Сканирование документа останавливается. Используется любая найденная ранее потенциальная точка инжекции. При наличии нескольких потенциальных точек инъекции используется самая ранняя из них.
Если ранее не было найдено ни одного правила, введите его после файла |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
конец файла | Достигнут конец файла, а сканирование до этого не прекращалось. | Не делайте инъекцию. | любая условная точка впрыска, найденная ранее:
не-тег <meta> незакрытый <мета> не-<head тег |- |ошибка синтаксического анализа |Содержимое документа не демонстрирует базовую структуру, ожидаемую от тегов и атрибутов HTML. |Сканирование документа останавливается. Если потенциальная точка инъекции обнаружена раньше, введите туда и не сканируйте дальше. При наличии нескольких потенциальных точек впрыска используется самая ранняя из них. Если ни одно правило не обеспечивает более раннюю точку внедрения, не выполняйте внедрение. | |} Если ЕдиныйАгент не вставляет RUM JavaScript автоматически на страницы вашего приложения из-за ошибок проверки HTML, сначала проверьте возможные ошибки, выполнив приведенные выше инструкции. В качестве альтернативы можно определить пользовательские правила внедрения, чтобы контролировать, когда и где происходит автоматическое внедрение на страницах вашего приложения. Вы также можете отключить внедрение RUM JavaScript для определенных ресурсов. Чтобы создать пользовательское правило инъекции # В меню Dynatrace выберите Web . # Выберите приложение, которое вы хотите настроить. # В правом верхнем углу страницы обзора приложения выберите Дополнительно ( … ) > Изменить .
Как контролировать инъекцию?Независимо от того, используете ли вы автоматическое внедрение через ЕдиныйАгент или решили вручную вставить RUM JavaScript в свое веб-приложение, Dynatrace предлагает различные форматы внедрения для интеграции RUM в ваше веб-приложение. Но давайте сначала рассмотрим отдельные части, необходимые для интеграции Dynatrace RUM в ваше веб-приложение:
Форматы инъекцийНайдите формат внедрения, который лучше всего подходит для вашего веб-приложения и потребностей, в следующих подразделах, относящихся к каждому типу внедрения.
Автоматическая инъекцияАвтоматическая инъекция поддерживает все форматы инъекций и обеспечивает бесшовные автоматические обновления, выполняемые ЕдиныйАгент.
Ручная вставкаИспользуйте ручную вставку, когда автоматическая инъекция невозможна. В этом случае имейте в виду, что выбор правильного формата инъекции важен, потому что в противном случае вы можете потерять информацию, такую как определенные тайминги или действия пользователя, которые доступны только тогда, когда и код мониторинга RUM, и конфигурация полностью загружены. Это особенно верно в тех случаях, когда этот момент времени может быть отложен. Например, при использовании формата фрагмента кода с отложенным режимом или при использовании диспетчера тегов. Независимо от выбранного вами формата внедрения всегда лучше вставить предоставленный RUM JavaScript как можно раньше в код вашего приложения.
1 Имейте в виду, что это требует регулярных обновлений фрагментов кода, чтобы гарантировать совместимость (проверено в течение 1 года). 2 Для управляемого используйте собственный CDN. Для SaaS используется CDN Dynatrace. Для всех форматов внедрения, за исключением отложенного фрагмента кода ( Обновления в ручной вставке
Все указанные длительности кэширования относятся к тому, как долго Dynatrace CDN будет кэшировать ваш код мониторинга и/или конфигурацию. Если вы используете собственную CDN (в Dynatrace Managed), указанные длительности неприменимы, поскольку они зависят от вашей собственной конфигурации. Получить через REST APIИспользуйте API Dynatrace, чтобы вставить RUM JavaScript с помощью скриптов сборки. Использовать ручную вставку для групп процессовЕсли ваши группы процессов оснащены ЕдиныйАгент и для вашей технологии поддерживается автоматическое внедрение, вы все равно можете вставить RUM JavaScript вручную, если хотите. Чтобы подавить автоматическую инъекцию и вручную вставить RUM JavaScript
Если вы не уверены, работает ли Real User Monitoring для вашей среды, или если у вас возникли проблемы с настройкой, ознакомьтесь со статьей Почему я не вижу свои приложения или данные мониторинга? . Как обеспечить своевременное обновление конфигурации для автоматической инъекции?🟢Включено по умолчанию Чтобы обеспечить своевременную доставку изменений конфигурации RUM, ЕдиныйАгент изменяет определенные заголовки кэша. Эта функция называется оптимизацией заголовка управления кешем . Когда оптимизация заголовка управления кешем включена и конфигурация RUM изменена, запросы, которые в противном случае привели бы к ответу Измененные заголовкиЕдиныйАгент изменяет следующие заголовки ответов и запросов: Заголовки ответа
Заголовки запроса
1 Не изменено для запросов диапазона, которые обычно исключаются из мониторинга RUM. ЕдиныйАгент не изменяет заголовки Вот как ЕдиныйАгент изменяет заголовки управления кешем. При изменении конфигурации RUM
Когда конфигурация RUM не изменена
Если приложение состоит из нескольких инструментированных уровней, изменения заголовков Оптимизация заголовка кеша для ресурсов, отличных от HTMLИногда ЕдиныйАгент изменяет заголовки элементов управления кэшем не-HTML-ресурсов. Это происходит потому, что изменение заголовка происходит до того, как становится известен точный тип содержимого. Dynatrace исключает определенные ресурсы из оптимизации заголовка кэша на основе суффикса URI, но невозможно охватить все ресурсы, отличные от HTML. Чтобы исключить ресурсы, отличные от HTML, из оптимизации заголовка кэша, создайте собственное правило внедрения , чтобы отключить внедрение RUM JavaScript. Исправление проблемВ редких случаях оптимизация заголовка кэша может ухудшить функциональность вашего приложения. В этом случае либо отключите оптимизацию заголовка кэша, либо, если проблема касается только ресурсов, отличных от HTML, создайте пользовательское правило внедрения , чтобы отключить внедрение RUM JavaScript для этих ресурсов. Чтобы отключить оптимизацию заголовка управления кешем
Если вы отключите эту функцию для одного из ваших приложений, время, необходимое для развертывания новой конфигурации RUM, будет зависеть исключительно от режима кэширования вашего приложения. |