Настройка экспорта сеанса пользователя

Материал из Dynatrace

Ключ-АСТРОМ может постоянно отправлять данные сеанса пользователя на указанную конечную точку веб-перехватчика.

Чтобы начать получать данные о сеансе пользователя, вам необходимо настроить конечную точку, а затем настроить экспорт сеанса через веб-интерфейс Ключ-АСТРОМ или через 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();
    }
}

Настройте экспорт сеанса через веб-интерфейс

Чтобы настроить экспорт сеанса пользователя через веб-интерфейс Ключ-АСТРОМ

  1. В меню Ключ-АСТРОМ выберите « Настройки » > « Интеграция » > « Экспорт сеансов пользователей » .
  2. Выберите Добавить элемент .
  3. Укажите URL-адрес конечной точки и включите параметр Включить экспорт сеанса пользователя, если вы готовы начать получать данные сеанса пользователя. Из соображений безопасности Ключ-АСТРОМ разрешает использовать только конечные точки HTTPS.
  4. Установите Тип содержимого на application/jsonили application/x-ndjson. При отправке данных сеанса в Elasticsearch установите для него значение application/x-ndjson.
  5. Включите Использовать метод POST (вместо PUT) при отправке данных сеанса в Elasticsearch или при настройке конечной точки для приема POSTзапросов.
  6. по желанию Настройте аутентификацию , включите передачу данных в Elasticsearch или настройте область экспорта, оповещения и расширенную настройку .

Вы также можете протестировать экспорт сеанса пользователя, а также загрузить образец набора данных или образец сопоставления .

Вы можете настроить до трех конечных точек HTTPS.

Настроить аутентификацию

Ключ-АСТРОМ может отправлять данные сеанса пользователя, используя либо обычную аутентификацию, либо аутентификацию OAuth 2.0. Эти типы аутентификации позволяют защитить ваши конечные точки.

Когда вы активируете аутентификацию для конфигурации экспорта сеанса, проверьте конфигурацию перед ее сохранением.

По соображениям безопасности вам необходимо повторно ввести пароль базовой аутентификации или секрет клиента OAuth 2.0 при тестировании конфигурации экспорта сеанса. Вам также потребуется повторно ввести пароль или секрет, когда вы редактируете существующую конфигурацию экспорта сеанса с включенной аутентификацией.

Настроить базовую аутентификацию

Чтобы настроить экспорт сеанса пользователя с базовой аутентификацией

  1. На странице Экспорт сеанса пользователя разверните требуемый URL-адрес конечной точки.
  2. В разделе «Аутентификация » включите «Активировать » .
  3. Установите Обычную аутентификацию в качестве типа аутентификации.
  4. Введите имя пользователя и пароль.

Пароль зашифрован и замаскирован в вашей среде.

Настроить аутентификацию OAuth 2.0

Чтобы настроить экспорт сеанса пользователя с аутентификацией учетных данных клиента OAuth 2.0

  1. На странице Экспорт сеанса пользователя разверните требуемый URL-адрес конечной точки.
  2. В разделе «Аутентификация » включите «Активировать » .
  3. Установите OAuth 2.0 в качестве типа аутентификации.
  4. Введите URL-адрес маркера доступа, идентификатор клиента, секрет клиента и область действия (необязательно).

Секрет клиента шифруется и маскируется в вашей среде.

Дополнительная информация об аутентификации OAuth 2.0

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

  • Поток учетных данных клиента
  • Вызовите свой API, используя поток учетных данных клиента
  • Платформа авторизации OAuth 2.0 | Предоставление учетных данных клиента

Чтобы отправлять данные сеанса пользователя с использованием аутентификации OAuth 2.0, необходимо настроить сервер авторизации OAuth2 с конечной точкой токена доступа. Кроме того, убедитесь, что ваш URL-адрес конечной точки работает с токеном доступа.

Шаги ниже описывают, как работает аутентификация OAuth 2.0 для экспорта сеанса пользователя.

  1. Ключ-АСТРОМ отправляет запрос на ваш сервер авторизации для получения токена доступа. 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

  1. Убедитесь, что ваш экземпляр Elasticsearch доступен с сервера кластера. Для развертывания Ключ-АСТРОМ SaaS ваш экземпляр Elasticsearch должен быть общедоступным. Вы можете использовать SSL-сертификат и базовую аутентификацию или аутентификацию OAuth 2.0 для безопасного доступа.
  2. Убедитесь, что ваш экспортный URL-адрес имеет следующий формат: https://<your_host>:9200/_bulk. Замените <your_host>своим фактическим значением.
  3. На странице Экспорт сеанса пользователя разверните требуемый URL-адрес конечной точки.
  4. Убедитесь, что в разделе « Определить конечную точку » для параметра « Тип контента» установлено значение application/x-ndjson« Использовать метод POST» (вместо «PUT») .
  5. В разделе «Отправлять данные напрямую в Elasticsearch » включите « Активировать » .
  6. Введите имя индекса, куда отправляются данные, и тип документов в индексе Elasticsearch .

Индекс Elasticsearch

Создайте индекс, в который вы хотите отправлять данные сеанса пользователя, и определите сопоставление для вашего индекса. Подробные сведения о том, как загрузить образец сопоставления для конфигурации экспорта сеанса, см. в разделе Загрузка образца сопоставления .

Если вы не создадите индекс перед включением экспорта сеанса пользователя, ваша установка Elasticsearch автоматически создаст сопоставления для полей. Это автоматическое сопоставление не всегда создает соответствующие сопоставления полей. Например, поля даты отображаются как long.

Тип индекса Elasticsearch

Elasticsearch в настоящее время удаляет поддержку типов сопоставления. То, как вы создаете индексы и настраиваете типы, зависит от вашей версии Elasticsearch. Подробнее см. ниже.

Мы рекомендуем установить _docтип документа независимо от версии Elasticsearch, которую вы используете.

  • Эластичный поиск версии 6
    • Укажите один тип для каждого индекса.
    • При создании индекса укажите include_type_nameпараметр строки запроса, чтобы указать, что запросы и ответы должны включать имя типа. Этот параметр по умолчанию равен true. Если вы не установите его, вы получите предупреждение об устаревании. Если вы не укажете какой-либо тип при создании индекса, _docиспользуется.
  • Эластичный поиск версии 7
    • Указание типов не рекомендуется в этой версии Elasticsearch. Параметр include_type_nameпо умолчанию равен false.
    • Вы можете заставить Elasticsearch использовать имя типа, установив для параметра значение true, что приведет к предупреждению об устаревании.
  • Эластичный поиск версии 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>&gtf=<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>&timestamp=<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}
  • Адрес для документации 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