Анализ формируемых системой журналов с помощью Application Insights

Вы можете подключить свои приложения на основе холста к Application Insights — одной из функций Azure Monitor. В Application Insights состав входят мощные аналитические инструменты, которые помогут вам диагностировать проблемы и понять, что пользователи на самом деле делают с вашими приложениями. Вы сможете собирать информацию, которая поможет вам принимать более эффективные бизнес-решения и улучшать качество ваших приложений.

В этом кратком руководстве мы будем использовать приложение на основе холста под названием Kudos, чтобы рассмотреть концепции, связанные с формируемыми системой журналами в приложениях на основе холста, и научиться применять их к вашим приложениям. Приложение-пример Kudos входит в набор приложений для работы с сотрудниками, доступных для скачивания в составе пакета Начальный набор для работы с сотрудниками.

Предварительные условия

Примечание

Чтобы просмотреть информацию телеметрии, администратор вашего клиента должен включить параметр Аналитика приложений на основе холста. Войдите как администратор в Центр администрирования Power Platform. Перейдите в раздел Параметры > Параметры клиента > Аналитика приложений на основе холста. В области Аналитика приложений на основе холста установите переключатель в положение Вкл. и сохраните изменения. Дополнительные сведения см. в разделе Параметры клиента.

Необязательно

Создание ресурса Application Insights

Прежде чем вы сможете отправлять формируемые системой журналы из приложения, вам нужно создать ресурс Application Insights для хранения событий.

  1. Войдите на портал Azure.

  2. Выполните поиск Application Insights:

    Application Insights.

  3. Создайте ресурс Application Insights:

    Добавление ресурса Application Insights.

  4. Введите соответствующие значения и выберите Проверить и создать.

    Дополнительные сведения см. в разделе Создание ресурса Application Insights.

    Создание ресурса.

  5. После того как экземпляр Application Insights создан, скопируйте Ключ инструментирования в обзоре экземпляра для использования на следующем шаге.

    Скопируйте ключ инструментирования.

Подключение приложения к Application Insights

Примечание

  • При указании ключа инструментирования помните, что данные могут передаваться между клиентами. События трассировки отправляются в ресурс App Insights, который соответствует ключу инструментирования, установленному для вашего приложения, даже если целевой экземпляр App Insights находится в другом клиенте, чем приложение.
  • Будьте осторожны при импорте существующих файлов .msapp, так как могут присутствовать ключи инструментирования для App Insights. Вручную откройте приложение после импорта, чтобы убедиться, что используется правильный ключ инструментирования App Insights.
  1. Войдите в Power Apps.

  2. Выберите Приложения в левой области переходов. Из списка приложений выберите приложение Kudos, затем выберите Изменить:

    Изменение приложения Kudos.

    Примечание

    Вы также можете создать новое приложение или изменить любое существующее приложение.

  3. Выберите объект Приложение в левом дереве навигации и вставьте Ключ инструментирования:

    Добавление ключа инструментирования.

  4. Выполните действия Сохранить и Опубликовать для приложения.

  5. Воспроизведите опубликованное приложение и просмотрите различные экраны.

При просмотре вами экранов приложения события автоматически регистрируются в Application Insights, включая детали использования, такие как:

  • Откуда осуществляется доступ к приложению
  • Какие устройства используются
  • Какие тип браузеров используются

Важно!

Вы должны воспроизвести опубликованное приложение, чтобы отправить события в Application Insights. События не отправляются в Application Insights, когда вы предварительно просматриваете приложение в Power Apps Studio.

Просмотр событий в Application Insights

  1. Войдите в портал Azure и откройте ресурс Application Insights, который вы создали ранее.

  2. Прокрутите вниз в левой панели навигации и выберите Пользователи в разделе Потребление.

    Примечание

    В представлении Пользователи отображаются подробности использования приложения, такие как:

    • Количество пользователей, просмотревших приложение
    • Количество сеансов пользователей
    • Количество зарегистрированных событий
    • Сведения об операционных системах и версиях браузера пользователей
    • Регион и местонахождение пользователей

    Узнайте больше об анализе пользователей, сеансов и событий в Application Insights.

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

    Подробности использования для пользователей.

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

    Детали событий для приложения.

Совет

Доступны дополнительные функции Application Insights, такие как:

Создание пользовательских событий трассировки

Вы можете написать собственные пользовательские трассировки непосредственно в Application Insights и начать анализировать информацию, специфичную для вашего сценария. Функция трассировки позволяет собирать следующие данные:

  • Детальная информация об использовании элементов управления на экранах
  • Какие конкретные пользователи осуществляют доступ к вашему приложению
  • Какие ошибки происходят

Трассировка также может помочь в диагностике проблем, поскольку вы можете отправлять трассировку информации, когда ваши пользователи просматривают ваше приложение и выполняют различные действия. Сообщения трассировки, отправляемые в Application Insights, могут быть трех степеней серьезности:

  • Информация
  • Предупреждение
  • Error

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

Примечание

Если вы регистрируете какие-либо персональные данные, помните о своих обязательствах в отношении законов и положений о конфиденциальности. Дополнительные сведения см. в центре управления безопасностью Майкрософт и на Service Trust Portal.

Теперь создайте в своем приложении новый компонент для сбора отзывов на каждом экране и записи событий в Application Insights.

  1. Войдите в Power Apps.

  2. Выберите Приложения в левой области переходов. Из списка приложений выберите приложение Kudos, затем выберите Изменить.

    Примечание

    Вы также можете создать новое приложение или изменить любое существующее приложение.

  3. Выберите пункт Компоненты в Представлении дерева:

    Компоненты.

  4. Выберите Создать компонент, затем измените ширину до 200 и высоту до 75:

    Высота и ширина.

  5. Выберите Вставить в меню, затем выберите Значки ,чтобы добавить Эмодзи — нахмуренный смайлик и Эмодзи — улыбка:

    Добавление значков.

  6. Выберите Создать пользовательское свойство, чтобы создать собственное свойство:

    Создание пользовательского свойства.

  7. Введите свойство Имя и Отображаемое имя, такое как FeedbackSceen.

  8. Введите свойство Описание.

  9. Выберите Тип свойства как Вход и Тип данных как Экран:

    Пользовательское свойство.

    Примечание

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

  10. Выберите компонент в представлении дерева, выберите Другие действия (), затем выберите Переименовать, чтобы переименовать компонент. Дайте ему информативное имя, например FeedbackComponent.

    Переименуйте компонент и значки.

  11. Выберите значки, выберите Другие действия (), затем выберите Переименовать. Дайте им информативные имена, например FrownIcon и SmileIcon.

  12. Выберите FrownIcon, выберите свойство OnSelect, затем введите следующее выражение в строку формул:

    Trace(
       "App Feedback",
       TraceSeverity.Information,
           {
             UserName: User().FullName,
             UserEmail: User().Email,
             Screen: FeedbackComponent.FeedbackScreen.Name,
             FeedbackValue: "-1"
           }
         );
    Notify("Thanks for your feedback!");
    

    ![Формула значка "Хмуриться".](./media/application-insights/frownicon-formula.png "Формула значка "Хмуриться"")

    Примечание

    Выражение формулы отправляет UserName, UserEmail, Экран и Feedback (со значением -1) в Application Insights.

  13. Выберите SmileIcon, выберите свойство OnSelect, затем введите следующее выражение в строку формул:

    Trace(
       "App Feedback",
       TraceSeverity.Information,
           {
             UserName: User().FullName,
             UserEmail: User().Email,
             Screen: FeedbackComponent.FeedbackScreen.Name,
             FeebackValue: "1"
           }
         );
    Notify("Thanks for your feedback!");
    
  14. Добавьте компонент на один из экранов в вашем приложении:

    Добавление компонента отзывов.

  15. Выберите Сохранить, затем выберите Опубликовать, чтобы сохранить и опубликовать ваше приложение.

  16. Воспроизведите опубликованное приложение и отправьте отзыв в виде улыбки или недовольства с экранов.

    Важно!

    Вы должны воспроизвести опубликованное приложение, чтобы отправить события в Application Insights. События не отправляются в Application Insights, когда вы предварительно просматриваете приложение в Power Apps Studio.

    Воспроизведение опубликованного приложения.

Анализ данных в Application Insights

Теперь вы можете начать анализ данных, отправленных вами с помощью функции Trace из вашего приложения в Application Insights.

  1. Войдите в портал Azure и откройте ресурс Application Insights, который вы создали ранее:

    Выберите Application Insights.

  2. Выберите Журналы в разделе Мониторинг на левой панели навигации:

    Выбор журналов.

  3. Введите следующий запрос и выберите Выполнить чтобы просмотреть отзывы, полученные из вашего приложения:

    traces
    | where message == "App Feedback"
    | order by timestamp
    

    Просмотр отзыва приложения.

  4. Выберите строку в результатах и разверните поле customDimensions.

    Значения параметров Экран, UserName, UserEmail и FeedbackValue для события OnSelect значка улыбки или недовольства в вашем компоненте были записаны. Для каждого события, отправленного в Application Insights, также регистрируются такие значения, как appId, appName и appSessionId.

    Развернуть пользовательские аналитики.

  5. В следующем примере запроса вы можете развернуть свойства пользовательских аналитик JSON и проецировать столбцы в представлении результатов.

    traces
        | extend customdims = parse_json(customDimensions)
        | where message == "App Feedback"
        | project timestamp
            , message
            , AppName = customdims.['ms-appName']
            , AppId = customdims.['ms-appId']
            , FeedbackFrom = customdims.UserEmail
            , Screen = customdims.Screen
            , FeedbackValue = customdims.FeedbackValue
        | order by timestamp desc
    

    Развернуть запрос customDimensions.

    Совет

    Регистрация запросов — очень мощный инструмент. Вы можете использовать его для объединения нескольких таблиц, агрегирования больших объемов данных и выполнения сложных операций. Узнайте больше о запросах журналов.

Мониторинг необработанных ошибок (экспериментальная функция)

[Данный раздел посвящен предварительному выпуску и может быть изменен.]

Важно!

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

Вы не всегда можете предвидеть и спланировать все ошибки, которые могут возникнуть во время работы вашего приложения. Необработанные ошибки формул Power Fx выводятся для пользователей в виде баннерных сообщений. Они также могут передаваться в Application Insights, чтобы вы могли получить представление об их частоте и серьезности, не полагаясь на то, что пользователи вашего приложения будут сообщать о проблемах. Вы также можете настроить оповещения в реальном времени при возникновении ошибок во время выполнения, чтобы использовать более активный подход.

Включение передачи ошибок в Application Insights

Вам необходимо включить параметр, позволяющий Power Apps передавать необработанные ошибки времени выполнения в Azure Application Insights.

Предупреждение

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

Чтобы включить передачу ошибок, перейдите в раздел Настройки > Предстоящие функции > Экспериментальные > Передавать ошибки в Azure Application Insights, оставив ваше приложение на основе холста открытым для редактирования. Сохраните и опубликуйте свое приложение.

Включите параметр «Передавать ошибки в Azure Application Insights».

События ошибок в Application Insights

Необработанные ошибки Power Fx, с которыми сталкиваются пользователи во время выполнения приложения, передаются в таблицу трассировок. Необработанные ошибки можно идентифицировать и отличить от других событий ошибок по сообщению о событии «Необработанная ошибка». Измерение severityLevel этих событий равно 3 (TraceSeverity.Error).

Подробные сообщения об ошибках представлены в измерении "errors" свойства customDimension. В ситуациях, когда во время одной операции возникает несколько ошибок, ошибки объединяются в измерение errors одного события трассировки. Сообщения об ошибках такие же, как и в Мониторе во время сеанса отладки в реальном времени.

Следующий пример запроса идентифицирует необработанные ошибки и разворачивает все сообщения об ошибках, включенные в событие трассировки:

traces
    | where message == "Unhandled error"
    | extend customdims = parse_json(customDimensions)
    | extend errors = parse_json(tostring(customdims.['errors']))
    | mv-expand errors
    | project timestamp
        , itemId //unique identifier for the trace event
        , AppName = customdims.['ms-appName']
        , AppId = customdims.['ms-appId']
        , errors = errors.['Message']
    | order by timestamp desc

Образец вывода для примера запроса.

Трассировка корреляции (экспериментальная функция)

[Данный раздел посвящен предварительному выпуску и может быть изменен.]

Важно!

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

Подключения к внешним данным и службам имеют основополагающее значение для большинства приложений. Трассировка корреляции генерирует и распространяет контекстную информацию для объединения всех формируемых системой журналов по приложению на основе холста и его подключений с учетом определенных ограничений. Например, ваше приложение может обращаться к пользовательскому соединителю, который, в свою очередь, вызывает функцию Azure или другой REST API. Трассировка корреляции позволяет сопоставлять действия, выполняемые в приложении, с базовыми вызовами API на разных уровнях. Это может быть полезно в устранении неполадок.

Отслеживание корреляции приложений на основе холста представляет собой реализацию трассировки контекста и соответствует спецификации W3C.

Включение трассировки корреляции

Предупреждение

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

Чтобы включить функцию трассировки корреляции, перейдите в раздел Параметры > Предстоящие функции > Экспериментальные > Включить трассировку корреляции Azure Application Insights, оставив приложение на основе холста открытым для редактирования. Сохраните и опубликуйте свое приложение.

Включение трассировки корреляции Azure Application Insights.

Ограничения

  • Трассировка корреляции доступна только для пользовательских соединителей. Другие типы соединителей не поддерживаются.
  • HTTP-запросы фиксируются в Application Insights, только если подключенная служба также подключена к Application Insights.

Использование трассировки корреляции

Будучи включенной, трассировка корреляции добавляет новое событие системного журнала в таблицу зависимостей экземпляра Application Insights для приложения на основе холста. Это событие записывается в момент получения отклика от сетевого вызова. События зависимостей собирают сведения о сетевом вызове, включая заголовки запроса и ответа, код состояния ответа и продолжительность вызова.

Пример события, зарегистрированного в таблице зависимостей.

Если подключенная служба также подключена к Application Insights, в таблице запросов экземпляра Application Insights этой службы также генерируется дополнительное событие системного журнала, фиксирующее вызов. Некоторые службы Azure, такие как Функции Azure, можно подключить без написания кода на портале Azure. И приложение на основе холста, и несколько приложений и подключенных служб могут быть подключены к одному и тому же экземпляру Application Insights.

Пример события, зарегистрированного в таблице запросов.

Сетевые вызовы для поддерживаемых соединителей можно объединять с другими системными журналами в измерении operation_Id. В следующем примере запроса показан сетевой вызов, выполняемый одновременно с событиями трассировки, передаваемыми во время сеанса приложения.

traces | union dependencies | union requests | union pageViews | union customEvents
| project timestamp
    , itemType
    , name
    , operation_Name
    , message
    , severityLevel
    , customDimensions
    , operation_Id
    , operation_ParentId
| where operation_Id == "0a7729e3e83c4e4d93cb4f51149f73b9" //placeholder operation_Id, replace
| order by timestamp asc

Образец вывода для более раннего примера запроса.

Экспорт данных в Power BI

Вы можете экспортировать свои данные и результаты запросов Application Insights в Power BI для анализа и представления данных.

  1. Войдите в портал Azure и откройте ресурс Application Insights, который вы создали ранее:

  2. Выберите Журналы в разделе Мониторинг на левой панели навигации:

  3. В окне запроса анализа журналов выберите меню Экспорт.

  4. Выберите Экспортировать в Power BI (запрос M), чтобы загрузить файл запроса Power BI:

    Экспорт запроса Power BI.

  5. Откройте загруженный файл в текстовом редакторе и скопируйте запрос в буфер обмена.

  6. Открыть Power BI.

  7. Выберите меню Получить данные на ленте Главная, затем выберите Пустой запрос:

    Пустой запрос Power BI.

  8. В окне запроса выберите Расширенный редактор. Вставьте запрос в это окно, выберите Готово, затем выберите Закрыть и применить:

    Расширенный запрос Power BI.

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

Диаграммы и визуализации.

Контекст и аналитики события трассировки по умолчанию

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

Имя измерения Представляет
ms-appId Идентификатор приложения, отправившего событие.
ms-appname Имя приложения, отправившего событие.
ms-appSessionId Идентификатор сеанса приложения. Это значение может быть не заполнено в некоторых сценариях. Если это значение доступно, оно переопределяет стандартное измерение sessionID Application Insights.
ms-tenantID Уникальный идентификатор клиента, в котором опубликовано приложение.
ms-environmentId Имя среды, в которой опубликовано приложение.
userId Уникальный идентификатор пользователя, связанного с сеансом.
ms-duration Вмененное значение, измеряющее время, необходимое пользователю для перехода от одного экрана к другому. Это значение переопределяет стандартное измерение длительности PageView Application Insights.
sessionId Идентификатор сеанса, который можно использовать для корреляции всех событий, связанных с одним сеансом приложения. Это значение присутствует всегда, и его рекомендуется использовать для получения представления о количестве уникальных сеансов. Это значение берется из идентификатора сеанса проигрывателя и отображается при просмотре сведений о сеансе во время воспроизведения приложения. Идентификатор сеанса иногда может иметь значение по умолчанию, случайное и уникальное значение, сгенерированное Application Insights. Это значение по умолчанию не является надежным и не коррелирует ни с какими параметрами приложения.
Duration Вмененное значение, измеряющее время, необходимое пользователю для перехода от одного экрана к другому. Это значение совпадает с длительностью, сообщаемой измерением ms-duration.
ms-isTest Указывает, связан ли сеанс со средством выполнения тестов Test Studio.
ms-currentScreenName Имя страницы, с которой переходит пользователь (присутствует для событий перехода по страницам).
ms-targetScreenName Имя страницы, на которую переходит пользователь (присутствует для событий перехода по страницам).

Неподдерживаемые сценарии

Application Insights не поддерживает следующие сценарии.

  • События офлайн-проигрывателей не фиксируются.
  • События мобильного приложения (как для iOS, так и для Android) не фиксируются, когда приложение приостановлено.
  • GCC и частные облака не поддерживаются.

Примечание

Каковы ваши предпочтения в отношении языка документации? Пройдите краткий опрос (обратите внимание, что этот опрос представлен на английском языке).

Опрос займет около семи минут. Личные данные не собираются (заявление о конфиденциальности).