Поиск транзакций — это возможность Application Insights, которая позволяет искать и изучать отдельные элементы телеметрии, например просмотры страниц, исключения и веб-запросы. Вы также можете просматривать трассировки журналов и события, которые вы кодируете.
Для более сложных запросов к данным используйте Log Analytics.
Как найти функцию поиска?
Функция Поиск имеется на портале Azure или в Visual Studio.
На портале Azure
Можно выполнить поиск операций на вкладке Обзор Application Insights вашего приложения. Вы также можете выбрать команду Поиск в разделе Исследовать в меню слева.
Перейдите в раскрывающееся меню типов событий, чтобы просмотреть список элементов телеметрии, таких как запросы сервера, представления страниц и настраиваемые события, которые вы закодировали. В верхней части списка результатов отображается сводная диаграмма, показывающая количество событий с течением времени.
Закройте раскрывающееся меню или выберите Обновить, чтобы получить новые события.
В Visual Studio
В Visual Studio также есть окно поиска по Application Insights. Его удобно использовать для отображения событий телеметрии, созданных отлаживаемым приложением. Оно также может показывать события, собранные из опубликованного приложения на портале Azure.
Откройте окно Поиск Application Insights в Visual Studio:
Окно Поиск по Application Insights содержит функции, аналогичные функциям на веб-портале:
Вкладка Отслеживание операции отображается при открытии запроса или представления страницы. Операция — это последовательность событий, связанных с одним запросом или представлением страницы. В одну операцию могут входить, например, вызовы зависимостей, исключения, журналы трассировки и пользовательские события. На вкладке Отслеживание операции графически показано время и продолжительность этих событий относительно запроса или представления страницы.
Проверка отдельных элементов
Выберите любой элемент телеметрии для просмотра ключевых полей и связанных элементов.
Откроется представление с данными о сквозных транзакциях.
Фильтрация по типам событий
Откройте раскрывающееся меню Типы событий и выберите типы событий, которые необходимо просмотреть. Чтобы восстановить фильтры, нажмите кнопку Сбросить.
Ниже приведены типы событий.
- Трассировка — журналы диагностики, в том числе TrackTrace, log4Net, NLog и вызовы System.Diagnostic.Trace.
- Запрос — HTTP-запросы, полученные серверным приложением, включая страницы, скрипты, изображения, файлы стилей и данные. Эти события используются для создания обзорных диаграмм запросов и ответов.
- Просмотр страницы — элемент телеметрии, отправленный веб-клиентом и используемый для создания отчетов о просмотрах страниц.
- Пользовательское событие — при вставке в код вызовов
TrackEvent()
для отслеживания использования эти вызовы можно найти здесь.
- Исключение — неперехваченные исключения на сервере и те, которые зарегистрированы с помощью метода
TrackException()
.
- Зависимость — вызовы из серверного приложения к другим службам, таким как интерфейсы REST API или базы данных, а также вызовы AJAX из клиентского кода.
- Доступность: результаты тестов доступности
Фильтрация на основе значений свойств
Можно фильтровать события по значениям их свойств. Доступные свойства зависят от выбранных типов событий. Выберите фильтр для запуска.
Если не выбрать ни одно из значений конкретного свойства, эффект будет таким же, как и при выборе всех значений. Фильтрация по этому свойству будет отключена.
Обратите внимание, что счетчики справа от значений фильтра показывают число вхождений в текущем отфильтрованном наборе.
Поиск событий с одним и тем же свойством
Чтобы найти все элементы с одинаковым значением свойства, введите его в поле поиска или установите флажок при просмотре свойств на вкладке Фильтр.
Поиск данных
Примечание.
Чтобы записать более сложные запросы, Откройте окно Журналы (Аналитика) в верхней части панели Поиск.
В любом из значений свойств можно искать слова. Эта возможность полезна при написании пользовательских событий со значениями свойств.
Можно задать временной диапазон, так как поиск в более коротком диапазоне выполняется быстрее.
Выполните поиск по полным словам, а не по подстрокам. Специальные символы заключайте в кавычки.
Строка |
Не найдено |
найден |
HomeController.About |
home
controller
out |
homecontroller
about
"homecontroller.about" |
Соединенные Штаты |
Uni
ted |
united
states
united AND states
"united states" |
Можно использовать следующие выражения поиска:
Пример запроса |
Действие |
apple |
Найдите все события в диапазоне времени, поля которых включают слово apple . |
apple AND banana
apple banana |
Поиск событий, содержащих оба слова. Используйте капитал AND , а не and . Короткая форма. |
apple OR banana |
Поиск событий, содержащих любое из этих слов. Используйте OR , а не or . |
apple NOT banana |
Поиск событий, содержащих только одно из этих слов, но не содержащих другое. |
Образец
Если приложение создает значительные данные телеметрии и использует пакет SDK для ASP.NET версии 2.0.0-beta3 или более поздней версии, он автоматически уменьшает объем, отправленный на портал с помощью адаптивной выборки. Этот модуль отправляет только представительную часть событий. Он выбирает или отменяет выбор событий, связанных с тем же запросом, что и группа, что позволяет перемещаться между связанными событиями.
Дополнительная информация о выборке.
Создать рабочий элемент
В GitHub или Azure DevOps можно создать ошибку и указать в ней сведения из любого элемента телеметрии.
Перейдите к данным с сквозной транзакции, выбран любой элемент телеметрии. Затем выберите Создать рабочий элемент.
Если вы делаете это в первый раз, вам будет предложено настроить ссылку на вашу организацию и проект в Azure DevOps. Можно также настроить ссылку на вкладке Рабочие элементы.
Передача дополнительных элементов телеметрии в Application Insights
В дополнение к стандартным элементам телеметрии, передаваемым пакетом SDK Application Insights, можно сделать следующее.
Выполнять трасcировку журналов, используя избранную платформу ведения журнала в .NET или Java. Благодаря этому можно будет выполнить поиск в журнале трассировки и сопоставить результаты с просмотрами страниц, исключениями и другими событиями.
Создавать код для отправки пользовательских событий, сведений о просмотрах страниц и исключениях.
Подробнее об отправке журналов и пользовательских данных телеметрии в Application Insights.
Часто задаваемые вопросы
Найдите ответы на часто задаваемые вопросы.
Какой объем данных сохраняется?
Ознакомьтесь со сводной таблицей ограничений.
Как просмотреть данные POST в запросах к серверу?
Мы не заносим в журнал данные POST автоматически, но вы можете использовать вызовы TrackTrace или вызовы журнала. Поместите данные POST в параметр сообщения. Сообщения нельзя отфильтровать тем же способом, как это делается для свойств, но предельный размер больше.
Почему поиск функции Azure не возвращает результатов?
Функции Azure не регистрирует строки запроса URL-адреса.
Единый интерфейс диагностики автоматически сопоставляет серверные данные телеметрии со всех отслеживаемых службой Application Insights компонентов в одном представлении. Количество ресурсов не имеет значения. Application Insights определяет базовые связи и позволяет легко диагностировать компоненты приложения, зависимости или исключения, вызвавшие замедление или сбой выполнения транзакции.
Что такое компонент?
Компоненты — это независимо развертываемые части распределенного приложения или приложения для микрослужб. Разработчики и операционные команды могут просматривать данные телеметрии, созданные компонентами приложения, на уровне кода.
- Компоненты отличаются от "наблюдаемых" внешних зависимостей, таких как SQL и центры событий, к которым ваша команда или организация могут не иметь доступа (код или телеметрия).
- Компоненты выполняются на любом количестве экземпляров серверов, ролей или контейнеров.
- Компоненты могут быть отдельными ключами инструментирования Application Insights, даже если подписки отличаются. Компоненты также могут быть разными ролями, которые сообщают одному ключу инструментирования Application Insights. В новом интерфейсе отображаются сведения обо всех компонентах независимо от того, как они были настроены.
Примечание.
Отсутствуют ли ссылки на связанные элементы? Все связанные данные телеметрии находятся слева в верхних и нижних разделах.
Интерфейс диагностики транзакций
Это представление состоит из четырех ключевых частей:
- список результатов
- диаграмма транзакций между компонентами
- список последовательности времени всех данных телеметрии, связанных с этой операцией
- панель сведений для любого выбранного элемента телеметрии
Диаграмма транзакций между компонентами
Эта диаграмма содержит временную шкалу с горизонтальными линиями длительности запросов и зависимостей между компонентами. На ней также помечены все собранные исключения.
- Верхняя строка на этой диаграмме представляет точку входа. Это входящий запрос к первому компоненту, который вызывается в этой транзакции. Длительность — это общее время, необходимое, чтобы завершить транзакцию.
- Все вызовы внешних зависимостей являются простыми неуклюжими строками с значками, представляющими тип зависимостей.
- Сворачиваемые строки представляют вызовы к другим компонентам. Каждая строка соответствует определенной операции, вызванной в компоненте.
- По умолчанию выбранный запрос, зависимость или исключение отображаются на стороне. Выберите любую строку, чтобы просмотреть ее сведения.
Примечание.
Вызовы других компонентов имеют две строки. Одна строка представляет исходящий вызов (зависимость) из компонента вызывающего объекта. Другая строка соответствует входящего запроса на вызываемом компоненте. Разницу между ними можно определить по значку и стилю линий длительности.
Все данные телеметрии с идентификатором этой операции
В этом разделе показано представление неструктурированного списка в последовательности времени всех данных телеметрии, связанных с этой транзакцией. В нем также показаны пользовательские события и трассировки, которые не отображаются на диаграмме транзакций. Этот список можно отфильтровать по телеметрии, созданной определенным компонентом или вызовом. Вы можете выбрать любой элемент телеметрии в этом списке, чтобы просмотреть соответствующие сведения на стороне.
Подробные сведения о выбранном элементе телеметрии
В этой области сворачивания отображаются сведения о любом выбранном элементе из диаграммы транзакций или списка. Отображение всех списков всех стандартных атрибутов, собранных. Все настраиваемые атрибуты перечислены отдельно в стандартном наборе. Нажмите кнопку с многоточием (...) в окне трассировки стека вызовов, чтобы получить возможность копирования трассировки. Открытые трассировки профилировщика и открытие моментального снимка отладки показывают диагностика уровня кода в соответствующих панелях сведений.
Результаты поиска
В этой свертываемой области отображаются другие результаты, которые соответствуют условиям фильтра. Выберите любой результат, чтобы обновить соответствующие сведения из предыдущих трех разделов. Мы пытаемся найти примеры, которые, скорее всего, имеют сведения обо всех компонентах, даже если выборка действует в любом из них. Эти примеры отображаются как предложения.
Профилировщик и отладчик моментальных снимков
Application Insights Profiler или Snapshot Debuger помогают с диагностика уровня кода проблем с производительностью и сбоем. Благодаря этому вы можете просматривать трассировки или моментальные снимки профилировщика из любого компонента с одним выбором.
Если вы не можете получить профилировщик, обратитесь [email protected].
Если не удается получить отладчик моментальных снимков, обратитесь [email protected]к ней.
Часто задаваемые вопросы
В этом разделы приводятся ответы на часто задаваемые вопросы.
Почему на диаграмме отображается один компонент, а другие компоненты отображаются только как внешние зависимости без каких-либо сведений?
Возможные причины:
- Эти другие компоненты не инструментированы с помощью 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 вручную также сбрасывает идентификатор операции.
Почему подробные длительности транзакции не добавляются к длительности верхнего запроса?
Время, не описанное на диаграмме Ганта, — это время, которое не охватывается отслеживаемой зависимостью. Эта проблема может возникнуть, так как внешние вызовы не были инструментированы автоматически или вручную. Это также может произойти, так как время, затраченное на процесс, а не из-за внешнего вызова.
Если все вызовы были инструментированы, вероятной основной причиной затраченного времени является процесс. Полезным средством диагностики процесса является Application Insights Profiler.
Что делать, если в портал Azure отображается сообщение об ошибке извлечения данных при переходе по Application Insights?
Эта ошибка означает, что браузеру не удалось вызвать необходимый API или API вернул ответ, указывающий на сбой. Чтобы устранить неполадки в поведении, откройте окно InPrivate браузера и отключите все запущенные расширения браузера, а затем определите, можно ли воспроизвести поведение портала. Если ошибка портала по-прежнему возникает, попробуйте провести тестирование с другими браузерами или другими компьютерами, изучить dns или другие проблемы, связанные с сетью, на клиентском компьютере, где вызовы API завершаются сбоем. Если ошибка портала продолжается и требует дополнительного изучения, соберите трассировку сети браузера при воспроизведении неожиданного поведения портала, откройте вариант поддержки из портал Azure.