Это сообщение в блоге является частью серии “развертывание приложения Spring Boot и Angular в Azure”, вот полный список сообщений:
- Создание приложения Spring Boot и Angular для Azure (1/7)
- Создание и настройка веб-приложения Azure и MySQL для размещения приложения Spring Boot (2/7)
- Использование конвейеров Azure для создания, тестирования и развертывания приложения Spring Boot и Angular (3/7)
- Использование Azure Application Insights с Spring Boot (4/7)
- Использование Azure Application Insights с Angular (5/7)
- Настройка Azure CDN для повышения производительности Angular (6/7)
- Настройка кэша Azure Redis для повышения производительности Spring Boot (7/7)
Что такое Azure Application Insights и почему вы должны его использовать
В предыдущих частях этой серии мы разработали приложение Spring Boot и Angular, создали инфраструктуру Azure и автоматизировали развертывание нашего приложения в Azure. Но что происходит, когда что-то идет не так? И мы говорили о затратах и бюджетах, но как мы можем их оптимизировать, если мы не знаем, как ведет себя наше приложение, когда пользователи обращаются к нему?
Azure Application Insights – это служба управления производительностью приложений (APM), предоставляемая Azure. Это первое, что вы должны настроить в любом приложении: без мониторинга и анализа вы не сможете оценить производительность, инфраструктуру или неправильную конфигурацию, которые могут возникнуть в вашем приложении.
Azure Application Insights – это привлекательное решение:
- Он очень полный, как мы увидим в этой серии сообщений в блоге, мы будем отслеживать как серверное (Java) приложение, так и интерфейсное (Angular) приложение
- Он предоставляет расширенные и легко настраиваемые информационные панели
- Он имеет бесплатный уровень (подходит для простых приложений) и в остальном очень недорог
- Если вы являетесь пользователем Azure, очевидно, что это будет ваш выбор по умолчанию, поскольку он включен
Настройка аналитики приложений Azure
Когда мы создавали нашу инфраструктуру Azure в части 2 этой серии, мы попросили Azure Web App автоматически настроить мониторинг. Если вы не поставили этот флажок, не беспокойтесь! Просто найдите “Application Insights” в Azure portal и создайте новый экземпляр. Важно иметь “Ключ инструментария”, который доступен на странице “Обзор” вашего экземпляра Azure Application Insights и который будет использоваться для отправки данных мониторинга из вашего запущенного приложения.
Используйте Azure Application Insights с помощью Spring Boot
Теперь мы собираемся настроить Azure Application Insights в приложении Spring Boot.
В настоящее время корпорация Майкрософт предоставляет средство начальной загрузки Spring для автоматической настройки Azure Application Insights: applicationinsights-spring-boot-starter
, которое доступно здесь, в Maven Central , и которое полностью задокументировано здесь . Это делается командой Azure Application Insights, и это начало, которое мы будем использовать здесь.
Пожалуйста, обратите внимание, что корпорация Майкрософт также предоставляет azure-spring-boot-metrics-starter
, который доступен здесь, в Maven Central , и который полностью документирован здесь , и добавляет поддержку мониторинга микрометров поверх предыдущего starter. Его текущая версия, на момент написания этой статьи, использует другой конфигурационный ключ как applicationinsights-spring-boot-starter
, поэтому мы думаем, что, возможно, лучше подождать, пока оба запуска не будут использовать одну и ту же конфигурацию.
Поскольку applicationinsights-spring-boot-starter
является стартером загрузки Spring, все, что нужно сделать, это добавить его библиотеку в проекта pom.xml
и настройте его azure.application.insights.instrumentation.ключ
Свойство пружинного ботинка. Есть несколько способов сделать это, мы выберем самый простой и добавим его в наш конфигурационный файл application-prod.yml
, чтобы у нас был настроен мониторинг в рабочей среде.
Затем необходимо выполнить еще несколько шагов настройки:
- Удалите зависимость
micrometer-registry-prometheus
впроекта pom.xml
, поскольку Prometheus теперь заменен Azure Application Insights. - Добавьте зависимость
applicationinsights-logging-logback
, чтобы все производственные журналы отправлялись в Azure Application Insights. Поскольку мы настроили ключLOGGING_LEVEL
при настройке веб-приложения Azure, у нас должна быть вся информация об отладке из нашего бизнес-кода. - Перенастроить
logback-spring.xml
файл, чтобы получить ключ инструментария Azure Application Insights из Spring Boot, и установитеcom.microsoft.applicationinsights
на уровнеINFO
(в противном случае он залил бы нас информацией).
Вы можете проверить изменения, которые мы только что внесли для настройки Azure Application Insights, в this commit .
Поскольку мы также настроили обратный вход для отправки всех журналов в Azure Application Insights, теперь они будут агрегироваться там и будут легко доступны для поиска:
Теперь, когда все настроено, и поскольку мы уже настроили полный конвейер непрерывной интеграции/непрерывного развертывания Все, что нам нужно сделать, это отправить наш код на GitHub и наблюдать, как наше приложение автоматически обновляется.
Как только ваше приложение будет развернуто, пришло время проверить, как работает Application Insights! Перейдите к своему экземпляру Application Insights и выберите “Поток живых показателей”. Если ваше приложение подключено, значит, все готово!
Тестирование аналитики приложений Azure
JHipster сгенерировал тесты транспортира для нашего приложения: откройте protractor.conf.js
файл и измените свойство baseUrl
, чтобы оно указывало на ваш экземпляр веб-приложения Azure. Затем вы можете запустить тесты транспортира, набрав npm run e2e
. Это запустит браузер и выполнит ряд сценариев в приложении, включая сценарии сбоев.
Если все настроено правильно, в “Потоке живых показателей” вы должны увидеть эти запущенные сценарии:
Затем вы можете использовать обычные панели мониторинга для проверки производительности вашего приложения Spring:
Эти информационные панели очень полны, и они позволят вам лучше понять потенциальные проблемы в вашем приложении. В следующем посте этой серии мы выполним ту же конфигурацию, но с помощью интерфейсного приложения Angular: тогда вы сможете получить сводное представление как о взаимодействии пользователя с интерфейсом, так и о показателях производительности на стороне сервера!
Оригинал: “https://dev.to/azure/using-azure-application-insights-with-spring-boot-4-7-263i”