Создание пользовательских метрик USQL для веб-приложений
Создание пользовательских метрик USQL для веб-приложений
С помощью событий метрик USQL вы можете извлекать ключевые показатели эффективности (KPI) на уровне бизнеса из данных о пользовательских сессиях и действиях пользователей и сохранять эти метрики в виде временных рядов. Затем вы можете использовать сохраненные метрики в пользовательских диаграммах, механизмах оповещения или API метрик.
Метрики событий USQL доступны в следующем формате:
- Метрики событий пользовательских сессий — сокращенно USCM, имеют префикс
uscm.. - Метрики действий пользователей — сокращенно UACM, имеют префикс
uacm..
Метрики действий пользователей доступны, начиная с версии Ключ-АСТРОМ 1.260.
Метрики событий USQL могут помочь ответить на такие вопросы, как:
- Как меняется индекс пользовательского опыта моего сайта с течением времени?
- Как меняется индекс Apdex для определенного типа действий пользователя с течением времени?
- Как меняется доход, получаемый от моих пользователей, с течением времени?
- Сколько пользователей посещают мой сайт и какие браузеры они используют?
- Какова средняя продолжительность сеанса работы моего веб-приложения?
- Какова средняя продолжительность действий пользователя при использовании моего мобильного приложения?
Вы можете создавать и управлять событиями метрик USQL, используя либо веб-интерфейс Ключ-АСТРОМ, либо API настроек Ключ-АСТРОМ.
Настройка метрик через пользовательский интерфейс
С помощью веб-интерфейса Ключ-АСТРОМ вы можете создавать и управлять событиями метрик USQL.
- Перейдите в Настройки > Веб- и мобильный мониторинг > События метрик пользовательских сессий или События метрик действий пользователей.
- Выберите Добавить элемент.
- Введите ключ метрики, который следует использовать при импорте метрики. Этот ключ будет использоваться при запросе данных метрики через Визуализацию данных.
- Для событий метрик пользовательских сессий начинайте ключ метрики с префикса
uscm.. - Для событий метрик, связанных с действиями пользователей, начинайте ключ метрики с префикса
uacm..
- Для событий метрик пользовательских сессий начинайте ключ метрики с префикса
- В поле Тип извлекаемого значения выберите один из следующих вариантов:
- Для событий метрик пользовательских сессий:
- Счетчик пользовательских сессий — подсчет количества пользовательских сессий, аналогично
COUNT(*)в USQL. - Значение поля пользовательской сессии — извлечение значения поля, укажите также имя поля. Возможные значения см. в разделе «Значения для событий метрик пользовательской сессии».
- Счетчик пользовательских сессий — подсчет количества пользовательских сессий, аналогично
- Для событий, отражающих действия пользователей:
- Счетчик действий пользователя — подсчет количества действий пользователя, аналогично
COUNT(*)в USQL. - Значение поля действия пользователя — извлечение значения поля, укажите также имя поля. Возможные значения см. в разделе «Значения для событий метрик действий пользователя».
- Счетчик действий пользователя — подсчет количества действий пользователя, аналогично
- Для событий метрик пользовательских сессий:
- В разделе Добавить измерение укажите поля, которые следует использовать в качестве измерений. Возможные значения см. в разделах «Измерения для событий метрик пользовательской сессии» и «Измерения для событий метрик действий пользователя».
- В разделе Добавить фильтр укажите необходимые фильтры.
- Введите имя поля. Возможные значения см. в разделах «Фильтры для событий метрик пользовательской сессии» или «Фильтры для событий метрик действий пользователя».
- Выберите оператор.
- Если вы выбрали один из бинарных операторов, например, «равно» или «больше», укажите также второй аргумент в текстовом поле Значение.
В качестве альтернативы вы можете использовать USQL для создания событий метрик USQL.
Настройка метрик через API
Также вы можете использовать API настроек для конфигурации событий метрик USQL.
- Создайте токен доступа с правами на запись настроек (
settings.write) и чтение настроек (settings.read). - Используйте конечную точку GET для получения схемы, чтобы узнать формат JSON, необходимый для отправки вашей конфигурации.
- Идентификатор схемы конфигурации метрик для пользовательских сессий (
schemaId) —builtin:custom-metrics. Для действий пользователей —builtin:user-action-custom-metrics.
Пример полезной нагрузки JSON для пользовательской метрики сессии
[
{
"schemaVersion" : "0.0.4",
"schemaId" : "builtin:custom-metrics",
"scope" : "tenant",
"value" : {
"enabled" : true,
"metricKey" : "uscm.sessions_by_browser_family_and_country_easytravel",
"value" : {
"type" : "COUNTER"
},
"dimensions" : [
"browserFamily",
"country"
],
"filters" : [
{
"fieldName" : "useraction.application",
"operator" : "equals",
"value" : "www.easytravel.com"
},
{
"fieldName" : "userType",
"operator" : "equals",
"value" : "REAL_USER"
}
]
}
}
]
|
Пример полезной нагрузки JSON для пользовательской метрики действий пользователя
[
{
"schemaVersion" : "1.0.0",
"schemaId" : "builtin:user-action-custom-metrics",
"scope" : "tenant",
"value" : {
"enabled" : true,
"metricKey" : "uacm.actions_by_type_and_country_easytravel",
"value" : {
"type" : "COUNTER"
},
"dimensions" : [
"type",
"usersession.country"
],
"filters" : [
{
"fieldName" : "application",
"operator" : "equals",
"value" : "www.easytravel.com"
},
{
"fieldName" : "usersession.userType",
"operator" : "equals",
"value" : "REAL_USER"
}
]
}
}
]
|
Используйте конечную точку POST для отправки объекта, чтобы передать вашу конфигурацию.
Параметры конфигурации
| Свойство | Описание | Возможные значения |
|---|---|---|
enabled |
Определяет, включена ли пользовательская метрика USQL. Установите false, чтобы временно отключить метрику. |
true или false
|
metricKey |
Ключ метрики, используемый при загрузке метрики. Используйте этот ключ при запросе данных метрики через Визуализацию данных. Для событий метрик пользовательских сессий ключ метрики должен начинаться с префикса uscm..Для событий метрик, связанных с действиями пользователей, ключ метрики должен начинаться с префикса uacm.. |
|
value |
Источник значения метрики. | |
value.type |
Чтобы подсчитать количество пользовательских сессий или действий пользователей, аналогично COUNT(*) в USQL, установите значение COUNTER.Чтобы извлечь значение поля пользовательской сессии или действия пользователя, установите значение FIELD. |
COUNTER или FIELD
|
value.fieldName |
Если value.type=FIELD, указывается имя поля пользовательской сессии или действия пользователя. |
См. «Значения для событий метрик пользовательской сессии» и «Значения для событий метрик действий пользователя» |
dimensions |
Список полей, используемых в качестве измерений. | См. «Измерения для событий метрик пользовательской сессии» и «Измерения для событий метрик действий пользователя» |
filters |
Указывает фильтры. | |
filter.fieldName |
Указывает имя поля фильтра. | См. «Фильтры для событий метрик пользовательской сессии» и «Фильтры для событий метрик действий пользователя» |
filter.operator |
Указывает оператора. | EQUALS, NOT_EQUAL, IS_NULL, IS_NOT_NULL, LIKE, LESS_THAN, LESS_THAN_OR_EQUAL_TO, GREATER_THAN, GREATER_THAN_OR_EQUAL_TO
|
filter.value |
Предоставляет второй аргумент для бинарных операторов (таких как EQUALS или GREATER_THAN). |
Поддерживаемые значения, размеры и фильтры
Значения для событий метрик пользовательской сессии
- В качестве значения поддерживаются только поля пользовательской сессии. Поля действий пользователя в качестве значения не поддерживаются.
- Все имена полей должны совпадать с именами полей USQL.
- Префикс
usersession.в названии поля необязателен. Например,usersession.durationиdurationозначают одно и то же. - Если в заданном поле содержится значение
null, метрика игнорируется, но Ключ-АСТРОМ использует самодиагностику для выявления таких случаев.
Поддерживаемые поля:
durationnumberOfRageClicksnumberOfRageTapstotalErrorCounttotalLicenseCreditCountuserActionCountlongProperties.*(любое пользовательское свойство типа long, например,longProperties.outerwidth)doubleProperties.*(любое пользовательское свойство типа double, например,doubleProperties.revenue)
Размеры для событий метрик пользовательской сессии
- Поддерживаются как поля пользовательской сессии, так и поля действий пользователя. Поддержка полей действий пользователя начинается с версии Ключ-АСТРОМ 1.234.
- Все имена полей должны совпадать с именами полей USQL.
- Для имени поля пользовательской сессии префикс
usersession.является необязательным. При обработке метрики префиксusersession.отбрасывается. - Для имени поля действия пользователя префикс
useraction.является обязательным. При обработке метрики префиксuseraction.сохраняется. - К пользовательской метрике одной пользовательской сессии можно добавить до 10 измерений.
- Если поле, настроенное как измерение, содержит строку
null, Ключ-АСТРОМ использует эту строкуnullв качестве значения измерения. - Если вы используете
useraction.applicationкак измерение, и пользовательская сессия охватывает несколько приложений, значение пользовательской метрики пользовательской сессии записывается для каждого приложения. Чтобы избежать двойного учета значения, разделите метрику по приложениям.
Поля пользовательской сессии, поддерживаемые в качестве измерений:
appVersion,applicationType,bounce,browserFamily,browserMajorVersion,browserType,carrier,region,continent,country,connectionType,device,displayResolution,endReason,hasCrash,hasError,hasSessionReplay,manufacturer,networkTechnology,newUser,osFamily,osVersion,reasonForNoSessionReplay,reasonForNoSessionReplayMobile,rootedOrJailbroken,screenHeight,screenOrientation,screenWidth,userExperienceScore,userType,stringProperties.*(любое пользовательское строковое свойство, используйте поля с низкой кардинальностью).
Поля действий пользователя, поддерживаемые в качестве измерений:
useraction.application(поддерживается начиная с версии Ключ-АСТРОМ 1.234)
Фильтры для событий метрик пользовательских сессий
- Поддерживаются как поля пользовательской сессии, так и поля действий пользователя.
- Все имена полей должны совпадать с именами полей USQL.
- Для имени поля пользовательской сессии префикс
usersession.необязателен. - Для имени поля действия пользователя префикс
useraction.является обязательным. - При добавлении нескольких фильтров все они должны совпадать — фильтры объединяются с помощью AND.
- Фильтры, использующие поле «Действие пользователя», требуют наличия хотя бы одного действия пользователя для сопоставления. Сопоставление действий пользователя осуществляется с помощью ANY.
- Для одной пользовательской сессии можно настроить до 10 фильтров по пользовательской метрике.
Поля пользовательской сессии, поддерживаемые в качестве фильтров:
appVersion,applicationType,bounce,browserFamily,browserMajorVersion,browserMonitorName,browserType,carrier,city,region,continent,country,connectionType,device,displayResolution,duration,endReason,hasCrash,hasError,hasSessionReplay,ip,isp,manufacturer,networkTechnology,newUser,numberOfRageClicks,osFamily,osVersion,reasonForNoSessionReplay,reasonForNoSessionReplayMobile,rootedOrJailbroken,screenHeight,screenOrientation,screenWidth,totalErrorCount,totalLicenseCreditCount,userActionCount,userExperienceScore,userId,userType,longProperties.*,doubleProperties.*,stringProperties.*(любое пользовательское свойство типа long, double или string).
Поля действий пользователя, поддерживаемые в качестве фильтров:
useraction.apdexCategory,useraction.application,useraction.cdnBusyTime,useraction.cdnResources,useraction.customErrorCount,useraction.domCompleteTime,useraction.domContentLoadedTime,useraction.documentInteractiveTime,useraction.domain,useraction.duration,useraction.firstInputDelay,useraction.firstPartyBusyTime,useraction.firstPartyResources,useraction.frontendTime,useraction.hasCrash,useraction.internalApplicationId,useraction.internalKeyUserActionId,useraction.javascriptErrorCount,useraction.keyUserAction,useraction.largestContentfulPaint,useraction.name,useraction.networkTime,useraction.requestErrorCount,useraction.serverTime,useraction.speedIndex,useraction.targetUrl,useraction.thirdPartyBusyTime,useraction.thirdPartyResources,useraction.type,useraction.visuallyCompleteTime.
Значения для событий метрик действий пользователя
- В качестве значений поддерживаются поля "Пользовательская сессия" и "Пользовательские действия".
- Все имена полей должны совпадать с именами полей USQL.
- Для полей действий пользователя префикс
useraction.необязателен. - Для полей пользовательской сессии префикс
usersession.обязателен. - Если в заданном поле содержится значение
null, метрика игнорируется.
Поля действий пользователя, поддерживаемые в качестве значений:
speedIndex,duration,networkTime,serverTime,frontendTime,documentInteractiveTime,firstPartyResources,firstPartyBusyTime,thirdPartyResources,thirdPartyBusyTime,cdnResources,cdnBusyTime,domCompleteTime,domContentLoadedTime,loadEventStart,loadEventEnd,visuallyCompleteTime,requestStart,responseStart,responseEnd,userActionPropertyCount,customErrorCount,javascriptErrorCount,requestErrorCount,largestContentfulPaint,firstInputDelay,totalBlockingTime(устаревший),cumulativeLayoutShift,longProperties.*,doubleProperties.*(любое пользовательское свойство типа long или double).
Поля пользовательской сессии, поддерживаемые в качестве значений:
usersession.duration,usersession.numberOfRageClicks,usersession.numberOfRageTaps,usersession.totalErrorCount,usersession.totalLicenseCreditCount,usersession.userActionCount,usersession.longProperties.*,usersession.doubleProperties.*(любое пользовательское свойство типа long или double).
Размеры для событий метрик действий пользователя
- Поддерживаются как поля пользовательской сессии, так и поля действий пользователя.
- Все имена полей должны совпадать с именами полей USQL.
- Для полей действий пользователя префикс
useraction.является необязательным. При обработке метрики префиксuseraction.отбрасывается. - Для полей пользовательской сессии префикс
usersession.обязателен. При обработке метрики префиксusersession.сохраняется. - Для пользовательской метрики действий пользователя можно указать до 4 измерений, но только 2 из них могут быть измерениями с высокой кардинальностью.
- Если поле содержит строку
null, она используется как значение измерения.
Поля действий пользователя, поддерживаемые в качестве измерений:
application,hasCrash,type,apdexCategory,internalApplicationId,internalKeyUserActionId,keyUserAction,isEntryAction,isExitAction,stringProperties.*(любое пользовательское строковое свойство, используйте поля с низкой кардинальностью).
Поля пользовательской сессии, поддерживаемые в качестве измерений:
usersession.appVersion,usersession.applicationType,usersession.bounce,usersession.browserFamily,usersession.browserMajorVersion,usersession.browserType,usersession.carrier,usersession.region,usersession.continent,usersession.country,usersession.connectionType,usersession.device,usersession.displayResolution,usersession.endReason,usersession.hasCrash,usersession.hasError,usersession.hasSessionReplay,usersession.manufacturer,usersession.networkTechnology,usersession.newUser,usersession.osFamily,usersession.osVersion,usersession.reasonForNoSessionReplay,usersession.reasonForNoSessionReplayMobile,usersession.rootedOrJailbroken,usersession.screenHeight,usersession.screenOrientation,usersession.screenWidth,usersession.userExperienceScore,usersession.userType,usersession.stringProperties.*(любое пользовательское строковое свойство).
Фильтры для событий метрик действий пользователей
- Поддерживаются как поля пользовательской сессии, так и поля действий пользователя.
- Все имена полей должны совпадать с именами полей USQL.
- Для полей действий пользователя префикс
useraction.необязателен. - Для полей пользовательской сессии префикс
usersession.обязателен. - При добавлении нескольких фильтров они объединяются с помощью AND.
- Для одной метрики действий пользователя можно настроить до 10 фильтров.
Поля действий пользователя, поддерживаемые в качестве фильтров:
apdexCategory,application,cdnBusyTime,cdnResources,customErrorCount,cumulativeLayoutShift,domCompleteTime,domContentLoadedTime,documentInteractiveTime,domain,duration,firstInputDelay,firstPartyBusyTime,firstPartyResources,frontendTime,hasCrash,internalApplicationId,internalKeyUserActionId,isEntryAction,isExitAction,javascriptErrorCount,keyUserAction,largestContentfulPaint,loadEventStart,loadEventEnd,name,networkTime,requestErrorCount,requestStart,responseStart,responseEnd,serverTime,speedIndex,targetUrl,thirdPartyBusyTime,thirdPartyResources,totalBlockingTime(устаревший),type,userActionPropertyCount,visuallyCompleteTime,syntheticEvent,longProperties.*,doubleProperties.*,stringProperties.*.
Поля пользовательской сессии, поддерживаемые в качестве фильтров:
usersession.appVersion,usersession.applicationType,usersession.bounce,usersession.browserFamily,usersession.browserMajorVersion,usersession.browserMonitorName,usersession.browserType,usersession.carrier,usersession.city,usersession.region,usersession.continent,usersession.country,usersession.connectionType,usersession.device,usersession.displayResolution,usersession.duration,usersession.endReason,usersession.hasCrash,usersession.hasError,usersession.hasSessionReplay,usersession.ip,usersession.isp,usersession.manufacturer,usersession.networkTechnology,usersession.newUser,usersession.numberOfRageClicks,usersession.numberOfRageTaps,usersession.osFamily,usersession.osVersion,usersession.reasonForNoSessionReplay,usersession.reasonForNoSessionReplayMobile,usersession.rootedOrJailbroken,usersession.screenHeight,usersession.screenOrientation,usersession.screenWidth,usersession.totalErrorCount,usersession.totalLicenseCreditCount,usersession.userActionCount,usersession.userExperienceScore,usersession.userId,usersession.userType,usersession.longProperties.*,usersession.doubleProperties.*,usersession.stringProperties.*.
Известные ограничения
- В каждой среде можно создать до 500 пользовательских метрик для каждой сессии.
- В каждой среде можно создать до 100 пользовательских метрик, отслеживающих действия пользователей.
- Синтетические данные пользовательских сессий не учитываются при расчете значений метрик событий USQL; включаются только данные реальных пользователей.
- Ключ-АСТРОМ обновляет события метрик USQL каждый раз, когда сессия закрывается. Это означает, что данные о текущей сессии не учитываются в значениях пользовательских метрик USQL; включаются только данные о закрытых сессиях.
- Ключевое слово
DISTINCT, используемое в USQL, не поддерживается. Если у вас есть запрос, подобныйSELECT COUNT(DISTINCT country) from usersession, создать эквивалентную пользовательскую метрику USQL невозможно.
Учебное пособие
Шаг 1. Создайте метрику
Используя веб-интерфейс Ключ-АСТРОМ, создадим пользовательскую метрику «Средняя продолжительность сеанса пользователя» (USCM) на основе данных о сеансах реальных пользователей. Метрика будет включать два измерения для сегментации данных о сеансах по семейству браузеров и основным версиям браузеров. Затем, используя эту метрику, создадим диаграмму, закрепим ее на панели мониторинга и создадим пользовательское событие для метрики, чтобы получать оповещения, когда значение метрики превысит заданный порог.
- Перейдите в Настройки > Веб- и мобильный мониторинг > События метрик пользовательских сессий.
- Выберите Добавить элемент.
- Введите
uscm.average_duration_of_sessions_by_browser_family_and_versionв качестве ключа метрики. - В разделе Тип извлекаемого значения выберите Значение поля пользовательской сессии и задайте имя поля
duration. - Выберите Добавить измерение и добавьте измерения
browserFamilyиbrowserMajorVersion. - В разделе Добавить фильтр укажите следующие фильтры:
userType=REAL_USER(Имя поля:userType, Оператор:equals, Значение:REAL_USER)useraction.application=www.easytravel.com(Имя поля:useraction.application, Оператор:equals, Значение:www.easytravel.com). Вместо значенияwww.easytravel.comможно использовать имя собственного приложения.
- Выберите Сохранить изменения.
Теперь у вас есть настраиваемая метрика пользовательской сессии, которая извлекается как поле (duration) только тогда, когда useraction.application равно www.easytravel.com (фильтрация для конкретного приложения) и userType равно REAL_USER (фильтрация только для реальных пользователей). Кроме того, вы добавили два измерения, которые позволяют разделять данные на основе семейства браузеров или основной версии браузера.
Шаг 2. Создайте и закрепите диаграмму
После получения данных пользовательской сессии и заполнения метрики вы можете построить график этой метрики, закрепить график на панели мониторинга и даже создать оповещение на основе этой метрики.
- Перейдите в Визуализацию данных.
- Выберите метрику
uscm.average_duration_of_sessions_by_browser_family_and_versionи нажмите Выполнить запрос. - С помощью Визуализации данных разделите собранные данные, чтобы увидеть данные пользовательской сессии, разбитые по
browserMajorVersion,browserFamilyили по обоим факторам. - Фильтруйте данные пользовательских сессий на основе определенных критериев
browserMajorVersionилиbrowserFamily, чтобы сосредоточиться на интересующих данных. - После создания диаграммы закрепите ее на панели мониторинга: выберите Закрепить на панели мониторинга, выберите одну из ваших панелей мониторинга и введите название плитки.
Шаг 3. Создайте оповещение
- Перейдите в Настройки > Обнаружение аномалий > События метрик.
- Выберите Добавить событие метрики.
- Создайте событие метрики на основе метрики
uscm.average_duration_of_sessions_by_browser_family_and_version. Подробности см. в разделе «События метрик».
Часто задаваемые вопросы
Я вижу данные пользовательской сессии, но не вижу данные событий метрик USQL в Визуализации данных. Убедитесь, что пользовательская сессия неактивна. Ключ-АСТРОМ извлекает и сохраняет данные метрик во временные ряды только после закрытия пользовательской сессии.
Почему в Визуализации данных не отображаются события метрик USQL для активных сессий? По мере закрытия сессий в приложениях они перемещаются в очередь для последующей обработки. Затем ряд фоновых процессов извлекает метрические данные из пользовательских сессий, подготавливая данные для их сбора.
Почему результаты моих запросов к USQL не соответствуют событиям метрик USQL? Синтетические данные пользовательских сессий не учитываются в метрических событиях USQL. Исключите синтетические сессии из запроса. Также убедитесь, что к запросу и метрике применяется один и тот же временной интервал.
Как осуществляется выставление счетов за события метрик USQL? Начиная с версии Ключ-АСТРОМ 1.232, события метрик USQL регулируются лицензией Davis Data Unit (DDU). Эти метрики позиционируются как обычные бессхемные метрики. Для оценки стоимости по каждому показателю анализируются сессии за последние 7 дней, и стоимость в DDU на каждый показатель рассчитывается в соответствии с ожидаемым объемом входящих данных в минуту.
Какова точность интервалов для событий метрик USQL? В Ключ-АСТРОМ для сохранения метрических данных используется стратегия хранения данных, которая агрегирует метрики во времени. Стратегия хранения данных, применяемая к событиям метрик USQL, идентична стратегии хранения данных, используемой для встроенных метрик временных рядов.