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


Краткое руководство. Мониторинг приложений Azure Spring Apps с помощью журналов, метрик и трассировки

Примечание.

Azure Spring Apps — это новое название службы Azure Spring Cloud. Старое название будет еще некоторое время встречаться в наших материалах, пока мы не обновим ресурсы, такие как снимки экрана, видео и схемы.

Эта статья относится к: ✔️ Basic/Standard ❌ Enterprise

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

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

Необходимые компоненты

Журналы

Просмотреть журналы в Azure Spring Apps можно одним из таких двух способов: с помощью функции Потоковая передача журналов в режиме реального времени для каждого экземпляра приложения или Log Analytics для агрегированных журналов с расширенными возможностями запросов.

Потоковая передача журналов

Потоковую передачу журнала можно задействовать в Azure CLI с помощью следующей команды.

az spring app logs --name solar-system-weather --follow

Вы видите выходные данные, аналогичные следующему примеру:

=> ConnectionId:0HM2HOMHT82UK => RequestPath:/weatherforecast RequestId:0HM2HOMHT82UK:00000003, SpanId:|e8c1682e-46518cc0202c5fd9., TraceId:e8c1682e-46518cc0202c5fd9, ParentId: => Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather.Controllers.WeatherForecastController.Get (Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather)
Executing action method Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather.Controllers.WeatherForecastController.Get (Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather) - Validation state: Valid
←[40m←[32minfo←[39m←[22m←[49m: Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather.Controllers.WeatherForecastController[0]

=> ConnectionId:0HM2HOMHT82UK => RequestPath:/weatherforecast RequestId:0HM2HOMHT82UK:00000003, SpanId:|e8c1682e-46518cc0202c5fd9., TraceId:e8c1682e-46518cc0202c5fd9, ParentId: => Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather.Controllers.WeatherForecastController.Get (Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather)
Retrieved weather data from 4 planets
←[40m←[32minfo←[39m←[22m←[49m: Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker[2]

=> ConnectionId:0HM2HOMHT82UK => RequestPath:/weatherforecast RequestId:0HM2HOMHT82UK:00000003, SpanId:|e8c1682e-46518cc0202c5fd9., TraceId:e8c1682e-46518cc0202c5fd9, ParentId: => Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather.Controllers.WeatherForecastController.Get (Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather)
Executing ObjectResult, writing value of type 'System.Collections.Generic.KeyValuePair`2[[System.String, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.String, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]][]'.
←[40m←[32minfo←[39m←[22m←[49m: Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker[2]

Совет

Используйте az spring app logs -h для просмотра дополнительных параметров и функциональных возможностей потоковой передачи журналов.

Служба Log Analytics

  1. На портале Azure перейдите на страницу Служба | Общие сведения и выберите Журналы в разделе Мониторинг. Выберите Выполнить для одного из примеров запросов Azure Spring Apps.

    Снимок экрана: портал Azure, на котором показана панель журналов с открытой страницей

  2. Измените запрос, чтобы удалить предложения WHERE, которые ограничивают отображение предупреждений и журналов ошибок.

  3. Выберите Выполнить. Отображаются журналы. Дополнительные сведения см. в статье Начало работы с запросами журнала в Azure Monitor.

    Снимок экрана: портал Azure, на котором показан результат запроса Logs Analytics.

  4. Дополнительные сведения о языке запросов, который используется в Log Analytics, см. в статье Запросы журналов Azure Monitor. Чтобы запросить все журналы Log Analytics из централизованного клиента, ознакомьтесь со статьей Azure Data Explorer.

Метрики

  1. На портале Azure перейдите на страницу служба | Общие сведения и выберите Метрики в разделе Мониторинг. Добавьте первую метрику, выбрав одну из метрик .NET в разделе "Производительность" (.NET) или "Запрос" (.NET) в раскрывающемся списке "Метрика" и "Среднее значение для агрегирования", чтобы просмотреть временная шкала для этой метрики.

    Снимок экрана: портал Azure, на котором показана страница метрик с доступными фильтрами.

  2. На панели инструментов нажмите Добавить фильтр и выберите App=solar-system-weather, чтобы увидеть загрузку ЦП только для приложения solar-system-weather.

    Снимок экрана: портал Azure, на котором показана страница

  3. Закройте фильтр, созданный на предыдущем шаге, выберите "Применить разделение" и выберите "Приложение для значений ", чтобы просмотреть использование ЦП различными приложениями.

    Снимок экрана: портал Azure, на котором показана страница метрик с выделенными параметрами разделения значений, ограничения и сортировки.

Распределенная трассировка

  1. На портале Azure перейдите на страницу служба | Общие сведения и выберите Distributed tracing (Распределенная трассировка) в разделе Мониторинг. Затем перейдите на вкладку View application map (Просмотр схемы приложения) справа.

    Снимок экрана: портал Azure, на котором показана страница распределенной трассировки.

  2. Теперь вы можете видеть состояние вызовов между приложениями.

    Снимок экрана: портал Azure, на котором показана страница карты приложения.

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

    Снимок экрана: портал Azure, в котором показаны сведения о карте приложения.

  4. Наконец, выберите Анализ работы, чтобы воспользоваться расширенными возможностями встроенных средств анализа производительности.

    Снимок экрана: портал Azure, на котором показана страница

Встроенные возможности мониторинга Azure Spring Apps позволяют легко выполнять отладку и мониторинг при возникновении сложных проблем. Azure Spring Apps интегрирует Spring Cloud Sleuth с Azure Application Insights. Эта интеграция предоставляет широкие возможности ведения журналов, анализа метрик и распределенной трассировки с помощью портала Azure. В следующих процедурах объясняется, как использовать потоковую передачу журналов, анализ журналов, метрики и распределенную трассировку с развернутыми приложениями PetClinic.

Необходимые компоненты

Журналы

Просмотреть журналы в Azure Spring Apps можно одним из таких двух способов: с помощью функции Потоковая передача журналов в режиме реального времени для каждого экземпляра приложения или Log Analytics для агрегированных журналов с расширенными возможностями запросов.

Потоковая передача журналов

Потоковую передачу журнала можно задействовать в Azure CLI с помощью следующей команды.

az spring app logs \
    --resource-group <resource-group-name> \
    --service <service-instance-name> \
    --name api-gateway \
    --follow

Вы отображаете журналы, как показано ниже:

Снимок экрана: выходные данные потоковой передачи журналов Azure CLI.

Совет

Используйте az spring app logs -h для просмотра дополнительных параметров и функциональных возможностей потоковой передачи журналов.

Дополнительные сведения о языке запросов, который используется в Log Analytics, см. в статье Запросы журналов Azure Monitor. Чтобы запросить все журналы Log Analytics из централизованного клиента, ознакомьтесь со статьей Azure Data Explorer.

Служба Log Analytics

  1. Перейдите на страницу служба | Общие сведения и выберите Журналы в разделе Мониторинг. Выберите Выполнить для одного из примеров запросов Azure Spring Apps.

    Снимок экрана: портал Azure, на котором показана страница

  2. Затем отображаются отфильтрованные журналы. Дополнительные сведения см. в статье Начало работы с запросами журнала в Azure Monitor.

    Снимок экрана: портал Azure, в котором показан результат запроса отфильтрованных журналов.

Метрики

Перейдите на страницу Application Insights и перейдите на страницу метрик . Вы можете просмотреть метрики, внесенные приложениями Spring Boot, модулями Spring и зависимостями.

На следующей диаграмме показаны gateway_requests (Spring Cloud Gateway), hikaricp_connections (JDBC Подключение ions) и http_client_requests.

Снимок экрана портал Azure, на котором показана страница

Spring Boot регистрирует несколько основных метрик, включая JVM, ЦП, Tomcat и Logback. Автоматическая настройка Spring Boot позволяет инструментирование запросов, обрабатываемых Spring MVC. Все три контроллера REST (OwnerResource, PetResourceи VisitResource) инструментируются @Timed заметкой Micrometer на уровне класса.

Приложение customers-service включает следующие пользовательские метрики:

  • @Timed: petclinic.owner
  • @Timed: petclinic.pet

Приложение visits-service включает следующие пользовательские метрики:

  • @Timed: petclinic.visit

Эти настраиваемые метрики можно увидеть на странице метрик :

Снимок экрана: портал Azure, на котором показана страница

Вы можете использовать функцию тестирования доступности в Application Insights и отслеживать доступность приложений:

Снимок экрана: портал Azure, на котором показана страница доступности приложения Аналитика с выделенным разделом

Перейдите на страницу динамических метрик, чтобы просмотреть динамические метрики с низкой задержкой (менее одной секунды):

Снимок экрана: портал Azure, на котором показана страница

Трассировка

Откройте Application Insights, созданный с помощью Azure Spring Apps, и запустите мониторинг приложений Spring.

Перейдите на страницу карты приложений:

Снимок экрана: портал Azure, на котором показана страница карты приложений Аналитика приложения с компонентами карты.

Перейдите на страницу производительности :

Снимок экрана: портал Azure, на котором показана страница

Перейдите на вкладку Зависимостей , где можно увидеть номер производительности для зависимостей, в частности вызовы SQL:

Снимок экрана: портал Azure, на котором показана страница

Выберите вызов SQL, чтобы просмотреть сквозную транзакцию в контексте:

Снимок экрана: портал Azure, на котором показана страница сведений о сквозной транзакции.

Перейдите на страницу "Сбои" и вкладку "Исключения", где можно просмотреть коллекцию исключений:

Снимок экрана: портал Azure, на котором показана страница

Выберите исключение, чтобы просмотреть сквозную транзакцию и стекtrace в контексте:

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

Очистка ресурсов

Если вы планируете продолжить работу с последующими краткими руководствами и статьями, эти ресурсы можно не удалять. Удалите ненужную группу ресурсов. Ресурсы в ней будут также удалены. Чтобы удалить группу ресурсов с помощью Azure CLI, используйте следующие команды:

echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."

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

az config set defaults.group=

Следующие шаги

Дополнительные сведения о возможностях мониторинга в Azure Spring Apps см. в следующих статьях: