Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Телеметрия — это автоматизированный процесс сбора, передачи и анализа данных о том, как используются приложения и его функции. Включение телеметрии для флагов функций предоставляет ценные сведения о поведении и влиянии развертывания функций, помогая командам выполнять итерацию быстрее, улучшать взаимодействие с пользователем, обнаруживать проблемы раньше и проверять эффективность новых функций. С помощью телеметрии команды могут отвечать на критические вопросы, такие как:
- Включена ли функция или отключена должным образом?
- Получают ли доступ к новой функции конкретные пользователи или группы?
- Является ли функция причиной регрессии производительности или ошибок?
- Что такое влияние функции на ключевые метрики, такие как взаимодействие или преобразование?
Используя данные телеметрии, организации могут принимать информированные, управляемые данными решения, быстро выявлять и устранять проблемы, а также оптимизировать доставку функций для улучшения бизнес-результатов и пользователей.
Телеметрия — это процесс сбора, передачи и анализа данных об использовании и производительности приложения. Он помогает отслеживать поведение флага функций и принимать решения на основе данных. При развертывании изменения флага функции часто важно проанализировать его влияние на приложение. Например, вот несколько вопросов, которые могут возникнуть:
- Включены ли флаги и отключены ли они должным образом?
- Получают ли целевые пользователи доступ к определенной функции должным образом?
- Как вариант влияет на взаимодействие с клиентами?
Эти типы вопросов можно ответить с помощью выбросов и анализа событий оценки флага признаков.
Предпосылки
- Флаг функциональности, созданный в Use variant feature flags.
Подключение к Application Insights
Откройте хранилище конфигурации приложений на портале Azure.
В разделе телеметрии выберите панель Application Insights (предварительная версия).
Выберите подписку, группу ресурсов. Затем выберите существующий ресурс Application Insights, к которому вы хотите подключиться к хранилищу конфигурации приложений, или выберите "Создать" , чтобы создать новый ресурс Application Insights.
Нажмите кнопку "Подключить ".
Включение телеметрии для флага функции
Откройте хранилище конфигурации приложений на портале Azure и выберите колонку диспетчера компонентов в разделе "Операции ".
Выберите флаг компонента с именем Приветствие. Если у вас его нет, следуйте инструкциям по его созданию. Затем щелкните правой кнопкой мыши флаг компонента и нажмите кнопку "Изменить".
В новом представлении выберите вкладку "Телеметрия ".
Установите флажок "Включить телеметрию" , а затем нажмите кнопку "Просмотр и обновление " в нижней части страницы.
Перейдите к следующим инструкциям, чтобы использовать телеметрию в приложении для языка или платформы, которую вы используете.
Просмотр результатов телеметрии в конфигурации приложений Azure
Перейдите к колонке Application Insights на портале конфигурации приложений. Вы увидите граф, отображающий все события из приложения. Этот граф предоставляет начальный обзор шаблонов действий.
Используйте селектор диапазона времени, чтобы сосредоточиться на определенных периодах для выявления тенденций или изучения конкретных периодов времени, интересующих вас.
Фильтрация по флагу компонента
- Щелкните раскрывающееся меню над графом событий
- В разделе "Флаги компонентов" с событиями выберите флаг функции
- Теперь граф будет отображать только события, связанные с оценками флага функции.
Чтобы получить доступ к более подробной телеметрии, нажмите кнопку "Просмотреть сведения" , чтобы открыть вкладку телеметрии.
Замечание
Вы также можете получить доступ к этой вкладке, перейдя к диспетчеру компонентов и щелкнув "Просмотреть события " в столбце телеметрии для флага интересующей функции.
Проверка назначений вариантов
На вкладке телеметрии можно просмотреть следующее:
- Общее количество событий оценки, создаваемых приложением
- Уникальные пользователи: количество отдельных пользователей, на которых были нацелены и для которых были зафиксированы события.
Чтобы отобразить распределение пользователей и количество оценок по вариантам Простой, Длинный и Нет, группируйте метрики по указанным вариантам. Это группирование позволяет узнать, работают ли настроенные распределения должным образом и все ожидаемые варианты предоставляются пользователям.
В этом примере мы видим, что число пользователей, назначенных варианту "None", почти в два раза превышает число пользователей, назначенных вариантам "Simple" и "Long", учитывая настроенное 50-25-25 распределение между "None", "Simple" и "Long" соответственно.
Подтвердите переопределения и поведение в зависимости от состояния флага
Пользователи могут получать вариант по разным причинам. Вы хотите убедиться, что распределение вариантов не только в правильной пропорции, но и по соответствующей причине. Вы можете группировать метрики по причине назначения. В этом примере мы видим, что единственная причина назначения обусловлена исключительно выделением процентиля.
Отключите флаг функции, перейдя в диспетчер функций и отключив опцию "Включить".
В столбце телеметрии щелкните "Просмотреть события ", чтобы перейти на вкладку телеметрии в режиме только для чтения.
Просмотр количества уникальных пользователей по варианту. Вы должны увидеть, что все назначения для Long и Simple становятся нулевыми. Для пользователей назначается только вариант None, который используется по умолчанию в нашем случае.
Переключитесь на просмотр уникального количества пользователей по причине назначения. Подтвердите на графике, что выделения процентиля упали до нуля, и DefaultWhenDisabled является единственной причиной назначения пользователей вариантов.
Другие возможные причины включают "DefaultWhenEnabled", "Group" или "User", если настроено.
Анализ телеметрии в Application Insights
Теперь, когда вы подтвердили, что выделения флагов функций работают должным образом, вы можете глубже погрузиться в анализ событий телеметрии, чтобы узнать, как различные варианты работают на основе лайков, полученных от пользователей.
Откройте ресурс Application Insights на портале Azure и выберите журналы в разделе Мониторинг. В окне запроса выполните следующий запрос, чтобы просмотреть события телеметрии:
// Step 1: Get distinct users and their Variant from FeatureEvaluation (Replace <store-endpoint> with your store's endpoint)
let evaluated_users =
customEvents
| where name == "FeatureEvaluation"
| where tostring(customDimensions.FeatureFlagReference) == "https://<store-endpoint>/kv/.appconfig.featureflag/Greeting"
| extend TargetingId = tostring(customDimensions.TargetingId),
Variant = tostring(customDimensions.Variant)
| summarize Variant = any(Variant) by TargetingId;
// Step 2: Get distinct users who emitted a "Like"
let liked_users =
customEvents
| where name == "Liked"
| extend TargetingId = tostring(customDimensions.TargetingId)
| summarize by TargetingId;
// Step 3: Join them to get only the evaluated users who also liked
let hearted_users =
evaluated_users
| join kind=inner (liked_users) on TargetingId
| summarize HeartedUsers = dcount(TargetingId) by Variant;
// Step 4: Total evaluated users per variant
let total_users =
evaluated_users
| summarize TotalUsers = dcount(TargetingId) by Variant;
// Step 5: Combine results
let combined_data =
total_users
| join kind=leftouter (hearted_users) on Variant
| extend HeartedUsers = coalesce(HeartedUsers, 0)
| extend PercentageHearted = strcat(round(HeartedUsers * 100.0 / TotalUsers, 1), "%")
| project Variant, TotalUsers, HeartedUsers, PercentageHearted;
// Step 6: Add total row
let total_sum =
combined_data
| summarize Variant="All", TotalUsers = sum(TotalUsers), HeartedUsers = sum(HeartedUsers);
// Step 7: Output
combined_data
| union (total_sum)
При каждой загрузке страницы с цитатой регистрируется одно событие FeatureEvaluation и одно событие "Нравится" при каждом нажатии кнопки "Нравится". События FeatureEvaluation имеют настраиваемое свойство FeatureName с именем вычисляемого флага компонента. Оба события имеют настраиваемое свойство, называемое TargetingId с именем пользователя, которому понравилась цитата.
В этом примере мы видим, что, несмотря на то, что число пользователей, получающих варианты Long и Simple, было примерно одинаковым, вариант Simple выполняется лучше на 22%.