Краткое руководство. Мониторинг приложений 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
На портале Azure перейдите на страницу Служба | Общие сведения и выберите Журналы в разделе Мониторинг. Выберите Выполнить для одного из примеров запросов Azure Spring Apps.
Измените запрос, чтобы удалить предложения WHERE, которые ограничивают отображение предупреждений и журналов ошибок.
Выберите Выполнить. Отображаются журналы. Дополнительные сведения см. в статье Начало работы с запросами журнала в Azure Monitor.
Дополнительные сведения о языке запросов, который используется в Log Analytics, см. в статье Запросы журналов Azure Monitor. Чтобы запросить все журналы Log Analytics из централизованного клиента, ознакомьтесь со статьей Azure Data Explorer.
Метрики
На портале Azure перейдите на страницу служба | Общие сведения и выберите Метрики в разделе Мониторинг. Добавьте первую метрику, выбрав одну из метрик .NET в разделе "Производительность" (.NET) или "Запрос" (.NET) в раскрывающемся списке "Метрика" и "Среднее значение для агрегирования", чтобы просмотреть временная шкала для этой метрики.
На панели инструментов нажмите Добавить фильтр и выберите
App=solar-system-weather
, чтобы увидеть загрузку ЦП только для приложения solar-system-weather.Закройте фильтр, созданный на предыдущем шаге, выберите "Применить разделение" и выберите "Приложение для значений ", чтобы просмотреть использование ЦП различными приложениями.
Распределенная трассировка
На портале Azure перейдите на страницу служба | Общие сведения и выберите Distributed tracing (Распределенная трассировка) в разделе Мониторинг. Затем перейдите на вкладку View application map (Просмотр схемы приложения) справа.
Теперь вы можете видеть состояние вызовов между приложениями.
Выберите ссылку между солнечной системой-погодой и планетой-погодным поставщиком , чтобы просмотреть дополнительные сведения, такие как самые медленные вызовы методами HTTP.
Наконец, выберите Анализ работы, чтобы воспользоваться расширенными возможностями встроенных средств анализа производительности.
Встроенные возможности мониторинга 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
Вы отображаете журналы, как показано ниже:
Совет
Используйте az spring app logs -h
для просмотра дополнительных параметров и функциональных возможностей потоковой передачи журналов.
Дополнительные сведения о языке запросов, который используется в Log Analytics, см. в статье Запросы журналов Azure Monitor. Чтобы запросить все журналы Log Analytics из централизованного клиента, ознакомьтесь со статьей Azure Data Explorer.
Служба Log Analytics
Перейдите на страницу служба | Общие сведения и выберите Журналы в разделе Мониторинг. Выберите Выполнить для одного из примеров запросов Azure Spring Apps.
Затем отображаются отфильтрованные журналы. Дополнительные сведения см. в статье Начало работы с запросами журнала в Azure Monitor.
Метрики
Перейдите на страницу Application Insights и перейдите на страницу метрик . Вы можете просмотреть метрики, внесенные приложениями Spring Boot, модулями Spring и зависимостями.
На следующей диаграмме показаны gateway_requests
(Spring Cloud Gateway), hikaricp_connections
(JDBC Подключение ions) и http_client_requests
.
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
Эти настраиваемые метрики можно увидеть на странице метрик :
Вы можете использовать функцию тестирования доступности в Application Insights и отслеживать доступность приложений:
Перейдите на страницу динамических метрик, чтобы просмотреть динамические метрики с низкой задержкой (менее одной секунды):
Трассировка
Откройте Application Insights, созданный с помощью Azure Spring Apps, и запустите мониторинг приложений Spring.
Перейдите на страницу карты приложений:
Перейдите на страницу производительности :
Перейдите на вкладку Зависимостей , где можно увидеть номер производительности для зависимостей, в частности вызовы SQL:
Выберите вызов SQL, чтобы просмотреть сквозную транзакцию в контексте:
Перейдите на страницу "Сбои" и вкладку "Исключения", где можно просмотреть коллекцию исключений:
Выберите исключение, чтобы просмотреть сквозную транзакцию и стекtrace в контексте:
Очистка ресурсов
Если вы планируете продолжить работу с последующими краткими руководствами и статьями, эти ресурсы можно не удалять. Удалите ненужную группу ресурсов. Ресурсы в ней будут также удалены. Чтобы удалить группу ресурсов с помощью 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 см. в следующих статьях: