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

Материал из Документация Ключ-АСТРОМ


Dynatrace может постоянно отправлять данные сеанса пользователя на указанную конечную точку веб-перехватчика.

Чтобы начать получать данные о сеансе пользователя, вам необходимо настроить конечную точку, а затем настроить экспорт сеанса через веб-интерфейс Dynatrace или через API настроек .

Dynatrace массово отправляет данные о завершенных пользовательских сеансах на все определенные конечные точки с сбросом каждые несколько секунд для экспорта данных, как только пользовательский сеанс помечен как завершенный. Передача данных происходит, как только выполняется одно из следующих условий:

  • Завершено 1000 сеансов пользователей
  • Общий размер превышает 896 000 байт.
  • Ни один пользовательский сеанс не завершился за последние 30 секунд.

Чтобы предотвратить перегрузку системы, Dynatrace отменяет запрос, если ваша конечная точка не отвечает в течение 30 секунд. Dynatrace повторяет попытку еще три раза, прежде чем, наконец, отклонит запрос и отправит предупреждение с сообщением об ошибке тайм- аута запроса .

Определите свою конечную точку

Сервер, предоставляющий веб-перехватчик, должен прослушивать PUTили POSTзапрашивать URL-адрес, указанный как часть конфигурации экспорта сеанса. Кроме того, из соображений безопасности Dynatrace разрешает использовать только конечные точки 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 line : lines) {
            ...
            // handle the JSON-data
        }

        return JResponse.ok("")
            .header(HttpHeaders.SERVER, "Endpoint for Dynatrace session data export")
            .build();
    }
}

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

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

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

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

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

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

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

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

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

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

  1. Dynatrace отправляет запрос на ваш сервер авторизации для получения токена доступа. 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. Dynatrace отправляет запрос 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 доступен с сервера кластера. Для развертывания Dynatrace 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 автоматически создаст сопоставления для полей. Это автоматическое сопоставление не всегда создает соответствующие сопоставления полей. Например, поля даты отображаются как long.

Тип индекса Elasticsearch

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

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

  • Эластичный поиск версии 6
    • Укажите один тип для каждого индекса.
    • При создании индекса укажите include_type_nameпараметр строки запроса, чтобы указать, что запросы и ответы должны включать имя типа. Этот параметр по умолчанию равен true. Если вы не установите его, вы получите предупреждение об устаревании. Если вы не укажете какой-либо тип при создании индекса, _docиспользуется.
  • Эластичный поиск версии 7
    • Указание типов не рекомендуется в этой версии Elasticsearch. Параметр include_type_nameпо умолчанию равен false.
    • Вы можете заставить Elasticsearch использовать имя типа, установив для параметра значение true, что приведет к предупреждению об устаревании.
  • Эластичный поиск версии 8
    • Указание типов больше не поддерживается. Начиная с этой версии, не указывайте тип документа. Дополнительные сведения см. в разделе Удаление типов сопоставления .

Typeотносится к «типу индекса», используемому в Elasticsearch, и не ограничивает, какие сеансы пользователей экспортируются. Независимо от типа, который вы выбрали для настройки, все данные сеанса пользователя, включая действия пользователя, события и ошибки, экспортируются.

Чтобы ограничить сеансы пользователей, которые вы экспортируете, вы можете определить зону управления. См . раздел Настройка области экспорта, предупреждений и расширенной настройки ниже.

Настройка области экспорта, предупреждений и расширенной конфигурации

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

  • Объем экспорта . Чтобы определить область экспорта вашей пользовательской сессии, выберите нужную зону управления . После того, как вы настроите зону управления, Dynatrace отправляет только те пользовательские сеансы, которые имеют хотя бы одно действие пользователя с соответствующим приложением. Ограничение экспорта сеанса только синтетическими сеансами пользователей в настоящее время невозможно.
  • Оповещение . Включите параметр «Отключить уведомление » , если вы не хотите получать уведомления в случае сбоя экспорта сеанса пользователя.
  • Пользовательская конфигурация . Укажите пользовательские свойства конфигурации для дальнейшей настройки конфигурации экспорта сеанса пользователя. Перед изменением этого поля обратитесь в службу поддержки Dynatrace.

Если у вас возникли проблемы с экспортом сеанса пользователя, обратитесь в службу поддержки Dynatrace, прежде чем настраивать какие-либо дополнительные свойства.

Тестовый экспорт

Чтобы протестировать конфигурацию экспорта сеанса пользователя, разверните требуемый URL-адрес конечной точки на странице экспорта сеанса пользователя и выберите « Проверить экспорт» .

Если кнопка « Проверить экспорт » отключена, скорее всего, ваш URL- адрес конечной точки или URL-адрес токена доступа указывает протокол HTTP. Из соображений безопасности Dynatrace разрешает использовать только протокол HTTPS.

Dynatrace использует текущую конфигурацию экспорта сеансов для экспорта до 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"}]}