Настройка экспорта сеанса пользователя: различия между версиями
ENetrebin (обсуждение | вклад) |
ENetrebin (обсуждение | вклад) |
||
(не показаны 3 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
'''''[[Применение Ключ-АСТРОМ]] / [[Применение Ключ-АСТРОМ#.D0.9C.D0.BE.D0.BD.D0.B8.D1.82.D0.BE.D1.80.D0.B8.D0.BD.D0.B3%20.D1.80.D0.B5.D0.B0.D0.BB.D1.8C.D0.BD.D0.BE.D0.B3.D0.BE%20.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D1.82.D0.B5.D0.BB.D1.8F|Мониторинг реального пользователя]] / Установка и конфигурация / Веб приложения / Дополнительная конфигурация / Настройка экспорта сеанса пользователя''''' | |||
Ключ-АСТРОМ может постоянно отправлять данные сеанса пользователя на указанную конечную точку веб-перехватчика. | |||
Чтобы начать получать данные о сеансе пользователя, вам необходимо настроить конечную точку, а затем настроить экспорт сеанса через веб-интерфейс | Чтобы начать получать данные о сеансе пользователя, вам необходимо настроить конечную точку, а затем настроить экспорт сеанса через веб-интерфейс Ключ-АСТРОМ или через API настроек . | ||
Ключ-АСТРОМ массово отправляет данные о завершенных пользовательских сеансах на все определенные конечные точки с сбросом каждые несколько секунд для экспорта данных, как только пользовательский сеанс помечен как завершенный. Передача данных происходит, как только выполняется одно из следующих условий: | |||
* Завершено 1000 сеансов пользователей | * Завершено 1000 сеансов пользователей | ||
Строка 11: | Строка 12: | ||
* Ни один пользовательский сеанс не завершился за последние 30 секунд. | * Ни один пользовательский сеанс не завершился за последние 30 секунд. | ||
Чтобы предотвратить перегрузку системы, | Чтобы предотвратить перегрузку системы, Ключ-АСТРОМ отменяет запрос, если ваша конечная точка не отвечает в течение 30 секунд. Ключ-АСТРОМ повторяет попытку еще три раза, прежде чем, наконец, отклонит запрос и отправит предупреждение с сообщением об ошибке тайм- аута запроса . | ||
== Определите свою конечную точку == | == Определите свою конечную точку == | ||
Сервер, предоставляющий веб-перехватчик, должен прослушивать <code>PUT</code>или <code>POST</code>запрашивать URL-адрес, указанный как часть конфигурации экспорта сеанса. Кроме того, из соображений безопасности | Сервер, предоставляющий веб-перехватчик, должен прослушивать <code>PUT</code>или <code>POST</code>запрашивать URL-адрес, указанный как часть конфигурации экспорта сеанса. Кроме того, из соображений безопасности Ключ-АСТРОМ разрешает использовать только конечные точки HTTPS. | ||
* Метод HTTP : <code>PUT</code>или<code>POST</code> | * Метод HTTP : <code>PUT</code>или<code>POST</code> | ||
Строка 35: | Строка 36: | ||
// split the bulk into single documents | // split the bulk into single documents | ||
final String[] lines = StringUtils.split(data, '\n'); | final String[] lines = StringUtils.split(data, '\n'); | ||
for(String | for(String lineS: lines) { | ||
... | ... | ||
// handle the JSON-data | // handle the JSON-data | ||
Строка 41: | Строка 42: | ||
return JResponse.ok("") | return JResponse.ok("") | ||
.header(HttpHeaders.SERVER, "Endpoint for | .header(HttpHeaders.SERVER, "Endpoint for Astromkey session data export") | ||
.build(); | .build(); | ||
} | } | ||
Строка 47: | Строка 48: | ||
== Настройте экспорт сеанса через веб-интерфейс == | == Настройте экспорт сеанса через веб-интерфейс == | ||
Чтобы настроить экспорт сеанса пользователя через веб-интерфейс | Чтобы настроить экспорт сеанса пользователя через веб-интерфейс Ключ-АСТРОМ | ||
# В меню | # В меню Ключ-АСТРОМ выберите « Настройки » > « Интеграция » > « Экспорт сеансов пользователей » . | ||
# Выберите Добавить элемент . | # Выберите Добавить элемент . | ||
# Укажите URL-адрес конечной точки и включите параметр Включить экспорт сеанса пользователя, если вы готовы начать получать данные сеанса пользователя. Из соображений безопасности | # Укажите URL-адрес конечной точки и включите параметр Включить экспорт сеанса пользователя, если вы готовы начать получать данные сеанса пользователя. Из соображений безопасности Ключ-АСТРОМ разрешает использовать только конечные точки HTTPS. | ||
# Установите Тип содержимого на <code>application/json</code>или <code>application/x-ndjson</code>. При отправке данных сеанса в Elasticsearch установите для него значение <code>application/x-ndjson</code>. | # Установите Тип содержимого на <code>application/json</code>или <code>application/x-ndjson</code>. При отправке данных сеанса в Elasticsearch установите для него значение <code>application/x-ndjson</code>. | ||
# Включите Использовать метод POST (вместо PUT) при отправке данных сеанса в Elasticsearch или при настройке конечной точки для приема <code>POST</code>запросов. | # Включите Использовать метод POST (вместо PUT) при отправке данных сеанса в Elasticsearch или при настройке конечной точки для приема <code>POST</code>запросов. | ||
Строка 61: | Строка 62: | ||
=== Настроить аутентификацию === | === Настроить аутентификацию === | ||
Ключ-АСТРОМ может отправлять данные сеанса пользователя, используя либо обычную аутентификацию, либо аутентификацию OAuth 2.0. Эти типы аутентификации позволяют защитить ваши конечные точки. | |||
Когда вы активируете аутентификацию для конфигурации экспорта сеанса, проверьте конфигурацию перед ее сохранением. | Когда вы активируете аутентификацию для конфигурации экспорта сеанса, проверьте конфигурацию перед ее сохранением. | ||
Строка 89: | Строка 90: | ||
Дополнительная информация об аутентификации OAuth 2.0 | Дополнительная информация об аутентификации OAuth 2.0 | ||
OAuth 2.0 предлагает различные типы предоставления, но | OAuth 2.0 предлагает различные типы предоставления, но Ключ-АСТРОМ поддерживает только тип предоставления учетных данных клиента. Для получения информации об этом типе гранта см. следующие ресурсы: | ||
* Поток учетных данных клиента | * Поток учетных данных клиента | ||
Строка 99: | Строка 100: | ||
Шаги ниже описывают, как работает аутентификация OAuth 2.0 для экспорта сеанса пользователя. | Шаги ниже описывают, как работает аутентификация OAuth 2.0 для экспорта сеанса пользователя. | ||
# | # Ключ-АСТРОМ отправляет запрос на ваш сервер авторизации для получения токена доступа. URL вашего токена доступа , идентификатор клиента , секрет клиента и область действия (необязательно) включены в запрос. | ||
<code>curl --insecure -w "\nHTTP Status: %{http_code}\n" \</code> | <code>curl --insecure -w "\nHTTP Status: %{http_code}\n" \</code> | ||
Строка 131: | Строка 132: | ||
<code>}</code> | <code>}</code> | ||
3. | 3. Ключ-АСТРОМ отправляет запрос POST на настроенный URL -адрес конечной точки . Запрос включает данные сеанса пользователя, а также токен доступа, полученный на предыдущем шаге, который передается как токен носителя в <code>Authorization</code>заголовке. | ||
<code>curl --request POST \</code> | <code>curl --request POST \</code> | ||
Строка 144: | Строка 145: | ||
Для отправки данных непосредственно в вашу установку Elasticsearch | Для отправки данных непосредственно в вашу установку Elasticsearch | ||
# Убедитесь, что ваш экземпляр Elasticsearch доступен с сервера кластера. Для развертывания | # Убедитесь, что ваш экземпляр Elasticsearch доступен с сервера кластера. Для развертывания Ключ-АСТРОМ SaaS ваш экземпляр Elasticsearch должен быть общедоступным. Вы можете использовать SSL-сертификат и базовую аутентификацию или аутентификацию OAuth 2.0 для безопасного доступа. | ||
# Убедитесь, что ваш экспортный URL-адрес имеет следующий формат: <code>https://<your_host>:9200/_bulk</code>. Замените <code><your_host></code>своим фактическим значением. | # Убедитесь, что ваш экспортный URL-адрес имеет следующий формат: <code>https://<your_host>:9200/_bulk</code>. Замените <code><your_host></code>своим фактическим значением. | ||
# На странице Экспорт сеанса пользователя разверните требуемый URL-адрес конечной точки. | # На странице Экспорт сеанса пользователя разверните требуемый URL-адрес конечной точки. | ||
Строка 151: | Строка 152: | ||
# Введите имя индекса, куда отправляются данные, и тип документов в индексе Elasticsearch . | # Введите имя индекса, куда отправляются данные, и тип документов в индексе Elasticsearch . | ||
==== Индекс | ==== Индекс Elasticsearch ==== | ||
Создайте индекс, в который вы хотите отправлять данные сеанса пользователя, и определите сопоставление для вашего индекса. Подробные сведения о том, как загрузить образец сопоставления для конфигурации экспорта сеанса, см. в разделе Загрузка образца сопоставления . | Создайте индекс, в который вы хотите отправлять данные сеанса пользователя, и определите сопоставление для вашего индекса. Подробные сведения о том, как загрузить образец сопоставления для конфигурации экспорта сеанса, см. в разделе Загрузка образца сопоставления . | ||
Строка 161: | Строка 162: | ||
Мы рекомендуем установить <code>_doc</code>тип документа независимо от версии Elasticsearch, которую вы используете. | Мы рекомендуем установить <code>_doc</code>тип документа независимо от версии Elasticsearch, которую вы используете. | ||
* | * Elasticsearch версии 6 | ||
** Укажите один тип для каждого индекса. | ** Укажите один тип для каждого индекса. | ||
** При создании индекса укажите <code>include_type_name</code>параметр строки запроса, чтобы указать, что запросы и ответы должны включать имя типа. Этот параметр по умолчанию равен <code>true</code>. Если вы не установите его, вы получите предупреждение об устаревании. Если вы не укажете какой-либо тип при создании индекса, <code>_doc</code>используется. | ** При создании индекса укажите <code>include_type_name</code>параметр строки запроса, чтобы указать, что запросы и ответы должны включать имя типа. Этот параметр по умолчанию равен <code>true</code>. Если вы не установите его, вы получите предупреждение об устаревании. Если вы не укажете какой-либо тип при создании индекса, <code>_doc</code>используется. | ||
* | * Elasticsearch версии 7 | ||
** Указание типов не рекомендуется в этой версии Elasticsearch. Параметр <code>include_type_name</code>по умолчанию равен <code>false</code>. | ** Указание типов не рекомендуется в этой версии Elasticsearch. Параметр <code>include_type_name</code>по умолчанию равен <code>false</code>. | ||
** Вы можете заставить Elasticsearch использовать имя типа, установив для параметра значение <code>true</code>, что приведет к предупреждению об устаревании. | ** Вы можете заставить Elasticsearch использовать имя типа, установив для параметра значение <code>true</code>, что приведет к предупреждению об устаревании. | ||
* | * Elasticsearch версии 8 | ||
** Указание типов больше не поддерживается. Начиная с этой версии, не указывайте тип документа. Дополнительные сведения см. в разделе Удаление типов сопоставления . | ** Указание типов больше не поддерживается. Начиная с этой версии, не указывайте тип документа. Дополнительные сведения см. в разделе Удаление типов сопоставления . | ||
Строка 177: | Строка 178: | ||
В разделе Область экспорта, предупреждения и расширенная конфигурация вашей конечной точки вы можете сузить область экспорта сеанса, отключить уведомления и настроить некоторые другие параметры экспорта сеанса. | В разделе Область экспорта, предупреждения и расширенная конфигурация вашей конечной точки вы можете сузить область экспорта сеанса, отключить уведомления и настроить некоторые другие параметры экспорта сеанса. | ||
* Объем экспорта . Чтобы определить область экспорта вашей пользовательской сессии, выберите нужную зону управления . После того, как вы настроите зону управления, | * Объем экспорта . Чтобы определить область экспорта вашей пользовательской сессии, выберите нужную зону управления . После того, как вы настроите зону управления, Ключ-АСТРОМ отправляет только те пользовательские сеансы, которые имеют хотя бы одно действие пользователя с соответствующим приложением. Ограничение экспорта сеанса только синтетическими сеансами пользователей в настоящее время невозможно. | ||
* Оповещение . Включите параметр «Отключить уведомление » , если вы не хотите получать уведомления в случае сбоя экспорта сеанса пользователя. | * Оповещение . Включите параметр «Отключить уведомление » , если вы не хотите получать уведомления в случае сбоя экспорта сеанса пользователя. | ||
* Пользовательская конфигурация . Укажите пользовательские свойства конфигурации для дальнейшей настройки конфигурации экспорта сеанса пользователя. Перед изменением этого поля обратитесь в службу поддержки | * Пользовательская конфигурация . Укажите пользовательские свойства конфигурации для дальнейшей настройки конфигурации экспорта сеанса пользователя. Перед изменением этого поля обратитесь в службу поддержки Ключ-АСТРОМ. | ||
Если у вас возникли проблемы с экспортом сеанса пользователя, обратитесь в службу поддержки | Если у вас возникли проблемы с экспортом сеанса пользователя, обратитесь в службу поддержки Ключ-АСТРОМ, прежде чем настраивать какие-либо дополнительные свойства. | ||
== Тестовый экспорт == | == Тестовый экспорт == | ||
Чтобы протестировать конфигурацию экспорта сеанса пользователя, разверните требуемый URL-адрес конечной точки на странице экспорта сеанса пользователя и выберите « Проверить экспорт» . | Чтобы протестировать конфигурацию экспорта сеанса пользователя, разверните требуемый URL-адрес конечной точки на странице экспорта сеанса пользователя и выберите « Проверить экспорт» . | ||
Если кнопка « Проверить экспорт » отключена, скорее всего, ваш URL- адрес конечной точки или URL-адрес токена доступа указывает протокол HTTP. Из соображений безопасности | Если кнопка « Проверить экспорт » отключена, скорее всего, ваш URL- адрес конечной точки или URL-адрес токена доступа указывает протокол HTTP. Из соображений безопасности Ключ-АСТРОМ разрешает использовать только протокол HTTPS. | ||
Ключ-АСТРОМ использует текущую конфигурацию экспорта сеансов для экспорта до 50 пользовательских сеансов за последние семь дней. Если в течение этого периода данные недоступны, тестовый экспорт недоступен. Как только тестовый экспорт завершится, вы получите уведомление о результатах. | |||
* Вам не нужно сохранять конфигурацию, чтобы протестировать вашу конечную точку. | * Вам не нужно сохранять конфигурацию, чтобы протестировать вашу конечную точку. | ||
Строка 208: | Строка 209: | ||
Образец: сессия, отправленная в Elasticsearch | Образец: сессия, отправленная в Elasticsearch | ||
<code>{ "index" : { "_index" : "my-index", "_type" : "_doc", "_id" : "umsaywsjuo-744377345-1622107543233" } } {"tenantId":"umsaywsjuo","userSessionId":"744377345","startTime":1622107543233,"endTime":1622107578205,"duration":34972,"internalUserId":"744377345","userType":"SYNTHETIC","applicationType":"WEB_APPLICATION","bounce":false,"newUser":true,"userActionCount":12,"totalErrorCount":5,"totalLicenseCreditCount":0,"matchingConversionGoalsCount":0,"ip":"157.25.19.100","continent":"Europe","country":"Poland","region":"synthetic","city":"Bydgoszcz","browserType":"Synthetic Agent","browserFamily":"Synthetic monitor","browserMajorVersion":"Synthetic monitor","osFamily":"Linux","osVersion":"Linux","screenHeight":1080,"screenWidth":1920,"screenOrientation":"LANDSCAPE","displayResolution":"FHD","hasSessionReplay":false,"isp":"T-Mobile Czech Republic","clientType":"Synthetic Agent","browserMonitorId":"SYNTHETIC_TEST-18B209EFE2F438F8","browserMonitorName":"mySampleEnv. | <code>{ "index" : { "_index" : "my-index", "_type" : "_doc", "_id" : "umsaywsjuo-744377345-1622107543233" } } {"tenantId":"umsaywsjuo","userSessionId":"744377345","startTime":1622107543233,"endTime":1622107578205,"duration":34972,"internalUserId":"744377345","userType":"SYNTHETIC","applicationType":"WEB_APPLICATION","bounce":false,"newUser":true,"userActionCount":12,"totalErrorCount":5,"totalLicenseCreditCount":0,"matchingConversionGoalsCount":0,"ip":"157.25.19.100","continent":"Europe","country":"Poland","region":"synthetic","city":"Bydgoszcz","browserType":"Synthetic Agent","browserFamily":"Synthetic monitor","browserMajorVersion":"Synthetic monitor","osFamily":"Linux","osVersion":"Linux","screenHeight":1080,"screenWidth":1920,"screenOrientation":"LANDSCAPE","displayResolution":"FHD","hasSessionReplay":false,"isp":"T-Mobile Czech Republic","clientType":"Synthetic Agent","browserMonitorId":"SYNTHETIC_TEST-18B209EFE2F438F8","browserMonitorName":"mySampleEnv.ruscomtech.ru - browser monitor - analysis","stringProperties":[],"longProperties":[],"doubleProperties":[],"dateProperties":[],"userActions":[{"name":"/rest/cvalidation/validate/%2fvalidateappmetrickey?input=<masked>&appmetrickey=<masked>>f=<masked>","domain":"mySampleEnv.ruscomtech.ru","targetUrl":"<nowiki>https://mySampleEnv.ruscomtech.ru/#monitoranalysiskpm;webcheckId=SYNTHETIC_TEST-67444FBB89C6F11B;actionType=Load;splitting=event;analysisTf=custom1622103968000to1622107568000;mode=performance;analysisActionType=Load;gtf=l_2_HOURS</nowiki>","type":"Xhr","startTime":1622107568648,"endTime":1622107569320,"duration":672,"application":"mySampleEnv.ruscomtech.ru - browser monitor - analysis - 1620645163422","internalApplicationId":"APPLICATION-A8894472DACEDA0E","speedIndex":null,"apdexCategory":"FRUSTRATED","matchingConversionGoals":[],"networkTime":5,"serverTime":58,"frontendTime":609,"documentInteractiveTime":null,"thirdPartyResources":1,"thirdPartyBusyTime":659,"cdnResources":0,"cdnBusyTime":null,"firstPartyResources":9,"firstPartyBusyTime":333,"domCompleteTime":null,"domContentLoadedTime":null,"loadEventStart":null,"loadEventEnd":null,"navigationStart":1622107568730,"requestStart":2,"responseStart":60,"responseEnd":63,"visuallyCompleteTime":null,"syntheticEvent":"click on \"Analyze performance\"","syntheticEventId":"SYNTHETIC_TEST_STEP-7D9201BEB990247E","keyUserAction":false,"stringProperties":[],"longProperties":[],"doubleProperties":[],"dateProperties":[],"userActionPropertyCount":0,"customErrorCount":0,"javascriptErrorCount":0,"requestErrorCount":1,"largestContentfulPaint":null,"firstInputDelay":null,"totalBlockingTime":null,"cumulativeLayoutShift":null},{"name":"/rest/webcheckdetails/overviewdata/browsermonitoranalysis/synthetic_<masked>?selectedtimeframe=<masked>&actiontype=<masked>&analysistf=<masked>&analysismode=<masked>&analysisoverviewsplitting=<masked>&analysisactiontype=<masked>&parts_details=<masked>&parts_chart=<masked>&parts=<masked>&timeframe=<m","domain":"mySampleEnv.ruscomtech.ru","targetUrl":"<nowiki>https://mySampleEnv.ruscomtech.ru/#monitoranalysiskpm;webcheckId=SYNTHETIC_TEST-67444FBB89C6F11B;actionType=Load;splitting=event;analysisTf=custom1622103968000to1622107568000;mode=performance;analysisActionType=Load;gtf=l_2_HOURS</nowiki>","type":"Xhr","startTime":1622107569821,"endTime":1622107570083,"duration":262,"application":"mySampleEnv.ruscomtech.ru - browser monitor - analysis - 1620645163422","internalApplicationId":"APPLICATION-A8894472DACEDA0E","speedIndex":null,"apdexCategory":"FRUSTRATED","matchingConversionGoals":[],"networkTime":5,"serverTime":65,"frontendTime":192,"documentInteractiveTime":null,"thirdPartyResources":0,"thirdPartyBusyTime":null,"cdnResources":0,"cdnBusyTime":null,"firstPartyResources":5,"firstPartyBusyTime":223,"domCompleteTime":null,"domContentLoadedTime":null,"loadEventStart":null,"loadEventEnd":null,"navigationStart":1622107569826,"requestStart":3,"responseStart":68,"responseEnd":70,"visuallyCompleteTime":null,"syntheticEvent":"click on \"Analyze performance\"","syntheticEventId":"SYNTHETIC_TEST_STEP-7D9201BEB990247E","keyUserAction":false,"stringProperties":[],"longProperties":[],"doubleProperties":[],"dateProperties":[],"userActionPropertyCount":0,"customErrorCount":0,"javascriptErrorCount":0,"requestErrorCount":1,"largestContentfulPaint":null,"firstInputDelay":null,"totalBlockingTime":null,"cumulativeLayoutShift":null},{"name":"/rest/webcheckdetails/overviewdata/browsermonitoranalysis/synthetic_<masked>?selectedtimeframe=<masked>&actiontype=<masked>&analysistf=<masked>&analysismode=<masked>&analysisoverviewsplitting=<masked>&visitid=<masked>×tamp=<masked>&analysisactiontype=<masked>&parts=<masked>&timeframe=<masked>&g","domain":"mySampleEnv.ruscomtech.ru","targetUrl":"<nowiki>https://mySampleEnv.ruscomtech.ru/#monitoranalysiskpm;webcheckId=SYNTHETIC_TEST-67444FBB89C6F11B;actionType=Load;splitting=event;analysisTf=custom1622103968000to1622107568000;ensureAnalysisTimeframe=true;mode=performance;visitId=623513409;analysisActionType=Load;gtf=l_2_HOURS</nowiki>","type":"Xhr","startTime":1622107572811,"endTime":1622107572911,"duration":100,"application":"mySampleEnv.ruscomtech.ru - browser monitor - analysis - 1620645163422","internalApplicationId":"APPLICATION-A8894472DACEDA0E","speedIndex":null,"apdexCategory":"SATISFIED","matchingConversionGoals":[],"networkTime":14,"serverTime":61,"frontendTime":25,"documentInteractiveTime":null,"thirdPartyResources":0,"thirdPartyBusyTime":null,"cdnResources":0,"cdnBusyTime":null,"firstPartyResources":2,"firstPartyBusyTime":167,"domCompleteTime":null,"domContentLoadedTime":null,"loadEventStart":null,"loadEventEnd":null,"navigationStart":1622107572831,"requestStart":12,"responseStart":73,"responseEnd":75,"visuallyCompleteTime":null,"syntheticEvent":"open first execution","syntheticEventId":"SYNTHETIC_TEST_STEP-3A281F8FB8AB3C37","keyUserAction":false,"stringProperties":[],"longProperties":[],"doubleProperties":[],"dateProperties":[],"userActionPropertyCount":0,"customErrorCount":0,"javascriptErrorCount":0,"requestErrorCount":0,"largestContentfulPaint":null,"firstInputDelay":null,"totalBlockingTime":null,"cumulativeLayoutShift":null}],"events":[],"errors":[],"syntheticEvents":[{"name":"navigate to details screen","syntheticEventId":"SYNTHETIC_TEST_STEP-09D1E2CC97B5878B","sequenceNumber":1,"timestamp":1622107547988,"type":"navigate"},{"name":"keystrokes on \"user\"","syntheticEventId":"SYNTHETIC_TEST_STEP-0FCD20FF925F44B1","sequenceNumber":2,"timestamp":1622107550155,"type":"keystrokes"},{"name":"click on next","syntheticEventId":"SYNTHETIC_TEST_STEP-84854E56BAA53321","sequenceNumber":3,"timestamp":1622107551834,"type":"click"},{"name":"keystrokes on \"password\"","syntheticEventId":"SYNTHETIC_TEST_STEP-6CB903FD28430FE6","sequenceNumber":4,"timestamp":1622107553985,"type":"keystrokes"},{"name":"click on login button","syntheticEventId":"SYNTHETIC_TEST_STEP-6400C0C04B6B76E3","sequenceNumber":5,"timestamp":1622107564154,"type":"click"},{"name":"open first event","syntheticEventId":"SYNTHETIC_TEST_STEP-395A7BBE253C8C8C","sequenceNumber":6,"timestamp":1622107566364,"type":"click"},{"name":"select performance part","syntheticEventId":"SYNTHETIC_TEST_STEP-A53F6787F97741F7","sequenceNumber":7,"timestamp":1622107568548,"type":"click"},{"name":"click on \"Analyze performance\"","syntheticEventId":"SYNTHETIC_TEST_STEP-7D9201BEB990247E","sequenceNumber":8,"timestamp":1622107572734,"type":"click"},{"name":"open first execution","syntheticEventId":"SYNTHETIC_TEST_STEP-3A281F8FB8AB3C37","sequenceNumber":9,"timestamp":1622107574905,"type":"click"},{"name":"open screenshot","syntheticEventId":"SYNTHETIC_TEST_STEP-DF43A9A21ADE0E10","sequenceNumber":10,"timestamp":1622107576588,"type":"click"}],"endReason":"END_EVENT","numberOfRageClicks":0,"userExperienceScore":"TOLERATED","connectionType":"UNKNOWN","hasError":true}</code> | ||
== Скачать образец сопоставления == | == Скачать образец сопоставления == | ||
Строка 300: | Строка 301: | ||
* Конечные точки для доступа к API настроек: | * Конечные точки для доступа к API настроек: | ||
** Для развертываний | ** Для развертываний Ключ-АСТРОМ SaaS:<code><nowiki>https://{your-environment-id}.live.ruscomtech.ru/api/v2/settings/objects/{objectId}</nowiki></code> | ||
** Для управляемых развертываний | ** Для управляемых развертываний Ключ-АСТРОМ:<code><nowiki>https://{your-domain}/e/{your-environment-id}/api/v2/settings/objects/{objectId}</nowiki></code> | ||
** Для среды | ** Для среды АктивногоШлюза:<code><nowiki>https://{your-activegate-domain}/e/{your-environment-id}/api/v2/settings/objects/{objectId}</nowiki></code> | ||
* Адрес для документации OpenAPI: <code><nowiki>https://{your-environment-id}.live. | * Адрес для документации OpenAPI: <code><nowiki>https://{your-environment-id}.live.ruscomtech.ru/rest-api-doc/index.jsp?urls.primaryName=Environment%20API%20v2#/Settings%20-%20Objects</nowiki></code>. | ||
* Идентификатор схемы для конфигурации экспорта сеанса пользователя: <code>builtin:elasticsearch.user-session-export-settings-v2</code>. С помощью этого идентификатора схемы вы можете, например, прочитать текущую конфигурацию экспорта сеанса пользователя с помощью любого клиента REST. | * Идентификатор схемы для конфигурации экспорта сеанса пользователя: <code>builtin:elasticsearch.user-session-export-settings-v2</code>. С помощью этого идентификатора схемы вы можете, например, прочитать текущую конфигурацию экспорта сеанса пользователя с помощью любого клиента REST. | ||
Текущая версия на 15:02, 10 сентября 2024
Применение Ключ-АСТРОМ / Мониторинг реального пользователя / Установка и конфигурация / Веб приложения / Дополнительная конфигурация / Настройка экспорта сеанса пользователя
Ключ-АСТРОМ может постоянно отправлять данные сеанса пользователя на указанную конечную точку веб-перехватчика.
Чтобы начать получать данные о сеансе пользователя, вам необходимо настроить конечную точку, а затем настроить экспорт сеанса через веб-интерфейс Ключ-АСТРОМ или через API настроек .
Ключ-АСТРОМ массово отправляет данные о завершенных пользовательских сеансах на все определенные конечные точки с сбросом каждые несколько секунд для экспорта данных, как только пользовательский сеанс помечен как завершенный. Передача данных происходит, как только выполняется одно из следующих условий:
- Завершено 1000 сеансов пользователей
- Общий размер превышает 896 000 байт.
- Ни один пользовательский сеанс не завершился за последние 30 секунд.
Чтобы предотвратить перегрузку системы, Ключ-АСТРОМ отменяет запрос, если ваша конечная точка не отвечает в течение 30 секунд. Ключ-АСТРОМ повторяет попытку еще три раза, прежде чем, наконец, отклонит запрос и отправит предупреждение с сообщением об ошибке тайм- аута запроса .
Определите свою конечную точку
Сервер, предоставляющий веб-перехватчик, должен прослушивать PUT
или POST
запрашивать URL-адрес, указанный как часть конфигурации экспорта сеанса. Кроме того, из соображений безопасности Ключ-АСТРОМ разрешает использовать только конечные точки HTTPS.
- Метод HTTP :
PUT
илиPOST
- Путь : как настроено
- Тип контента :
application/json
илиapplication/x-ndjson
. При отправке в Elasticsearch установите значениеapplication/x-ndjson
. - Код статуса ответа :
200
Пример кода для Eclipse Jersey
В следующем примере кода используется платформа Джерси RESTful Web Services с открытым исходным кодом. Вы можете использовать этот код для настройки необходимой конечной точки для получения данных сеанса пользователя.
@Path("/export/")
public class ExportREST {
...
@PUT
@Produces(MediaType.APPLICATION_JSON)
@Path("events")
public JResponse<String> jsonEvents(final String data) {
...
// split the bulk into single documents
final String[] lines = StringUtils.split(data, '\n');
for(String lineS: lines) {
...
// handle the JSON-data
}
return JResponse.ok("")
.header(HttpHeaders.SERVER, "Endpoint for Astromkey session data export")
.build();
}
}
Настройте экспорт сеанса через веб-интерфейс
Чтобы настроить экспорт сеанса пользователя через веб-интерфейс Ключ-АСТРОМ
- В меню Ключ-АСТРОМ выберите « Настройки » > « Интеграция » > « Экспорт сеансов пользователей » .
- Выберите Добавить элемент .
- Укажите URL-адрес конечной точки и включите параметр Включить экспорт сеанса пользователя, если вы готовы начать получать данные сеанса пользователя. Из соображений безопасности Ключ-АСТРОМ разрешает использовать только конечные точки HTTPS.
- Установите Тип содержимого на
application/json
илиapplication/x-ndjson
. При отправке данных сеанса в Elasticsearch установите для него значениеapplication/x-ndjson
. - Включите Использовать метод POST (вместо PUT) при отправке данных сеанса в Elasticsearch или при настройке конечной точки для приема
POST
запросов. - по желанию Настройте аутентификацию , включите передачу данных в Elasticsearch или настройте область экспорта, оповещения и расширенную настройку .
Вы также можете протестировать экспорт сеанса пользователя, а также загрузить образец набора данных или образец сопоставления .
Вы можете настроить до трех конечных точек HTTPS.
Настроить аутентификацию
Ключ-АСТРОМ может отправлять данные сеанса пользователя, используя либо обычную аутентификацию, либо аутентификацию OAuth 2.0. Эти типы аутентификации позволяют защитить ваши конечные точки.
Когда вы активируете аутентификацию для конфигурации экспорта сеанса, проверьте конфигурацию перед ее сохранением.
По соображениям безопасности вам необходимо повторно ввести пароль базовой аутентификации или секрет клиента OAuth 2.0 при тестировании конфигурации экспорта сеанса. Вам также потребуется повторно ввести пароль или секрет, когда вы редактируете существующую конфигурацию экспорта сеанса с включенной аутентификацией.
Настроить базовую аутентификацию
Чтобы настроить экспорт сеанса пользователя с базовой аутентификацией
- На странице Экспорт сеанса пользователя разверните требуемый URL-адрес конечной точки.
- В разделе «Аутентификация » включите «Активировать » .
- Установите Обычную аутентификацию в качестве типа аутентификации.
- Введите имя пользователя и пароль.
Пароль зашифрован и замаскирован в вашей среде.
Настроить аутентификацию OAuth 2.0
Чтобы настроить экспорт сеанса пользователя с аутентификацией учетных данных клиента OAuth 2.0
- На странице Экспорт сеанса пользователя разверните требуемый URL-адрес конечной точки.
- В разделе «Аутентификация » включите «Активировать » .
- Установите OAuth 2.0 в качестве типа аутентификации.
- Введите URL-адрес маркера доступа, идентификатор клиента, секрет клиента и область действия (необязательно).
Секрет клиента шифруется и маскируется в вашей среде.
Дополнительная информация об аутентификации OAuth 2.0
OAuth 2.0 предлагает различные типы предоставления, но Ключ-АСТРОМ поддерживает только тип предоставления учетных данных клиента. Для получения информации об этом типе гранта см. следующие ресурсы:
- Поток учетных данных клиента
- Вызовите свой API, используя поток учетных данных клиента
- Платформа авторизации OAuth 2.0 | Предоставление учетных данных клиента
Чтобы отправлять данные сеанса пользователя с использованием аутентификации OAuth 2.0, необходимо настроить сервер авторизации OAuth2 с конечной точкой токена доступа. Кроме того, убедитесь, что ваш URL-адрес конечной точки работает с токеном доступа.
Шаги ниже описывают, как работает аутентификация OAuth 2.0 для экспорта сеанса пользователя.
- Ключ-АСТРОМ отправляет запрос на ваш сервер авторизации для получения токена доступа. URL вашего токена доступа , идентификатор клиента , секрет клиента и область действия (необязательно) включены в запрос.
curl --insecure -w "\nHTTP Status: %{http_code}\n" \
--location --request POST 'https://[your-access-token-url]/oauth2/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Accept: application/json' \
--data-urlencode 'client_id=[your-client-id]' \
--data-urlencode 'client_secret=[your-client-secret]' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'scope=[your-scope]'
2. Ваш сервер авторизации отвечает токеном доступа, например:
{
"scope":"session-export-api",
"token_type":"Bearer",
"expires_in":300,
"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczovL2V4YW1wbGUuYXV0aDAuY29tLyIsImF1ZCI6Imh0dHBzOi8vYXBpLmV4YW1wbGUuY29tL2NhbGFuZGFyL3YxLyIsInN1YiI6InVzcl8xMjMiLCJpYXQiOjE0NTg3ODU3OTYsImV4cCI6MTQ1ODg3MjE5Nn0.CA7eaHjIHz5NxeIJoFK9krqaeZrPLwmMmgI_XiQiIkQ"
}
3. Ключ-АСТРОМ отправляет запрос POST на настроенный URL -адрес конечной точки . Запрос включает данные сеанса пользователя, а также токен доступа, полученный на предыдущем шаге, который передается как токен носителя в Authorization
заголовке.
curl --request POST \
--url https://[your-endpoint-url] \
--header 'Authorization: Bearer ACCESS_TOKEN' \
--header 'Content-type: application/json'
Отправка данных напрямую в Elasticsearch
Для отправки данных непосредственно в вашу установку Elasticsearch
- Убедитесь, что ваш экземпляр Elasticsearch доступен с сервера кластера. Для развертывания Ключ-АСТРОМ SaaS ваш экземпляр Elasticsearch должен быть общедоступным. Вы можете использовать SSL-сертификат и базовую аутентификацию или аутентификацию OAuth 2.0 для безопасного доступа.
- Убедитесь, что ваш экспортный URL-адрес имеет следующий формат:
https://<your_host>:9200/_bulk
. Замените<your_host>
своим фактическим значением. - На странице Экспорт сеанса пользователя разверните требуемый URL-адрес конечной точки.
- Убедитесь, что в разделе « Определить конечную точку » для параметра « Тип контента» установлено значение
application/x-ndjson
« Использовать метод POST» (вместо «PUT») . - В разделе «Отправлять данные напрямую в Elasticsearch » включите « Активировать » .
- Введите имя индекса, куда отправляются данные, и тип документов в индексе Elasticsearch .
Индекс Elasticsearch
Создайте индекс, в который вы хотите отправлять данные сеанса пользователя, и определите сопоставление для вашего индекса. Подробные сведения о том, как загрузить образец сопоставления для конфигурации экспорта сеанса, см. в разделе Загрузка образца сопоставления .
Если вы не создадите индекс перед включением экспорта сеанса пользователя, ваша установка Elasticsearch автоматически создаст сопоставления для полей. Это автоматическое сопоставление не всегда создает соответствующие сопоставления полей. Например, поля даты отображаются как long
.
Тип индекса Elasticsearch
Elasticsearch в настоящее время удаляет поддержку типов сопоставления. То, как вы создаете индексы и настраиваете типы, зависит от вашей версии Elasticsearch. Подробнее см. ниже.
Мы рекомендуем установить _doc
тип документа независимо от версии Elasticsearch, которую вы используете.
- Elasticsearch версии 6
- Укажите один тип для каждого индекса.
- При создании индекса укажите
include_type_name
параметр строки запроса, чтобы указать, что запросы и ответы должны включать имя типа. Этот параметр по умолчанию равенtrue
. Если вы не установите его, вы получите предупреждение об устаревании. Если вы не укажете какой-либо тип при создании индекса,_doc
используется.
- Elasticsearch версии 7
- Указание типов не рекомендуется в этой версии Elasticsearch. Параметр
include_type_name
по умолчанию равенfalse
. - Вы можете заставить Elasticsearch использовать имя типа, установив для параметра значение
true
, что приведет к предупреждению об устаревании.
- Указание типов не рекомендуется в этой версии Elasticsearch. Параметр
- Elasticsearch версии 8
- Указание типов больше не поддерживается. Начиная с этой версии, не указывайте тип документа. Дополнительные сведения см. в разделе Удаление типов сопоставления .
Type
относится к «типу индекса», используемому в Elasticsearch, и не ограничивает, какие сеансы пользователей экспортируются. Независимо от типа, который вы выбрали для настройки, все данные сеанса пользователя, включая действия пользователя, события и ошибки, экспортируются.
Чтобы ограничить сеансы пользователей, которые вы экспортируете, вы можете определить зону управления. См . раздел Настройка области экспорта, предупреждений и расширенной настройки ниже.
Настройка области экспорта, предупреждений и расширенной конфигурации
В разделе Область экспорта, предупреждения и расширенная конфигурация вашей конечной точки вы можете сузить область экспорта сеанса, отключить уведомления и настроить некоторые другие параметры экспорта сеанса.
- Объем экспорта . Чтобы определить область экспорта вашей пользовательской сессии, выберите нужную зону управления . После того, как вы настроите зону управления, Ключ-АСТРОМ отправляет только те пользовательские сеансы, которые имеют хотя бы одно действие пользователя с соответствующим приложением. Ограничение экспорта сеанса только синтетическими сеансами пользователей в настоящее время невозможно.
- Оповещение . Включите параметр «Отключить уведомление » , если вы не хотите получать уведомления в случае сбоя экспорта сеанса пользователя.
- Пользовательская конфигурация . Укажите пользовательские свойства конфигурации для дальнейшей настройки конфигурации экспорта сеанса пользователя. Перед изменением этого поля обратитесь в службу поддержки Ключ-АСТРОМ.
Если у вас возникли проблемы с экспортом сеанса пользователя, обратитесь в службу поддержки Ключ-АСТРОМ, прежде чем настраивать какие-либо дополнительные свойства.
Тестовый экспорт
Чтобы протестировать конфигурацию экспорта сеанса пользователя, разверните требуемый URL-адрес конечной точки на странице экспорта сеанса пользователя и выберите « Проверить экспорт» .
Если кнопка « Проверить экспорт » отключена, скорее всего, ваш URL- адрес конечной точки или URL-адрес токена доступа указывает протокол HTTP. Из соображений безопасности Ключ-АСТРОМ разрешает использовать только протокол HTTPS.
Ключ-АСТРОМ использует текущую конфигурацию экспорта сеансов для экспорта до 50 пользовательских сеансов за последние семь дней. Если в течение этого периода данные недоступны, тестовый экспорт недоступен. Как только тестовый экспорт завершится, вы получите уведомление о результатах.
- Вам не нужно сохранять конфигурацию, чтобы протестировать вашу конечную точку.
- Если вы настроили конечную точку, защищенную с помощью аутентификации :
- Проверьте свою конфигурацию перед ее сохранением.
- Повторно введите пароль для базовой аутентификации или секрет клиента OAuth 2.0 при тестировании конфигурации.
Скачать образец набора данных
Чтобы увидеть, как выглядят данные сеанса пользователя при их экспорте в конечные точки, разверните требуемый URL-адрес конечной точки на странице Экспорт сеанса пользователя и выберите Загрузить образцы данных экспорта .
Образец набора данных содержит до 50 пользовательских сеансов, отслеживаемых в вашей среде за последние семь дней. Если в течение этого периода не будет сеансов пользователей, загрузка образцов данных будет недоступна.
- Если вы настроили обычную конечную точку для экспорта сеанса пользователя, пример данных содержит сеансы пользователя в формате JSON, разделенные символами новой строки. Образец: три сеанса отправлены в виде трех строк
{"tenantId":"umsaywsjuo","userSessionId":"1394_1008","startTime":1511441593539,"endTime":1511441716896,"duration":123357,"internalUserId":"1394","userType":"REAL_USER","applicationType":"MOBILE_APPLICATION","bounce":false,"newUser":false,"userActionCount":1,"totalErrorCount":1,"ip":"2001:1800:ffff:eac2:63f5:568e:b3c6:6c54","geolocationContinentName":"North America","geolocationCountryName":"United States","geolocationRegionName":"Florida","geolocationCityName":"Delray Beach","osFamilyName":"Windows","osVersionName":"Windows 10.0 Mobile","manufacturer":"Nokia","device":"L-930","userId":"fearghasbag","screenHeight":1920,"screenWidth":1080,"screenOrientation":"PORTRAIT","displayResolution":"FHD","hasCrash":true,"isp":"SWCP-AS - Southwest Cyberport","stringTags":{ },"numTags":{ },"dateTags":{ },"userActions":[ { "name":"Checkout","type":"Custom","startTime":1511441593539,"endTime":1511441593562,"duration":23,"application":"easyTravel Demo","speedIndex":null,"errorCount":0,"apdexCategory":"UNKNOWN","networkTime":null,"serverTime":null,"frontendTime":null,"documentInteractiveTime":null,"failedImages":null,"failedXhrRequests":null,"httpRequestsWithErrors":null,"thirdPartyResources":null,"thirdPartyBusyTime":0,"cdnResources":null,"cdnBusyTime":0,"firstPartyResources":null,"firstPartyBusyTime":0,"hasCrash":false,"domCompleteTime":null,"domContentLoadedTime":null,"loadEventStart":null,"loadEventEnd":null,"navigationStart":null,"requestStart":null,"responseStart":null,"responseEnd":null,"visuallyCompleteTime":null } ],"events":[ { "type":"UserTag","name":"fearghasbag","startTime":1511441593562,"application":"MOBILE_APPLICATION-752C288D59734C79" } ],"errors":[ { "type":"Crash","name":"ThrowAsync","startTime":1511441716896,"application":"MOBILE_APPLICATION-752C288D59734C79"}]} {"tenantId":"umsaywsjuo","userSessionId":"1394_1008","startTime":1511441593539,"endTime":1511441716896,"duration":123357,"internalUserId":"1394","userType":"REAL_USER","applicationType":"MOBILE_APPLICATION","bounce":false,"newUser":false,"userActionCount":1,"totalErrorCount":1,"ip":"2001:1800:ffff:eac2:63f5:568e:b3c6:6c54","geolocationContinentName":"North America","geolocationCountryName":"United States","geolocationRegionName":"Florida","geolocationCityName":"Delray Beach","osFamilyName":"Windows","osVersionName":"Windows 10.0 Mobile","manufacturer":"Nokia","device":"L-930","userId":"fearghasbag","screenHeight":1920,"screenWidth":1080,"screenOrientation":"PORTRAIT","displayResolution":"FHD","hasCrash":true,"isp":"SWCP-AS - Southwest Cyberport","stringTags":{ },"numTags":{ },"dateTags":{ },"userActions":[ { "name":"Checkout","type":"Custom","startTime":1511441593539,"endTime":1511441593562,"duration":23,"application":"easyTravel Demo","speedIndex":null,"errorCount":0,"apdexCategory":"UNKNOWN","networkTime":null,"serverTime":null,"frontendTime":null,"documentInteractiveTime":null,"failedImages":null,"failedXhrRequests":null,"httpRequestsWithErrors":null,"thirdPartyResources":null,"thirdPartyBusyTime":0,"cdnResources":null,"cdnBusyTime":0,"firstPartyResources":null,"firstPartyBusyTime":0,"hasCrash":false,"domCompleteTime":null,"domContentLoadedTime":null,"loadEventStart":null,"loadEventEnd":null,"navigationStart":null,"requestStart":null,"responseStart":null,"responseEnd":null,"visuallyCompleteTime":null } ],"events":[ { "type":"UserTag","name":"fearghasbag","startTime":1511441593562,"application":"MOBILE_APPLICATION-752C288D59734C79" } ],"errors":[ { "type":"Crash","name":"ThrowAsync","startTime":1511441716896,"application":"MOBILE_APPLICATION-752C288D59734C79"}]} {"tenantId":"umsaywsjuo","userSessionId":"1394_1008","startTime":1511441593539,"endTime":1511441716896,"duration":123357,"internalUserId":"1394","userType":"REAL_USER","applicationType":"MOBILE_APPLICATION","bounce":false,"newUser":false,"userActionCount":1,"totalErrorCount":1,"ip":"2001:1800:ffff:eac2:63f5:568e:b3c6:6c54","geolocationContinentName":"North America","geolocationCountryName":"United States","geolocationRegionName":"Florida","geolocationCityName":"Delray Beach","osFamilyName":"Windows","osVersionName":"Windows 10.0 Mobile","manufacturer":"Nokia","device":"L-930","userId":"fearghasbag","screenHeight":1920,"screenWidth":1080,"screenOrientation":"PORTRAIT","displayResolution":"FHD","hasCrash":true,"isp":"SWCP-AS - Southwest Cyberport","stringTags":{ },"numTags":{ },"dateTags":{ },"userActions":[ { "name":"Checkout","type":"Custom","startTime":1511441593539,"endTime":1511441593562,"duration":23,"application":"easyTravel Demo","speedIndex":null,"errorCount":0,"apdexCategory":"UNKNOWN","networkTime":null,"serverTime":null,"frontendTime":null,"documentInteractiveTime":null,"failedImages":null,"failedXhrRequests":null,"httpRequestsWithErrors":null,"thirdPartyResources":null,"thirdPartyBusyTime":0,"cdnResources":null,"cdnBusyTime":0,"firstPartyResources":null,"firstPartyBusyTime":0,"hasCrash":false,"domCompleteTime":null,"domContentLoadedTime":null,"loadEventStart":null,"loadEventEnd":null,"navigationStart":null,"requestStart":null,"responseStart":null,"responseEnd":null,"visuallyCompleteTime":null } ],"events":[ { "type":"UserTag","name":"fearghasbag","startTime":1511441593562,"application":"MOBILE_APPLICATION-752C288D59734C79" } ],"errors":[ { "type":"Crash","name":"ThrowAsync","startTime":1511441716896,"application":"MOBILE_APPLICATION-752C288D59734C79"}]}
Если вы настроили конечную точку для отправки данных напрямую в Elasticsearch , данные образца также содержат строки заголовков, как показано в примере ниже. Они используются, чтобы сообщить Elasticsearch, что делать с данными.
Образец: сессия, отправленная в Elasticsearch
{ "index" : { "_index" : "my-index", "_type" : "_doc", "_id" : "umsaywsjuo-744377345-1622107543233" } } {"tenantId":"umsaywsjuo","userSessionId":"744377345","startTime":1622107543233,"endTime":1622107578205,"duration":34972,"internalUserId":"744377345","userType":"SYNTHETIC","applicationType":"WEB_APPLICATION","bounce":false,"newUser":true,"userActionCount":12,"totalErrorCount":5,"totalLicenseCreditCount":0,"matchingConversionGoalsCount":0,"ip":"157.25.19.100","continent":"Europe","country":"Poland","region":"synthetic","city":"Bydgoszcz","browserType":"Synthetic Agent","browserFamily":"Synthetic monitor","browserMajorVersion":"Synthetic monitor","osFamily":"Linux","osVersion":"Linux","screenHeight":1080,"screenWidth":1920,"screenOrientation":"LANDSCAPE","displayResolution":"FHD","hasSessionReplay":false,"isp":"T-Mobile Czech Republic","clientType":"Synthetic Agent","browserMonitorId":"SYNTHETIC_TEST-18B209EFE2F438F8","browserMonitorName":"mySampleEnv.ruscomtech.ru - browser monitor - analysis","stringProperties":[],"longProperties":[],"doubleProperties":[],"dateProperties":[],"userActions":[{"name":"/rest/cvalidation/validate/%2fvalidateappmetrickey?input=<masked>&appmetrickey=<masked>>f=<masked>","domain":"mySampleEnv.ruscomtech.ru","targetUrl":"https://mySampleEnv.ruscomtech.ru/#monitoranalysiskpm;webcheckId=SYNTHETIC_TEST-67444FBB89C6F11B;actionType=Load;splitting=event;analysisTf=custom1622103968000to1622107568000;mode=performance;analysisActionType=Load;gtf=l_2_HOURS","type":"Xhr","startTime":1622107568648,"endTime":1622107569320,"duration":672,"application":"mySampleEnv.ruscomtech.ru - browser monitor - analysis - 1620645163422","internalApplicationId":"APPLICATION-A8894472DACEDA0E","speedIndex":null,"apdexCategory":"FRUSTRATED","matchingConversionGoals":[],"networkTime":5,"serverTime":58,"frontendTime":609,"documentInteractiveTime":null,"thirdPartyResources":1,"thirdPartyBusyTime":659,"cdnResources":0,"cdnBusyTime":null,"firstPartyResources":9,"firstPartyBusyTime":333,"domCompleteTime":null,"domContentLoadedTime":null,"loadEventStart":null,"loadEventEnd":null,"navigationStart":1622107568730,"requestStart":2,"responseStart":60,"responseEnd":63,"visuallyCompleteTime":null,"syntheticEvent":"click on \"Analyze performance\"","syntheticEventId":"SYNTHETIC_TEST_STEP-7D9201BEB990247E","keyUserAction":false,"stringProperties":[],"longProperties":[],"doubleProperties":[],"dateProperties":[],"userActionPropertyCount":0,"customErrorCount":0,"javascriptErrorCount":0,"requestErrorCount":1,"largestContentfulPaint":null,"firstInputDelay":null,"totalBlockingTime":null,"cumulativeLayoutShift":null},{"name":"/rest/webcheckdetails/overviewdata/browsermonitoranalysis/synthetic_<masked>?selectedtimeframe=<masked>&actiontype=<masked>&analysistf=<masked>&analysismode=<masked>&analysisoverviewsplitting=<masked>&analysisactiontype=<masked>&parts_details=<masked>&parts_chart=<masked>&parts=<masked>&timeframe=<m","domain":"mySampleEnv.ruscomtech.ru","targetUrl":"https://mySampleEnv.ruscomtech.ru/#monitoranalysiskpm;webcheckId=SYNTHETIC_TEST-67444FBB89C6F11B;actionType=Load;splitting=event;analysisTf=custom1622103968000to1622107568000;mode=performance;analysisActionType=Load;gtf=l_2_HOURS","type":"Xhr","startTime":1622107569821,"endTime":1622107570083,"duration":262,"application":"mySampleEnv.ruscomtech.ru - browser monitor - analysis - 1620645163422","internalApplicationId":"APPLICATION-A8894472DACEDA0E","speedIndex":null,"apdexCategory":"FRUSTRATED","matchingConversionGoals":[],"networkTime":5,"serverTime":65,"frontendTime":192,"documentInteractiveTime":null,"thirdPartyResources":0,"thirdPartyBusyTime":null,"cdnResources":0,"cdnBusyTime":null,"firstPartyResources":5,"firstPartyBusyTime":223,"domCompleteTime":null,"domContentLoadedTime":null,"loadEventStart":null,"loadEventEnd":null,"navigationStart":1622107569826,"requestStart":3,"responseStart":68,"responseEnd":70,"visuallyCompleteTime":null,"syntheticEvent":"click on \"Analyze performance\"","syntheticEventId":"SYNTHETIC_TEST_STEP-7D9201BEB990247E","keyUserAction":false,"stringProperties":[],"longProperties":[],"doubleProperties":[],"dateProperties":[],"userActionPropertyCount":0,"customErrorCount":0,"javascriptErrorCount":0,"requestErrorCount":1,"largestContentfulPaint":null,"firstInputDelay":null,"totalBlockingTime":null,"cumulativeLayoutShift":null},{"name":"/rest/webcheckdetails/overviewdata/browsermonitoranalysis/synthetic_<masked>?selectedtimeframe=<masked>&actiontype=<masked>&analysistf=<masked>&analysismode=<masked>&analysisoverviewsplitting=<masked>&visitid=<masked>×tamp=<masked>&analysisactiontype=<masked>&parts=<masked>&timeframe=<masked>&g","domain":"mySampleEnv.ruscomtech.ru","targetUrl":"https://mySampleEnv.ruscomtech.ru/#monitoranalysiskpm;webcheckId=SYNTHETIC_TEST-67444FBB89C6F11B;actionType=Load;splitting=event;analysisTf=custom1622103968000to1622107568000;ensureAnalysisTimeframe=true;mode=performance;visitId=623513409;analysisActionType=Load;gtf=l_2_HOURS","type":"Xhr","startTime":1622107572811,"endTime":1622107572911,"duration":100,"application":"mySampleEnv.ruscomtech.ru - browser monitor - analysis - 1620645163422","internalApplicationId":"APPLICATION-A8894472DACEDA0E","speedIndex":null,"apdexCategory":"SATISFIED","matchingConversionGoals":[],"networkTime":14,"serverTime":61,"frontendTime":25,"documentInteractiveTime":null,"thirdPartyResources":0,"thirdPartyBusyTime":null,"cdnResources":0,"cdnBusyTime":null,"firstPartyResources":2,"firstPartyBusyTime":167,"domCompleteTime":null,"domContentLoadedTime":null,"loadEventStart":null,"loadEventEnd":null,"navigationStart":1622107572831,"requestStart":12,"responseStart":73,"responseEnd":75,"visuallyCompleteTime":null,"syntheticEvent":"open first execution","syntheticEventId":"SYNTHETIC_TEST_STEP-3A281F8FB8AB3C37","keyUserAction":false,"stringProperties":[],"longProperties":[],"doubleProperties":[],"dateProperties":[],"userActionPropertyCount":0,"customErrorCount":0,"javascriptErrorCount":0,"requestErrorCount":0,"largestContentfulPaint":null,"firstInputDelay":null,"totalBlockingTime":null,"cumulativeLayoutShift":null}],"events":[],"errors":[],"syntheticEvents":[{"name":"navigate to details screen","syntheticEventId":"SYNTHETIC_TEST_STEP-09D1E2CC97B5878B","sequenceNumber":1,"timestamp":1622107547988,"type":"navigate"},{"name":"keystrokes on \"user\"","syntheticEventId":"SYNTHETIC_TEST_STEP-0FCD20FF925F44B1","sequenceNumber":2,"timestamp":1622107550155,"type":"keystrokes"},{"name":"click on next","syntheticEventId":"SYNTHETIC_TEST_STEP-84854E56BAA53321","sequenceNumber":3,"timestamp":1622107551834,"type":"click"},{"name":"keystrokes on \"password\"","syntheticEventId":"SYNTHETIC_TEST_STEP-6CB903FD28430FE6","sequenceNumber":4,"timestamp":1622107553985,"type":"keystrokes"},{"name":"click on login button","syntheticEventId":"SYNTHETIC_TEST_STEP-6400C0C04B6B76E3","sequenceNumber":5,"timestamp":1622107564154,"type":"click"},{"name":"open first event","syntheticEventId":"SYNTHETIC_TEST_STEP-395A7BBE253C8C8C","sequenceNumber":6,"timestamp":1622107566364,"type":"click"},{"name":"select performance part","syntheticEventId":"SYNTHETIC_TEST_STEP-A53F6787F97741F7","sequenceNumber":7,"timestamp":1622107568548,"type":"click"},{"name":"click on \"Analyze performance\"","syntheticEventId":"SYNTHETIC_TEST_STEP-7D9201BEB990247E","sequenceNumber":8,"timestamp":1622107572734,"type":"click"},{"name":"open first execution","syntheticEventId":"SYNTHETIC_TEST_STEP-3A281F8FB8AB3C37","sequenceNumber":9,"timestamp":1622107574905,"type":"click"},{"name":"open screenshot","syntheticEventId":"SYNTHETIC_TEST_STEP-DF43A9A21ADE0E10","sequenceNumber":10,"timestamp":1622107576588,"type":"click"}],"endReason":"END_EVENT","numberOfRageClicks":0,"userExperienceScore":"TOLERATED","connectionType":"UNKNOWN","hasError":true}
Скачать образец сопоставления
Чтобы экспортировать данные сеанса пользователя непосредственно в собственный экземпляр Elasticsearch , вы можете загрузить образец сопоставления для своих индексов. Разверните требуемый URL-адрес конечной точки на странице Экспорт сеанса пользователя и выберите Загрузить сопоставление . Загруженный файл сопоставления шаблона содержит сопоставление для каждого экспортированного поля.
Созданный образец сопоставления отражает ваши текущие настройки, поэтому вы можете использовать его при создании индекса, в который должны быть экспортированы данные сеанса пользователя.
PUT /my-usersession-index
{
"settings": {
"index": {
"number_of_shards": 3,
"number_of_replicas": 1
}
},
"mappings": {
"properties": {
// add the mappings from the downloaded file here ...
}
}
}
Пример
{
"mappings" : {
"dynamic_templates" : [ {
"string_fields" : {
"match" : "*",
"match_mapping_type" : "string",
"mapping" : {
"norms" : "false",
"type" : "keyword"
}
}
} ],
"properties" : {
"applicationType" : {
"type" : "keyword"
},
"appVersion" : {
"type" : "keyword"
},
// ...
}
}
}
Настроить экспорт сессии через APIСкачать образец сопоставления
Чтобы экспортировать данные сеанса пользователя непосредственно в собственный экземпляр Elasticsearch , вы можете загрузить образец сопоставления для своих индексов. Разверните требуемый URL-адрес конечной точки на странице Экспорт сеанса пользователя и выберите Загрузить сопоставление . Загруженный файл сопоставления шаблона содержит сопоставление для каждого экспортированного поля.
Созданный образец сопоставления отражает ваши текущие настройки, поэтому вы можете использовать его при создании индекса, в который должны быть экспортированы данные сеанса пользователя.
PUT /my-usersession-index
{
"settings": {
"index": {
"number_of_shards": 3,
"number_of_replicas": 1
}
},
"mappings": {
"properties": {
// add the mappings from the downloaded file here ...
}
}
}
Пример
{
"mappings" : {
"dynamic_templates" : [ {
"string_fields" : {
"match" : "*",
"match_mapping_type" : "string",
"mapping" : {
"norms" : "false",
"type" : "keyword"
}
}
} ],
"properties" : {
"applicationType" : {
"type" : "keyword"
},
"appVersion" : {
"type" : "keyword"
},
// ...
}
}
}
Настроить экспорт сессии через API
Конфигурация экспорта сеанса пользователя хранится с использованием фреймворка Settings 2.0. Это предоставляет REST API, который можно использовать для создания, чтения, обновления и удаления конфигураций экспорта сеанса. Подробнее см. в разделе API настроек .
- Конечные точки для доступа к API настроек:
- Для развертываний Ключ-АСТРОМ SaaS:
https://{your-environment-id}.live.ruscomtech.ru/api/v2/settings/objects/{objectId}
- Для управляемых развертываний Ключ-АСТРОМ:
https://{your-domain}/e/{your-environment-id}/api/v2/settings/objects/{objectId}
- Для среды АктивногоШлюза:
https://{your-activegate-domain}/e/{your-environment-id}/api/v2/settings/objects/{objectId}
- Для развертываний Ключ-АСТРОМ SaaS:
- Адрес для документации OpenAPI:
https://{your-environment-id}.live.ruscomtech.ru/rest-api-doc/index.jsp?urls.primaryName=Environment%20API%20v2#/Settings%20-%20Objects
. - Идентификатор схемы для конфигурации экспорта сеанса пользователя:
builtin:elasticsearch.user-session-export-settings-v2
. С помощью этого идентификатора схемы вы можете, например, прочитать текущую конфигурацию экспорта сеанса пользователя с помощью любого клиента REST.
GET https://{your-domain}/api/v2/settings/objects?schemaIds=builtin:elasticsearch.user-session-export-settings-v2&scopes=tenant&fields=objectId,value
Чтобы добавить конфигурацию экспорта сеанса через REST API
POST https://{your-domain}/api/v2/settings/objects?schemaIds=builtin:elasticsearch.user-session-export-settings-v2&scopes=tenant
[
{
"schemaVersion": "0.0.214",
"schemaId": "builtin:elasticsearch.user-session-export-settings-v2",
"scope": "tenant",
"value": {
"endpointDefinition": {
"endpointUrl": "https://endpoint-export.dev",
"enableUserSessionExport": true,
"contentType": "application/json",
"usePost": false
},
"authentication": {
"active": false
},
"sendDirect": {
"active": false
},
"exportBehavior": {
"managementZone": null,
"disableNotification": false,
"customConfiguration": null
}
}
}
]
Вы можете добавить только одну конфигурацию экспорта сеанса пользователя на запрос. Если вам нужно добавить вторую конфигурацию экспорта сеанса, отправьте новый POST
запрос.
Подробнее о том, как обновить или удалить объект настроек, см. в разделах API настроек — ПОМЕЩЕНИЕ объекта и API настроек — УДАЛЕНИЕ объекта .
Устранение неполадок
Чтобы проверить конфигурацию экспорта сеанса, выполните приведенную ниже команду. При необходимости вы можете установить следующие дополнительные флаги:
--insecure
отключить проверку SSL--http1.1
если команда возвращаетREFUSED_STREAM
ошибку
curl -v -H "Content-Type: application/json" -X PUT -d '{"visitorId":"14804637803609BCTKP776NMJBOIF3R8OD6R0E4NQALJO","visitId":"16229530","startTime":1480463779085,"endTime":1480463784889,"visitType":"SYNTHETIC"}' http://localhost:3000/export/events