Рубрики
Без рубрики

Использование Azure Application Insights с Spring Boot (4/7)

В этой серии сообщений в блоге мы собираемся развернуть приложение с полным стеком в Azure и узнать, как эффективно и с минимальными затратами настроить множество компонентов. Помеченный как spring, angular, azure, java.

Это сообщение в блоге является частью серии “развертывание приложения 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”