Настройка мониторинга реальных пользователей без использования агентов: различия между версиями
(Новая страница: «Система мониторинга реальных пользователей без агентов предназначена для использовани...») |
|||
| Строка 10: | Строка 10: | ||
* '''CDN''' для предоставления '''JavaScript'''-кода RUM, чтобы предотвратить проблемы с производительностью веб-страниц во время планового технического обслуживания управляемого сервера Ключ-АСТРОМ или сбоев в локальной сети. | * '''CDN''' для предоставления '''JavaScript'''-кода RUM, чтобы предотвратить проблемы с производительностью веб-страниц во время планового технического обслуживания управляемого сервера Ключ-АСТРОМ или сбоев в локальной сети. | ||
== Настройка мониторинга без агентов == | |||
Для настройки мониторинга без агентов выполните действия ниже. | |||
=== Настройка URL-адреса АктивногоШлюза кластера === | |||
# Установите [[Установка кластерного АктивногоШлюза|кластерный АктивныйШлюз]]. | |||
# Перейдите в '''Настройки > Общедоступные конечные точки'''. | |||
# В поле «'''URL-адрес кластера АктивногоШлюза»''' введите URL-адрес, по которому можно получить доступ к вашему новому АктивномуШлюзу. | |||
<u>URL-адрес должен быть общедоступным и принимать HTTPS-запросы.</u> | |||
Этот URL-адрес используется для отправки данных мониторинга реальных пользователей в ваш управляемый кластер Ключ-АСТРОМ. | |||
{| class="wikitable" | |||
|По умолчанию кластерный Ключ-АСТРОМ использует порт <code>9999</code>. Если это не требуется, можно изменить порт в конфигурации АктивногоШлюза. В качестве альтернативы можно использовать любой порт по вашему выбору, а затем перенаправить трафик на порт <code>9999</code> с помощью настроек брандмауэра. | |||
|} | |||
=== Создайте приложение и вставьте JavaScript-код RUM === | |||
# Перейдите в раздел '''Развертывание Ключ-АСТРОМ'''. | |||
# Выберите '''Настроить мониторинг без агентов'''. | |||
# Введите название вашего приложения и выберите '''Добавить веб-приложение'''. Для вашего приложения будет сгенерирован пользовательский фрагмент кода '''JavaScript'''. | |||
# Выберите '''Скопировать фрагмент кода''', чтобы скопировать сгенерированный '''JavaScript'''-код в буфер обмена. Код, сгенерированный после создания приложения, имеет формат тега '''JavaScript'''. <br /> Ключ-АСТРОМ предлагает несколько форматов фрагментов кода '''JavaScript''' для RUM. Если вы рассматриваете возможность использования другого формата фрагмента, обратитесь к следующему шагу за инструкциями. | |||
# Вставьте фрагмент кода '''JavaScript''' в элемент <code><head></code> всех HTML-страниц, которые вы хотите отслеживать в своем приложении. Убедитесь, что '''JavaScript'''-скрипт RUM является первым исполняемым скриптом на каждой странице. <br /> На многих веб-сайтах можно добавить пользовательский '''JavaScript''' на все страницы одновременно, вставив код для повторного использования в централизованный файл <code>header.html</code>. По возможности используйте этот файл для вставки '''JavaScript''' RUM, чтобы избежать лишней работы. | |||
В следующем примере показан код простой страницы до и после вставки '''JavaScript'''-кода RUM. | |||
{| class="wikitable" | |||
!Перед внедрением | |||
!После внедрения | |||
|- | |||
|<html> | |||
<head> | |||
<title>MyApp</title> | |||
<script type="text/javascript" src="myapp.js"></script> | |||
</head> | |||
<body> | |||
<form> | |||
Username: <nowiki><input type="text name="username"/></nowiki><nowiki><br/></nowiki> | |||
Password: <nowiki><input type="password" name="password"/></nowiki><nowiki><br/></nowiki> | |||
<input type="submit" value="Login"> | |||
</form> | |||
|<html> | |||
<head> | |||
<title>MyApp</title> | |||
<script type="text/javascript" src="https://js-cdn.astromkey.com/jstag/145e12d594f/cg36988wxq/477g8ec68708x5c1_complete.js" crossorigin="anonymous"></script> | |||
<script type="text/javascript" src="myapp.js"></script> | |||
</head> | |||
<body> | |||
<form> | |||
Username: <nowiki><input type="text name="username"/></nowiki><nowiki><br/></nowiki> | |||
Password: <nowiki><input type="password" name="password"/></nowiki><nowiki><br/></nowiki> | |||
<input type="submit" value="Login"> | |||
</form> | |||
|} | |||
Если у вас уже есть приложение, настроенное для мониторинга без агентов, выберите «'''Приложения, настроенные для мониторинга без агентов'''» на шаге 3 приведенных выше инструкций вместо ввода названия вашего приложения. Затем вы сможете просмотреть список приложений, уже настроенных для мониторинга без агентов, и соответствующие им теги '''JavaScript''', коды или фрагменты кода. Это полезно, если вы уже добавили '''JavaScript''' RUM на некоторые из ваших страниц и хотите расширить возможности мониторинга на другие страницы. | |||
=== Выберите другой формат фрагмента кода JavaScript для RUM (необязательно) === | |||
Хоть формат тегов '''JavaScript''' и является идеальным выбором для большинства случаев использования, Ключ-АСТРОМ предлагает несколько форматов фрагментов кода '''JavaScript''' RUM для удовлетворения различных требований. Выберите формат, который лучше всего подходит для вашего приложения и отвечает вашим требованиям. Подробное описание всех форматов см. в разделе [[Выбор формата фрагмента|Выбор формата фрагмента кода]]. | |||
Чтобы получить другой формат фрагмента кода '''JavaScript''' RUM | |||
# Перейдите в '''Веб-приложения'''. | |||
# Выберите приложение, которое хотите настроить. | |||
# В правом верхнем углу страницы обзора приложения выберите '''Дополнительно ( … ) > Редактировать'''. | |||
# В настройках приложения выберите '''Внедрение > Внедрение вручную'''. | |||
# Выберите необходимый формат фрагмента текста, затем нажмите '''Копировать''', чтобы скопировать его в буфер обмена. | |||
=== Поддержка RUM JavaScript в актуальном состоянии === | |||
Если вы хотите, чтобы '''JavaScript'''-код RUM обновлялся автоматически, выберите формат фрагмента кода '''JavaScript'''. Для других форматов фрагментов кода вам потребуется обновить '''JavaScript'''-код RUM вручную. | |||
Ключ-АСТРОМ предлагает '''REST API,''' позволяющий получать последнюю версию '''JavaScript'''-кода RUM для вашего приложения. Вы можете автоматически внедрять последнюю версию '''JavaScript'''-кода RUM во время сборки вашего приложения. | |||
=== Подготовьте свой кластер к работе === | |||
==== Балансировка нагрузки для нескольких АктивныхШлюзов ==== | |||
Для мониторинга производственной среды с высокой нагрузкой и строгими требованиями к отказоустойчивости используйте несколько кластерных АктивныхШлюзов с балансировкой нагрузки и добавьте кэширующий прокси или CDN для обслуживания JavaScript-кода RUM. | |||
Если вы выберете этот подход, укажите URL-адрес балансировщика нагрузки и URL-адрес CDN в настройках. | |||
# Перейдите в '''Настройки > Общедоступные конечные точки'''. | |||
# В поле '''URL-адрес АктивногоШлюза кластера''' введите URL-адрес вашего балансировщика нагрузки. | |||
# В поле '''CDN для JavaScript''' введите URL-адрес вашей CDN-сети. | |||
Запросы, которые ваш балансировщик нагрузки перенаправляет в кластер АктивныхШлюзов, выглядят следующим образом. | |||
<code>GET</code> и <code>POST</code> запросы на передачу информации о сеансе в Ключ-АСТРОМ Managed: | |||
{| class="wikitable" | |||
|<nowiki><http|https>://<ClusterActiveGateHostname>/bf/<EnvironmentID>?<internalQueryParameters></nowiki> | |||
|} | |||
<code>GET</code> запросы к JavaScript для RUM: | |||
{| class="wikitable" | |||
|http[s]://<ClusterActiveGateHostname>/jstag/<ManagedClusterID>/<EnvironmentID>/<InternalApplicationID>/bs.js | |||
http[s]://<ClusterActiveGateHostname>/jstag/<ManagedClusterID>/ruxitagent<configInfo>_<version>.js | |||
|} | |||
Обязательно настройте балансировщик нагрузки так, чтобы он устанавливал заголовок <code>X-Forwarded-For</code> для всех переадресованных запросов. Этот заголовок содержит IP-адрес исходного запроса. Ключ-АСТРОМ необходима эта информация для определения источника запроса. | |||
Ваш балансировщик нагрузки должен завершать SSL-соединение, поскольку это очень ресурсоемкий процесс на кластерном АктивномШлюзе. Для повышения производительности и если это позволяют ограничения безопасности, трафик можно перенаправлять по обычному HTTP-протоколу с балансировщика нагрузки на кластерный АктивныйШлюз. | |||
==== Кэширование JavaScript RUM ==== | |||
Для поддержки сценариев с высокой нагрузкой при использовании балансировщика нагрузки мы рекомендуем кэшировать '''JavaScript'''-код RUM, загружаемый из кластерного АктивногоШлюза, с помощью кэширующего прокси или '''CDN'''. | |||
'''CDN''' или кэширующий прокси должны перенаправлять все запросы на соответствующий адрес <code><cdnurl>/jstag/</code>, чтобы быть готовыми к изменениям и обновлениям конфигурации <code>http[s]://<ActiveGateHostname>/jstag/</code>. Поскольку существует несколько форматов фрагментов кода '''JavaScript''' для RUM, URL-адреса могут меняться в зависимости от настроек приложения. | |||
'''CDN''' или кэширующий прокси должны соблюдать политику кэширования, определенную заголовками ответа, которая различается для разных форматов фрагментов. В частности, ответы содержат заголовок <code>Cache-Control</code>, который может указывать такие директивы, как <code>max-age</code>, <code>s-maxage</code>, <code>public</code> и <code>immutable</code>. Кроме того, <code>Expires</code> в качестве резервного варианта включается еще один заголовок. | |||
==== Размещение JavaScript-кода RUM через CDN ==== | |||
Когда '''JavaScript'''-код RUM загружается с вашей '''CDN''', запросы <code>GET</code> к JavaScript-коду RUM направляются на вашу CDN. | |||
Чтобы запускать '''JavaScript'''-код RUM с вашего '''CDN''' | |||
# Перейдите в '''Настройки > Общедоступные конечные точки'''. | |||
# В разделе '''CDN для JavaScript''' укажите корневой путь вашего CDN. | |||
== Рекомендации == | |||
=== Рекомендуется установка ЕдиногоАгента === | |||
Установка Ключ-АСТРОМ ЕдиногоАгента предпочтительнее мониторинга без агентов по следующим причинам: | |||
* При использовании мониторинга без агентов вам приходится вручную вставлять '''JavaScript'''-код RUM на каждую страницу вашего приложения, что может быть непросто. Ключ-АСТРОМ ЕдиныйАгент берет на себя эту задачу. | |||
* Если вы не используете формат фрагментов кода '''JavaScript''' для мониторинга без агентов, встроенный в страницы вашего приложения '''JavaScript'''-код RUM не обновляется автоматически при изменении настроек мониторинга приложения. Вам придется обновлять код вручную. | |||
Список технологий и серверов, поддерживающих автоматическое внедрение '''JavaScript''' в рамках мониторинга реальных пользователей (RUM), см. в разделе [[Поддержка технологий|Техническая поддержка — Мониторинг реальных пользователей — Веб-серверы и приложения]]. | |||
{| class="wikitable" | |||
|Для некоторых технологий автоматическая внедрение '''JavaScript'''-кода RUM не поддерживается, даже если вы можете установить ЕдиныйАгент. Например, хоть ЕдиныйАгент и может отслеживать серверную часть приложения '''Heroku''', он не может внедрять '''JavaScript'''-код RUM на страницы приложения. В этом случае добавьте '''JavaScript'''-код RUM на страницы вашего приложения вручную. | |||
|} | |||
=== Влияние на производительность === | |||
Чтобы минимизировать влияние '''JavaScript'''-кода RUM на время загрузки страницы, возможно, стоит загружать скрипты как можно позже. Используйте блокирующие теги <code><script></code>, чтобы гарантировать выполнение '''JavaScript'''-кода RUM именно там, где вы его разместили. Если вам нужно, чтобы скрипт выполнился как можно раньше, его выполнение нельзя отложить. | |||
Один из способов избежать дополнительных блокирующих запросов во время загрузки страницы — это встроить код скрипта. Код скрипта необходимо встроить в каждый документ, тем самым передавая данные из одного кэшированного файла на каждую страницу вашего приложения. Объединив оба этих подхода, вы получите встроенный фрагмент '''JavaScript''', который выполняет необходимую инициализацию и откладывает загрузку громоздкого кода на второй скрипт. | |||
=== Техническое обслуживание === | |||
Мониторинг без агентов требует самостоятельной вставки '''JavaScript'''-кода RUM, поэтому убедитесь, что это требует как можно меньше ручных усилий. Если вы не хотите менять свой код каждый раз, когда меняются настройки мониторинга приложения или когда выходит новая версия '''JavaScript'''-кода RUM, выберите формат фрагмента кода с тегами '''JavaScript'''. | |||
=== Стандарты и политики безопасности === | |||
Некоторые стандарты разработки, созданные для повышения безопасности и скорости приложений, также вводят новые ограничения. | |||
Например, стандарт [https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CSP Content Security Policy (CSP)], введенный для минимизации вероятности стать жертвой межсайтового скриптинга, запрещает встроенный код '''JavaScript'''. Это означает, что вам может потребоваться использовать формат фрагментов кода '''JavaScript''' из стандарта RUM '''JavaScript'''. | |||
=== Действия пользователя для распределенной корреляции трассировки === | |||
В случае безагентного мониторинга возможность связывать действия пользователей и распределенные трассировки зависит от технологий, используемых вашим приложением. | |||
* Если ваше приложение использует ЕдиныйАгент, но технология мониторинга реальных пользователей для него не поддерживается, то распределенные трассировки, полученные с помощью этого ЕдиногоАгента, не могут быть связаны с действиями пользователей. | |||
* Если ваше приложение отправляет '''XHR'''-запросы к '''AWS Lambda''' или к другому инструментированному веб-серверу или серверу приложений, использующему поддерживаемые технологии, то можно связать действия пользователей и распределенные трассировки. Однако эти веб-запросы обычно являются междоменными, поэтому для корреляции действий пользователей с распределенными трассировками требуется дополнительная настройка. | |||
=== Использование менеджер тегов === | |||
Мы рекомендуем убедиться, что '''JavaScript'''-скрипт RUM является первым исполняемым скриптом на каждой странице, что может быть непросто при использовании менеджера тегов. Если вы не можете этого гарантировать, вы можете потерять информацию, например, определенные временные параметры или действия пользователя, которые доступны только после полной загрузки и инициализации кода мониторинга RUM и конфигурации. | |||
Этот риск возрастает, если вы используете фрагмент кода в отложенном режиме или если вы настроите параметр выполнения скрипта для тега '''JavaScript''' тега '''JavaScript''' ЕдиногоАгента или тега '''JavaScript''' ЕдиногоАгента с SRI на асинхронный или отложенный режим. | |||
== Проверка настройки мониторинга без агентов == | |||
Для выяснения проблем, которые могут возникнуть при использовании безагентного мониторинга реальных пользователей, подтвердите следующее: | |||
* На страницах, подлежащих мониторингу, содержится '''JavaScript'''-код RUM. | |||
* '''JavaScript'''-код RUM корректно загружается браузером (при условии, что вы не используете встроенное внедрение). <br />Используйте инструменты разработчика браузера, чтобы проверить, соответствует ли ответ на '''JavaScript'''-код RUM заданному значению <code>200</code> и содержит ли тело ответа '''JavaScript'''-код RUM. | |||
* Получение и вставка '''JavaScript'''-кода RUM осуществляется только после полной настройки общедоступной конечной точки, например, балансировщика нагрузки. Это гарантирует корректную настройку общедоступной конечной точки в '''JavaScript'''-коде RUM. | |||
* Ответ конечной точки маяка начинается с <code>OK(BF)</code>. | |||
* Приложение в веб-интерфейсе Ключ-АСТРОМ отображает данные. | |||
Текущая версия на 17:55, 23 марта 2026
Система мониторинга реальных пользователей без агентов предназначена для использования в тех случаях, когда у вас нет доступа к веб-серверу (и, следовательно, вы не можете установить ЕдиныйАгент), но есть доступ к коду вашего приложения.
Все преимущества мониторинга реальных пользователей можно получить только после установки Ключ-АСТРОМ ЕдиныйАгент. Дополнительную информацию см. в разделе Рекомендуется установка ЕдиногоАгента (ниже).
Предварительные требования
Вот что вам понадобится для настройки мониторинга реальных пользователей без использования агентов:
- Получите доступ к исходному HTML-коду вашего приложения, чтобы вставить JavaScript-код RUM.
- RUM JavaScript — пользовательский тег, код или фрагмент кода JavaScript, сгенерированный Ключ-АСТРОМ.
- CDN для предоставления JavaScript-кода RUM, чтобы предотвратить проблемы с производительностью веб-страниц во время планового технического обслуживания управляемого сервера Ключ-АСТРОМ или сбоев в локальной сети.
Настройка мониторинга без агентов
Для настройки мониторинга без агентов выполните действия ниже.
Настройка URL-адреса АктивногоШлюза кластера
- Установите кластерный АктивныйШлюз.
- Перейдите в Настройки > Общедоступные конечные точки.
- В поле «URL-адрес кластера АктивногоШлюза» введите URL-адрес, по которому можно получить доступ к вашему новому АктивномуШлюзу.
URL-адрес должен быть общедоступным и принимать HTTPS-запросы.
Этот URL-адрес используется для отправки данных мониторинга реальных пользователей в ваш управляемый кластер Ключ-АСТРОМ.
По умолчанию кластерный Ключ-АСТРОМ использует порт 9999. Если это не требуется, можно изменить порт в конфигурации АктивногоШлюза. В качестве альтернативы можно использовать любой порт по вашему выбору, а затем перенаправить трафик на порт 9999 с помощью настроек брандмауэра.
|
Создайте приложение и вставьте JavaScript-код RUM
- Перейдите в раздел Развертывание Ключ-АСТРОМ.
- Выберите Настроить мониторинг без агентов.
- Введите название вашего приложения и выберите Добавить веб-приложение. Для вашего приложения будет сгенерирован пользовательский фрагмент кода JavaScript.
- Выберите Скопировать фрагмент кода, чтобы скопировать сгенерированный JavaScript-код в буфер обмена. Код, сгенерированный после создания приложения, имеет формат тега JavaScript.
Ключ-АСТРОМ предлагает несколько форматов фрагментов кода JavaScript для RUM. Если вы рассматриваете возможность использования другого формата фрагмента, обратитесь к следующему шагу за инструкциями. - Вставьте фрагмент кода JavaScript в элемент
<head>всех HTML-страниц, которые вы хотите отслеживать в своем приложении. Убедитесь, что JavaScript-скрипт RUM является первым исполняемым скриптом на каждой странице.
На многих веб-сайтах можно добавить пользовательский JavaScript на все страницы одновременно, вставив код для повторного использования в централизованный файлheader.html. По возможности используйте этот файл для вставки JavaScript RUM, чтобы избежать лишней работы.
В следующем примере показан код простой страницы до и после вставки JavaScript-кода RUM.
| Перед внедрением | После внедрения |
|---|---|
| <html>
<head> <title>MyApp</title> <script type="text/javascript" src="myapp.js"></script> </head> <body> <form> Username: <input type="text name="username"/><br/> Password: <input type="password" name="password"/><br/> <input type="submit" value="Login"> </form> |
<html>
<head> <title>MyApp</title> <script type="text/javascript" src="https://js-cdn.astromkey.com/jstag/145e12d594f/cg36988wxq/477g8ec68708x5c1_complete.js" crossorigin="anonymous"></script> <script type="text/javascript" src="myapp.js"></script> </head> <body> <form> Username: <input type="text name="username"/><br/> Password: <input type="password" name="password"/><br/> <input type="submit" value="Login"> </form> |
Если у вас уже есть приложение, настроенное для мониторинга без агентов, выберите «Приложения, настроенные для мониторинга без агентов» на шаге 3 приведенных выше инструкций вместо ввода названия вашего приложения. Затем вы сможете просмотреть список приложений, уже настроенных для мониторинга без агентов, и соответствующие им теги JavaScript, коды или фрагменты кода. Это полезно, если вы уже добавили JavaScript RUM на некоторые из ваших страниц и хотите расширить возможности мониторинга на другие страницы.
Выберите другой формат фрагмента кода JavaScript для RUM (необязательно)
Хоть формат тегов JavaScript и является идеальным выбором для большинства случаев использования, Ключ-АСТРОМ предлагает несколько форматов фрагментов кода JavaScript RUM для удовлетворения различных требований. Выберите формат, который лучше всего подходит для вашего приложения и отвечает вашим требованиям. Подробное описание всех форматов см. в разделе Выбор формата фрагмента кода.
Чтобы получить другой формат фрагмента кода JavaScript RUM
- Перейдите в Веб-приложения.
- Выберите приложение, которое хотите настроить.
- В правом верхнем углу страницы обзора приложения выберите Дополнительно ( … ) > Редактировать.
- В настройках приложения выберите Внедрение > Внедрение вручную.
- Выберите необходимый формат фрагмента текста, затем нажмите Копировать, чтобы скопировать его в буфер обмена.
Поддержка RUM JavaScript в актуальном состоянии
Если вы хотите, чтобы JavaScript-код RUM обновлялся автоматически, выберите формат фрагмента кода JavaScript. Для других форматов фрагментов кода вам потребуется обновить JavaScript-код RUM вручную.
Ключ-АСТРОМ предлагает REST API, позволяющий получать последнюю версию JavaScript-кода RUM для вашего приложения. Вы можете автоматически внедрять последнюю версию JavaScript-кода RUM во время сборки вашего приложения.
Подготовьте свой кластер к работе
Балансировка нагрузки для нескольких АктивныхШлюзов
Для мониторинга производственной среды с высокой нагрузкой и строгими требованиями к отказоустойчивости используйте несколько кластерных АктивныхШлюзов с балансировкой нагрузки и добавьте кэширующий прокси или CDN для обслуживания JavaScript-кода RUM.
Если вы выберете этот подход, укажите URL-адрес балансировщика нагрузки и URL-адрес CDN в настройках.
- Перейдите в Настройки > Общедоступные конечные точки.
- В поле URL-адрес АктивногоШлюза кластера введите URL-адрес вашего балансировщика нагрузки.
- В поле CDN для JavaScript введите URL-адрес вашей CDN-сети.
Запросы, которые ваш балансировщик нагрузки перенаправляет в кластер АктивныхШлюзов, выглядят следующим образом.
GET и POST запросы на передачу информации о сеансе в Ключ-АСТРОМ Managed:
| <http|https>://<ClusterActiveGateHostname>/bf/<EnvironmentID>?<internalQueryParameters> |
GET запросы к JavaScript для RUM:
| http[s]://<ClusterActiveGateHostname>/jstag/<ManagedClusterID>/<EnvironmentID>/<InternalApplicationID>/bs.js
http[s]://<ClusterActiveGateHostname>/jstag/<ManagedClusterID>/ruxitagent<configInfo>_<version>.js |
Обязательно настройте балансировщик нагрузки так, чтобы он устанавливал заголовок X-Forwarded-For для всех переадресованных запросов. Этот заголовок содержит IP-адрес исходного запроса. Ключ-АСТРОМ необходима эта информация для определения источника запроса.
Ваш балансировщик нагрузки должен завершать SSL-соединение, поскольку это очень ресурсоемкий процесс на кластерном АктивномШлюзе. Для повышения производительности и если это позволяют ограничения безопасности, трафик можно перенаправлять по обычному HTTP-протоколу с балансировщика нагрузки на кластерный АктивныйШлюз.
Кэширование JavaScript RUM
Для поддержки сценариев с высокой нагрузкой при использовании балансировщика нагрузки мы рекомендуем кэшировать JavaScript-код RUM, загружаемый из кластерного АктивногоШлюза, с помощью кэширующего прокси или CDN.
CDN или кэширующий прокси должны перенаправлять все запросы на соответствующий адрес <cdnurl>/jstag/, чтобы быть готовыми к изменениям и обновлениям конфигурации http[s]://<ActiveGateHostname>/jstag/. Поскольку существует несколько форматов фрагментов кода JavaScript для RUM, URL-адреса могут меняться в зависимости от настроек приложения.
CDN или кэширующий прокси должны соблюдать политику кэширования, определенную заголовками ответа, которая различается для разных форматов фрагментов. В частности, ответы содержат заголовок Cache-Control, который может указывать такие директивы, как max-age, s-maxage, public и immutable. Кроме того, Expires в качестве резервного варианта включается еще один заголовок.
Размещение JavaScript-кода RUM через CDN
Когда JavaScript-код RUM загружается с вашей CDN, запросы GET к JavaScript-коду RUM направляются на вашу CDN.
Чтобы запускать JavaScript-код RUM с вашего CDN
- Перейдите в Настройки > Общедоступные конечные точки.
- В разделе CDN для JavaScript укажите корневой путь вашего CDN.
Рекомендации
Рекомендуется установка ЕдиногоАгента
Установка Ключ-АСТРОМ ЕдиногоАгента предпочтительнее мониторинга без агентов по следующим причинам:
- При использовании мониторинга без агентов вам приходится вручную вставлять JavaScript-код RUM на каждую страницу вашего приложения, что может быть непросто. Ключ-АСТРОМ ЕдиныйАгент берет на себя эту задачу.
- Если вы не используете формат фрагментов кода JavaScript для мониторинга без агентов, встроенный в страницы вашего приложения JavaScript-код RUM не обновляется автоматически при изменении настроек мониторинга приложения. Вам придется обновлять код вручную.
Список технологий и серверов, поддерживающих автоматическое внедрение JavaScript в рамках мониторинга реальных пользователей (RUM), см. в разделе Техническая поддержка — Мониторинг реальных пользователей — Веб-серверы и приложения.
| Для некоторых технологий автоматическая внедрение JavaScript-кода RUM не поддерживается, даже если вы можете установить ЕдиныйАгент. Например, хоть ЕдиныйАгент и может отслеживать серверную часть приложения Heroku, он не может внедрять JavaScript-код RUM на страницы приложения. В этом случае добавьте JavaScript-код RUM на страницы вашего приложения вручную. |
Влияние на производительность
Чтобы минимизировать влияние JavaScript-кода RUM на время загрузки страницы, возможно, стоит загружать скрипты как можно позже. Используйте блокирующие теги <script>, чтобы гарантировать выполнение JavaScript-кода RUM именно там, где вы его разместили. Если вам нужно, чтобы скрипт выполнился как можно раньше, его выполнение нельзя отложить.
Один из способов избежать дополнительных блокирующих запросов во время загрузки страницы — это встроить код скрипта. Код скрипта необходимо встроить в каждый документ, тем самым передавая данные из одного кэшированного файла на каждую страницу вашего приложения. Объединив оба этих подхода, вы получите встроенный фрагмент JavaScript, который выполняет необходимую инициализацию и откладывает загрузку громоздкого кода на второй скрипт.
Техническое обслуживание
Мониторинг без агентов требует самостоятельной вставки JavaScript-кода RUM, поэтому убедитесь, что это требует как можно меньше ручных усилий. Если вы не хотите менять свой код каждый раз, когда меняются настройки мониторинга приложения или когда выходит новая версия JavaScript-кода RUM, выберите формат фрагмента кода с тегами JavaScript.
Стандарты и политики безопасности
Некоторые стандарты разработки, созданные для повышения безопасности и скорости приложений, также вводят новые ограничения.
Например, стандарт Content Security Policy (CSP), введенный для минимизации вероятности стать жертвой межсайтового скриптинга, запрещает встроенный код JavaScript. Это означает, что вам может потребоваться использовать формат фрагментов кода JavaScript из стандарта RUM JavaScript.
Действия пользователя для распределенной корреляции трассировки
В случае безагентного мониторинга возможность связывать действия пользователей и распределенные трассировки зависит от технологий, используемых вашим приложением.
- Если ваше приложение использует ЕдиныйАгент, но технология мониторинга реальных пользователей для него не поддерживается, то распределенные трассировки, полученные с помощью этого ЕдиногоАгента, не могут быть связаны с действиями пользователей.
- Если ваше приложение отправляет XHR-запросы к AWS Lambda или к другому инструментированному веб-серверу или серверу приложений, использующему поддерживаемые технологии, то можно связать действия пользователей и распределенные трассировки. Однако эти веб-запросы обычно являются междоменными, поэтому для корреляции действий пользователей с распределенными трассировками требуется дополнительная настройка.
Использование менеджер тегов
Мы рекомендуем убедиться, что JavaScript-скрипт RUM является первым исполняемым скриптом на каждой странице, что может быть непросто при использовании менеджера тегов. Если вы не можете этого гарантировать, вы можете потерять информацию, например, определенные временные параметры или действия пользователя, которые доступны только после полной загрузки и инициализации кода мониторинга RUM и конфигурации.
Этот риск возрастает, если вы используете фрагмент кода в отложенном режиме или если вы настроите параметр выполнения скрипта для тега JavaScript тега JavaScript ЕдиногоАгента или тега JavaScript ЕдиногоАгента с SRI на асинхронный или отложенный режим.
Проверка настройки мониторинга без агентов
Для выяснения проблем, которые могут возникнуть при использовании безагентного мониторинга реальных пользователей, подтвердите следующее:
- На страницах, подлежащих мониторингу, содержится JavaScript-код RUM.
- JavaScript-код RUM корректно загружается браузером (при условии, что вы не используете встроенное внедрение).
Используйте инструменты разработчика браузера, чтобы проверить, соответствует ли ответ на JavaScript-код RUM заданному значению200и содержит ли тело ответа JavaScript-код RUM.
- Получение и вставка JavaScript-кода RUM осуществляется только после полной настройки общедоступной конечной точки, например, балансировщика нагрузки. Это гарантирует корректную настройку общедоступной конечной точки в JavaScript-коде RUM.
- Ответ конечной точки маяка начинается с
OK(BF). - Приложение в веб-интерфейсе Ключ-АСТРОМ отображает данные.