Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Application Insights собирает данные телеметрии из приложения, чтобы помочь диагностировать ошибки и исследовать медленные транзакции. Он включает четыре основных средства:
Сбои — отслеживает ошибки, исключения и ошибки, предлагая четкие аналитические сведения для быстрого решения проблем и повышенной стабильности.
Производительность — быстро идентифицирует и помогает устранить узкие места приложения, отображая время отклика и количество операций.
Поиск транзакций — позволяет пользователям находить и проверять отдельные элементы телеметрии, такие как представления страниц, исключения и пользовательские события.
Диагностика транзакций — помогает быстро выявлять проблемы в компонентах с помощью комплексной информации о транзакциях.
Вместе эти средства обеспечивают постоянную работоспособность и эффективность веб-приложений. Их можно использовать для выявления проблем или улучшений, которые будут оказывать наибольшее влияние на пользователей.
Чтобы получить представление "Сбои " в Application Insights, выберите граф неудачных запросов на панели обзора или сбои в категории "Исследование " в меню ресурсов.
Вы также можете получить представление об ошибках из карты приложений , выбрав ресурс, а затем изучить сбои из раздела триажа.
Замечание
Вы можете получить доступ к диагностике транзакций с помощью любого из трех других интерфейсов. Дополнительные сведения см. в разделе "Исследование телеметрии".
Обзор
В представлении "Сбои" отображается список всех неудачных операций, собранных для приложения, с возможностью детализации каждого из них. Он позволяет просматривать частоту и количество затронутых пользователей, чтобы помочь вам сосредоточить усилия на проблемах с наибольшим воздействием.
Замечание
Помимо встроенной телеметрии, отправляемой дистрибутивом OpenTelemetry Azure Monitor или пакетом SDK JavaScript, можно добавлять и изменять данные телеметрии (например, пользовательские события).
Дополнительные сведения см. в статье "Добавление и изменение Azure Monitor OpenTelemetry" для приложений .NET, Java, Node.jsи Python.
Фильтрация телеметрии
Фильтры по умолчанию
Все возможности позволяют фильтровать данные телеметрии по диапазону времени. Кроме того, каждый опыт поставляется с собственным фильтром по умолчанию.
Вы можете выбрать, какую службу (имя облачной роли) или какой компьютер/контейнер (экземпляр облачной роли) вы хотите просмотреть из меню фильтра Ролей. Это позволяет изолировать проблемы или тенденции производительности в определенных частях приложения.
Чтобы узнать, как настроить имя облачной роли и экземпляр облачной роли, см. статью «Настройка Azure Monitor OpenTelemetry».
Добавление фильтров
Можно фильтровать события по значениям их свойств. Доступные свойства зависят от выбранных типов событий или телеметрии. Чтобы добавить фильтр, выполните приведенные действия.
Щелкните
, чтобы добавить фильтр.
В раскрывающемся списке слева выберите свойство.
В раскрывающемся списке центра выберите один из следующих операторов:
=
,!=
,contains
, илиnot contains
.В раскрывающемся списке справа выберите все значения свойств, которые нужно отфильтровать.
Замечание
Обратите внимание, что счетчики справа от значений фильтра показывают число вхождений в текущем отфильтрованном наборе.
Чтобы добавить другой фильтр, снова выберите
.
Телеметрия поиска
Вы можете выполнить поиск определенных операций с помощью поиска для фильтрации элементов... в поле над списком операций.
Использование аналитических данных
Все данные, собранные Application Insights, хранятся в Log Analytics, который предоставляет широкий язык запросов для анализа запросов, которые создали исключение, которое вы изучаете.
Подсказка
Простой режим в Log Analytics предоставляет интуитивно понятный интерфейс для анализа и визуализации данных журнала.
В представлении "Производительность,сбои" или "Поиск транзакций" выберите "Вид в журналах " в верхней панели навигации и выберите запрос в раскрывающемся меню.
Это откроет раздел Журналы, где вы можете дополнительно изменить запрос или выбрать другой из боковой панели.
Изучение телеметрии
Чтобы изучить основную причину ошибки или исключения, можно детализировать проблему для подробного комплексного представления сведений о транзакциях, включающего зависимости и сведения об исключении.
Выберите операцию, чтобы просмотреть Топ-3 кода ответов, Топ-3 типа исключений и Топ-3 сбоя зависимостей для этой операции.
В разделе "Детализация" нажмите кнопку с количеством отфильтрованных результатов, чтобы просмотреть список примеров операций.
Выберите пример операции, чтобы открыть представление сведений о сквозной транзакции .
Замечание
Предложенные образцы содержат связанные данные телеметрии со всех компонентов, даже если в любом из них применяется выборка.
Анализ производительности и сбоев на стороне клиента
Если вы инструментируйте веб-страницы с помощью Application Insights, вы можете получить представление о представлениях страниц, операциях браузера и зависимостях. Сбор данных браузера требует добавления скрипта на веб-страницы.
После добавления скрипта вы можете получить доступ к представлениям страниц и связанным с ними метрикам производительности, выбрав браузер , переключив переключатель в представлении "Производительность " или " Сбои ".
Это представление содержит визуальную сводку по различным телеметриям приложения с точки зрения браузера.
Для операций браузера в представлении сведений о сквозных транзакциях показываются свойства просмотра страницы для клиента, запрашивающего страницу, включая тип браузера и его местоположение. Эти сведения могут помочь определить, существуют ли проблемы с производительностью, связанные с определенными типами клиентов.
Замечание
Как и данные, собранные для производительности сервера, Application Insights делает все клиентские данные доступными для глубокого анализа с помощью журналов.
Интерфейс диагностики транзакций
В режиме диагностики транзакций, также называемом представлением сведений о сквозных транзакциях , показана диаграмма Ганта транзакции, в которой перечислены все события с их длительностью и кодом ответа.
Этот интерфейс диагностики автоматически сопоставляет данные телеметрии на стороне сервера во всех отслеживаемых компонентах Application Insights в одном представлении и поддерживает несколько ресурсов. Application Insights определяет базовые связи и позволяет легко диагностировать компоненты приложения, зависимости или исключения, вызвавшие замедление или сбой выполнения транзакции.
Выбор определенного события показывает его свойства, включая дополнительные сведения, такие как базовая команда или стек вызовов.
Это представление состоит из четырех ключевых частей:
В этой свертываемой области отображаются другие результаты, которые соответствуют условиям фильтра. Выберите любой результат, чтобы обновить соответствующие сведения из предыдущих трех разделов. Мы пытаемся найти примеры, которые, скорее всего, имеют сведения обо всех компонентах, даже если выборка действует в любом из них. Эти примеры отображаются как предложения.
Профилировщик .NET и отладчик моментальных снимков
Профилировщик .NET или отладчик моментальных снимков помогают с диагностикой проблем с производительностью и сбоем на уровне кода. С помощью этого интерфейса можно просмотреть трассировки или моментальные снимки профилировщика .NET из любого компонента с одним выбором.
Трассировки профилировщика
Профилировщик .NET помогает получить дополнительные сведения о диагностике на уровне кода, показывая фактический код, выполняемый для операции, и время, необходимое для каждого шага. Некоторые операции могут не иметь трассировки, так как профилировщик периодически выполняется. Со временем у операций появится больше трассировок.
Чтобы запустить профилировщик .NET, выберите операцию в представлении производительности , а затем перейдите к трассировкам Профилировщика.
Кроме того, это можно сделать в разделе сведений о сквозной транзакции.
Трассировка показывает отдельные события для каждой операции, чтобы можно было выявить первопричину в ходе всей операции. Выберите один из лучших примеров, которые имеют самую длинную длительность.
Выберите ссылку в совете по производительности (в этом примере время ЦП) для документации по интерпретации события.
Для дальнейшего анализа выберите "Скачать трассировку ", чтобы скачать трассировку. Эти данные можно просмотреть с помощью PerfView.
Замечание
Горячий путь выбран по умолчанию. Он выделяет конкретный путь событий, которые вносят свой вклад в проблему, которую вы исследуете, указан значок пламени рядом с именем события.
Если вы не можете получить рабочий профилировщик .NET, обратитесь serviceprofilerhelp@microsoft.com.
Снимок отладки
Чтобы просмотреть сведения об отладке на уровне кода исключения, выполните следующие действия.
Выберите исключение на диаграмме Ганта, а затем откройте моментальный снимок отладки.
Отладчик моментальных снимков показывает стек вызовов и позволяет просматривать переменные в каждом кадре стека вызовов. Выбрав метод, можно просмотреть значения всех локальных переменных во время запроса.
После этого можно выполнить отладку исходного кода, скачав моментальный снимок и открыв его в Visual Studio.
Если не удается получить отладчик моментальных снимков, обратитесь snapshothelp@microsoft.comк ней.
Создание рабочего элемента
При подключении Application Insights к системе отслеживания, такой как Azure DevOps или GitHub, можно создать рабочий элемент с подробными сведениями из любого элемента телеметрии непосредственно из Application Insights.
Замечание
Если вы делаете это в первый раз, вам будет предложено настроить ссылку на вашу организацию и проект в Azure DevOps.
Перейдите в представление сведений о сквозной транзакции и выберите событие.
В разделе "Сведения" выберите "Создать рабочий элемент " и создайте новый шаблон или выберите существующий.
Откроется панель "Новый рабочий элемент " с подробными сведениями об исключении, уже заполненном. Перед сохранением можно добавить дополнительные сведения.
Часто задаваемые вопросы
В этом разделе приведены ответы на распространенные вопросы.
Поиск транзакций
Что такое компонент?
Компоненты — это независимо развертываемые части распределенного приложения или приложения для микрослужб. Разработчики и операционные команды могут просматривать данные телеметрии, созданные компонентами приложения, на уровне кода.
- Компоненты отличаются от "наблюдаемых" внешних зависимостей, таких как SQL и центры событий, к которым ваша команда или организация могут не иметь доступа (код или телеметрия).
- Компоненты выполняются на любом количестве экземпляров серверов, ролей или контейнеров.
- Компоненты могут быть отдельными ключами инструментирования Application Insights, даже если подписки отличаются. Компоненты также могут быть разными ролями, которые сообщают одному ключу инструментирования Application Insights. В новом интерфейсе отображаются сведения обо всех компонентах независимо от того, как они были настроены.
Сколько данных сохраняется?
Как просмотреть данные POST в запросах сервера?
Мы не регистрируем данные POST автоматически, но можно использовать TrackTrace или логирование вызовов. Поместите данные POST в параметр сообщения. Сообщения нельзя отфильтровать тем же способом, как это делается для свойств, но предельный размер больше.
Почему поиск функции Azure не возвращает результатов?
Функции Azure не регистрирует строки запроса URL-адреса.
Диагностика транзакций
Почему на диаграмме отображается один компонент, а другие компоненты отображаются только как внешние зависимости без каких-либо сведений?
Возможные причины:
- Эти другие компоненты не инструментированы с помощью Application Insights.
- В них используется не последняя стабильная версия пакета SDK Application Insights.
- Если эти компоненты являются отдельными ресурсами Application Insights, проверьте наличие доступа. Если у вас есть доступ и компоненты инструментируются с помощью последних пакетов SDK Application Insights, сообщите нам через канал обратной связи в правом верхнем углу.
Я вижу повторяющиеся строки для зависимостей. Ожидается ли это поведение?
В настоящее время мы показываем вызов исходящей зависимости отдельно от входящего запроса. Как правило, два вызова выглядят идентичными только значения длительности, которые отличаются из-за сетевого кругового пути. Разницу между ними можно определить по значку и стилю линий длительности. Если такое представление данных слишком трудное, отправьте нам свой отзыв!
Что насчет несоответствий времени между различными экземплярами компонентов?
Временные шкалы на диаграмме транзакций приводятся в соответствие. Метки времени можно просмотреть в области сведений или с помощью Log Analytics.
Почему в новом интерфейсе отсутствует большинство запросов, связанных с элементами?
Это поведение является намеренным. Все связанные элементы во всех компонентах уже доступны в левой части в верхних и нижних разделах. В левой части нового интерфейса отсутствуют два связанных элемента: все данные телеметрии, полученные в течение пяти минут до или после этого события, и временная шкала пользователя.
Существует ли возможность увидеть меньше событий на транзакцию при использовании пакета SDK JavaScript Для Application Insights?
В интерфейсе диагностики транзакций отображаются все данные телеметрии в одной операции , которая использует идентификатор операции. По умолчанию пакет SDK для JavaScript в Application Insights создает новую операцию для каждого уникального просмотра страницы. В одностраничном приложении (SPA) создается только одно событие представления страницы, а для всех созданных данных телеметрии используется один идентификатор операции. В результате многие события могут быть сопоставлены с одной и той же операцией.
В этих сценариях можно использовать автоматическое отслеживание маршрутов для автоматического создания новых операций для навигации в SPA. Необходимо включить enableAutoRouteTracking , чтобы представление страницы создавалось при каждом обновлении маршрута URL-адреса (логическое представление страницы). Если вы хотите вручную обновить идентификатор операции, вызовите appInsights.properties.context.telemetryTrace.traceID = Microsoft.ApplicationInsights.Telemetry.Util.generateW3CId()
. Активация события PageView вручную также сбрасывает идентификатор операции.
Почему длительность сведений о транзакциях не добавляется в длительность верхнего запроса?
Время, не описанное на диаграмме Ганта, — это время, которое не охватывается отслеживаемой зависимостью. Эта проблема может возникнуть, так как внешние вызовы не были инструментированы автоматически или вручную. Это также может произойти, так как время, затраченное на процесс, а не из-за внешнего вызова.
Если все вызовы были инструментированы, вероятной основной причиной затраченного времени является процесс. Полезным средством диагностики процесса является профилировщик .NET.
Что делать, если появится сообщение "Ошибка извлечения данных" при переходе по Application Insights на портале Azure?
Эта ошибка означает, что браузеру не удалось вызвать необходимый API или API вернул ответ, указывающий на сбой. Чтобы устранить неполадки в поведении, откройте окно InPrivateбраузера и отключите все запущенные расширения браузера , а затем определите, можно ли воспроизвести поведение портала. Если ошибка портала по-прежнему возникает, попробуйте провести тестирование с другими браузерами или другими компьютерами, изучить dns или другие проблемы, связанные с сетью, на клиентском компьютере, где вызовы API завершаются сбоем. Если ошибка портала продолжается и требует дальнейшего расследования, соберите трассировку сети браузера при воспроизведении неожиданного поведения портала, а затем откройте запрос на поддержку на портале Azure.
Дальнейшие шаги
- Дополнительные сведения об использовании карты приложений для выявления узких мест производительности и горячих точек сбоя во всех компонентах приложения.
- Дополнительные сведения об использовании представления доступности для настройки регулярных тестов мониторинга готовности и отзывчивости вашего приложения.
- Узнайте, как создавать сложные запросы в Аналитике , чтобы получить более подробную информацию из данных телеметрии.
- Узнайте, как отправлять журналы и пользовательские данные телеметрии в Application Insights для более полного мониторинга.
- Общие сведения о мониторинге времени простоя и реагирования см. в обзоре доступности.