Поделиться через


Отслеживание зависимостей в Application Insights

Зависимость — это компонент, вызываемый приложением. Как правило, это служба, вызываемая с использованием HTTP, база данных или файловая система. Application Insights измеряет длительность вызовов зависимостей и указывает, завершается ли ошибка или нет, и собирает такие сведения, как имя зависимости. Вы можете анализировать отдельные вызовы зависимостей и сопоставлять их с запросами и исключениями.

Автоматически отслеживаемые зависимости

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

Если зависимость не находится в списке, ее можно отслеживать вручную, см. в разделе " Отслеживание зависимостей вручную".

Список всех автоматических зависимостей см. на вкладках, относящихся к языку, в разделе "Добавление и изменение Azure Monitor OpenTelemetry" для приложений .NET, Java, Node.jsи Python.

Как выполняется автоматическое отслеживание зависимостей?

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

  • Библиотеки инструментирования OpenTelemetry используются для автоматического сбора зависимостей, таких как ВЫЗОВы HTTP, SQL и Azure SDK. Эти библиотеки объединяются в поддерживаемые платформы и клиентские библиотеки с помощью DiagnosticSource или эквивалентных механизмов.

  • В поддерживаемых средах, таких как Службы приложений Azure, автоинструментация доступна и включена по умолчанию, внедряя сборщики телеметрии во время выполнения без изменений кода.

  • В других средах разработчики могут вручную настроить инструментирование с помощью пакетов Azure.Monitor.OpenTelemetry.* и API OpenTelemetry для управления отслеживанием зависимостей и способом их обогащения или фильтрации.

Отслеживание зависимостей вручную

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

Подсказка

Для новых проектов рекомендуется использовать OpenTelemetry для повышения гибкости и будущей совместимости.

Сведения о том, как вручную отслеживать зависимости, см. в статье "Добавление и изменение Azure Monitor OpenTelemetry" для приложений .NET, Java, Node.jsи Python.

Где найти данные зависимостей

Следующие средства и представления в Application Insights упрощают изучение и анализ телеметрии зависимостей:

Представления Описание
Карта приложений Предоставляет визуальное представление зависимостей приложения и их связей с внешними службами.
Диагностика транзакций Отображает подробные сведения о транзакциях, сопоставляя операции на стороне сервера с вызовами зависимостей.
Вкладка браузера в сбоях и представлениях производительности Выделяет вызовы AJAX из клиентских браузеров.
Вкладка "Сервер" в представлениях о сбоях и производительности Позволяет детализировать медленные или неудачные запросы сервера и проверять связанные вызовы зависимостей.

Примеры трассировки от запросов к зависимостям и неудачным запросам, связанным с неудачными вызовами зависимостей.
Журналы Azure Monitor Включает расширенные запросы и аналитику для телеметрии зависимостей.

Примеры отслеживания зависимостей с помощью KQL.

Диагностика медленных запросов

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

Трассировка от запросов к зависимостям

Выберите левую вкладку «Производительность», а затем выберите вкладку «Зависимости» в верхней части.

Выберите Имя зависимости в разделе Общее. После выбора зависимости отображается график распределения длительности этой зависимости.

Снимок экрана с открытой вкладкой

Нажмите кнопку Примеры в правом нижнем углу. Затем выберите пример, чтобы просмотреть полные сведения о транзакции.

Снимок экрана с выбором примера для просмотра полных сведений о транзакции.

Проанализируйте ваш текущий сайт

Профилировщик .NET отслеживает HTTP-вызовы к вашему динамическому сайту и показывает функции в коде, которые заняли самое длительное время.

Неудачные запросы

Неудачно завершенные запросы также могут быть связаны с неудачными вызовами зависимостей.

Выберите вкладку "Сбои слева" и выберите вкладку "Зависимости" в верхней части экрана.

Снимок экрана, который показывает процесс выбора диаграммы неудачных запросов.

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

Журналы (Аналитика)

Вы можете отслеживать зависимости, используя язык запросов Kusto. Ниже приведены некоторые примеры.

  • Поиск ошибок вызова зависимостей:

    dependencies | where success != "True" | take 10
    
  • Поиск вызовов AJAX:

    dependencies | where client_Type == "Browser" | take 10
    
  • Найдите вызовы зависимостей, связанные с запросами.

    dependencies
    | where timestamp > ago(1d) and  client_Type != "Browser"
    | join (requests | where timestamp > ago(1d))
        on operation_Id  
    
  • Поиск вызовов AJAX, связанных с просмотром страниц.

    dependencies
    | where timestamp > ago(1d) and  client_Type == "Browser"
    | join (browserTimings | where timestamp > ago(1d))
        on operation_Id
    

Пакет SDK с открытым исходным кодом

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

Дальнейшие шаги