Поиск и диагностика исключений среды выполнения с помощью Application Insights

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

  • Измените проект, чтобы включить отслеживание исключений.
  • Определите исключения для различных компонентов приложения.
  • Просмотр сведений об исключении.
  • Скачайте snapshot исключения в Visual Studio для отладки.
  • Анализ сведений о неудачных запросах с помощью языка запросов.
  • Создайте новый рабочий элемент, чтобы исправить неисправный код.

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

Для работы с этим руководством сделайте следующее:

  • Установите Visual Studio 2019 с указанными ниже рабочими нагрузками:
    • ASP.NET и веб-разработка.
    • разработка Azure;
  • Загрузите и установите отладчик моментальных снимков Visual Studio.
  • Включение отладчика моментальных снимков Visual Studio
  • Развертывание приложения .NET в Azure и включение пакета SDK для Application Insights
  • Измените код в среде разработки или тестирования, чтобы создать исключение, так как учебник отслеживает идентификацию исключения в приложении.

Вход в Azure

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

Анализ сбоев

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

  1. Выберите Application Insights, а затем выберите подписку.

  2. Чтобы открыть панель Сбои , выберите Сбои в меню Исследовать или выберите граф Неудачные запросы .

    Снимок экрана: неудачные запросы.

  3. На панели Неудачные запросы отображается количество неудачных запросов и количество пользователей, затронутых каждой операцией приложения. Отсортируя эти сведения по пользователям, можно определить те сбои, которые больше всего влияют на пользователей. В этом примере GET Employees/Create и GET Customers/Details являются кандидатами на исследование из-за большого количества сбоев и затронутых пользователей. При выборе операции отображаются дополнительные сведения об этой операции в области справа.

    Снимок экрана: панель неудачных запросов.

  4. Сократите временное окно, чтобы увеличить масштаб периода с наиболее вероятным риском сбоя.

    Снимок экрана: окно

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

    Снимок экрана: примеры неудачных запросов.

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

    Снимок экрана: сведения о неудачных запросах.

  7. В сведениях об операциях также отображается исключение формата, которое, как представляется, вызвало сбой. Вы видите, что это связано с недопустимым почтовым индексом. Вы можете открыть snapshot отладки, чтобы просмотреть сведения об отладке на уровне кода в Visual Studio.

    Снимок экрана: сведения об исключении.

Определение неисправного кода

Отладчик моментальных снимков собирает моментальные снимки наиболее частых исключений в приложении, чтобы помочь вам определить их первопричину в рабочей среде. Вы можете просмотреть отладочные моментальные снимки на портале, чтобы изучить стек вызовов и проверить значения переменных в каждом кадре стека вызовов. После этого можно выполнить отладку исходного кода, скачав snapshot и открыв его в Visual Studio 2019 Enterprise.

  1. В свойствах исключения выберите Открыть snapshot отладки.

  2. Откроется область Моментальный снимок отладки со стеком вызовов для запроса. Выберите любой метод, чтобы просмотреть значения всех локальных переменных во время запроса. Начиная с метода top в этом примере можно увидеть локальные переменные, которые не имеют значения.

    Снимок экрана: область

  3. Первый вызов с допустимыми значениями — ValidZipCode. Вы видите, что почтовый индекс был предоставлен с буквами, которые невозможно преобразовать в целое число. Эта проблема, по-видимому, связана с ошибкой в коде, которую необходимо исправить.

    Снимок экрана: ошибка в коде, которую необходимо исправить.

  4. Затем вы можете скачать этот snapshot в Visual Studio, где можно найти фактический код, который необходимо исправить. Для этого выберите Скачать моментальный снимок.

  5. Моментальный снимок будет загружен в Visual Studio.

  6. Теперь в Visual Studio Enterprise можно запустить сеанс отладки, который позволяет быстро определить строку кода, вызвавшую исключение.

    Снимок экрана: исключение в коде.

Использование данных аналитики

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

  1. Выберите сведения CodeLens над кодом, чтобы просмотреть данные телеметрии, предоставляемые Application Insights.

    Снимок экрана: код в CodeLens.

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

    Снимок экрана: окно Application Insights с несколькими запросами.

Добавление рабочего элемента

При подключении Application Insights к системе отслеживания, такой как Azure DevOps или GitHub, вы можете создать рабочий элемент непосредственно из Application Insights.

  1. Вернитесь на панель Свойства исключения в Application Insights.

  2. Выберите Новый рабочий элемент.

  3. Откроется панель Новый рабочий элемент с подробными сведениями об уже заполненном исключении. Вы можете добавить дополнительные сведения перед сохранением.

    Снимок экрана: панель

Дальнейшие действия

Теперь, когда вы узнали, как определять исключения среды выполнения, перейдите к следующему руководству, чтобы узнать, как выявлять и диагностировать проблемы с производительностью.