Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Примечание.
Планы Basic, Standardи Enterprise вступили в период вывода из обращения 17 марта 2025 года. Дополнительные сведения см. в объявлении о выходе на пенсию в Azure Spring Apps.
План стандартного потребления и выделенный план вошли в период вывода из эксплуатации 30 сентября 2024 года, с полным завершением работы к концу марта 2025 года. Дополнительные сведения см. в статье «Миграция стандартного потребления и выделенного плана Azure Spring Apps в приложения контейнеров Azure».
Эта статья относится к:✅ Basic/Standard ✅ Enterprise
В этой статье описывается сбор метрик размыкателя цепи Spring Cloud Resilience4j с помощью внутрипроцессного агента Java в Application Insights. С помощью этой функции можно отслеживать метрики схемы отказа Resilience4j в Application Insights с использованием Micrometer.
Демонстрация spring-cloud-circuit-breaker-demo показывает, как работает мониторинг.
Предварительные условия
- Установите Git, Maven и Java, если он еще не установлен на компьютере разработки.
Сборка и развертывание приложений
Выполните следующие действия, чтобы создать и развернуть примеры приложений.
Используйте следующую команду, чтобы клонировать и создать демонстрационный репозиторий:
git clone https://github.com/spring-cloud-samples/spring-cloud-circuitbreaker-demo.git cd spring-cloud-circuitbreaker-demo && mvn clean package -DskipTests
Чтобы создать экземпляр службы "Приложения Azure Spring", используйте следующую команду:
az spring create \ --resource-group ${resource-group-name} \ --name ${Azure-Spring-Apps-instance-name}
Используйте следующие команды для создания приложений с конечными точками:
az spring app create \ --resource-group ${resource-group-name} \ --service ${Azure-Spring-Apps-instance-name} \ --name resilience4j \ --assign-endpoint az spring app create \ --resource-group ${resource-group-name} \ --service ${Azure-Spring-Apps-instance-name} \ --name reactive-resilience4j \ --assign-endpoint
Используйте следующие команды для развертывания приложений:
az spring app deploy \ --resource-group ${resource-group-name} \ --service ${Azure-Spring-Apps-instance-name} \ --name resilience4j \ --env resilience4j.circuitbreaker.instances.backendA.registerHealthIndicator=true \ --artifact-path ./spring-cloud-circuitbreaker-demo-resilience4j/target/spring-cloud-circuitbreaker-demo-resilience4j-0.0.1-SNAPSHOT.jar az spring app deploy \ --resource-group ${resource-group-name} \ --service ${Azure-Spring-Apps-instance-name} \ --name reactive-resilience4j \ --env resilience4j.circuitbreaker.instances.backendA.registerHealthIndicator=true \ --artifact-path ./spring-cloud-circuitbreaker-demo-reactive-resilience4j/target/spring-cloud-circuitbreaker-demo-reactive-resilience4j-0.0.1-SNAPSHOT.jar
Чтобы создать экземпляр службы "Приложения Azure Spring", используйте следующую команду:
Примечание.
Если подписка никогда не использовалась для создания экземпляра плана Enterprise в Azure Spring Apps, необходимо выполнить следующую команду:
az term accept \ --publisher vmware-inc --product azure-spring-cloud-vmware-tanzu-2 --plan asa-ent-hr-mtr
az spring create \ --resource-group ${resource-group-name} \ --name ${Azure-Spring-Apps-instance-name} \ --sku Enterprise
Используйте следующие команды для создания приложений с конечными точками:
az spring app create \ --resource-group ${resource-group-name} \ --service ${Azure-Spring-Apps-instance-name} \ --name resilience4j \ --assign-endpoint az spring app create \ --resource-group ${resource-group-name} \ --service ${Azure-Spring-Apps-instance-name} \ --name reactive-resilience4j \ --assign-endpoint
Используйте следующие команды для развертывания приложений:
az spring app deploy \ --resource-group ${resource-group-name} \ --service ${Azure-Spring-Apps-instance-name} \ --name resilience4j \ --env resilience4j.circuitbreaker.instances.backendA.registerHealthIndicator=true \ --artifact-path ./spring-cloud-circuitbreaker-demo-resilience4j/target/spring-cloud-circuitbreaker-demo-resilience4j-0.0.1-SNAPSHOT.jar az spring app deploy \ --resource-group ${resource-group-name} \ --service ${Azure-Spring-Apps-instance-name} \ --name reactive-resilience4j \ --env resilience4j.circuitbreaker.instances.backendA.registerHealthIndicator=true \ --artifact-path ./spring-cloud-circuitbreaker-demo-reactive-resilience4j/target/spring-cloud-circuitbreaker-demo-reactive-resilience4j-0.0.1-SNAPSHOT.jar
Примечание.
Включите требуемую зависимость для Resilience4j:
<dependency> <groupId>io.github.resilience4j</groupId> <artifactId>resilience4j-micrometer</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-circuitbreaker-resilience4j</artifactId> </dependency>
Код должен использовать
CircuitBreakerFactory
API, который реализуется какbean
автоматически созданный при включении начального средства разбиения цепи Spring Cloud. Дополнительные сведения см. в разделе Spring Cloud Circuit Breaker.Следующие две зависимости конфликтуют с пакетами Resilient4j. Убедитесь, что вы не включаете их.
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-sleuth</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zipkin</artifactId> </dependency>
Перейдите по URL-адресу, предоставленному приложениями шлюза, и получите доступ к конечной точке из spring-cloud-circuit-breaker-demo, как показано ниже.
/get
/delay/{seconds}
/fluxdelay/{seconds}
Найдите метрики Resilence4j в портал Azure
В экземпляре Azure Spring Apps выберите Application Insights в области навигации и выберите Application Insights на странице.
Примечание.
Если вы не включите Application Insights, вы можете включить агент Java in-Process. Для получения дополнительной информации см. раздел "Управление Application Insights с помощью портала Azure" в "Использование агента Java в процессе Application Insights в Azure Spring Apps".
Включите сбор данных измерений для метрик resilience4j. Для получения дополнительной информации см. раздел "Измерения пользовательских метрик и предварительная агрегация" в статье "Метрики на основе журналов и предварительно агрегированные метрики в Application Insights".
Выберите Метрики в области навигации. Страница метрик предоставляет раскрывающиеся меню и параметры для определения диаграмм в рамках этой процедуры. Для всех диаграмм установите пространство метрик на azure.applicationinsights.
Задайте для метрики значение resilience4j_circuitbreaker_buffered_calls, а затем задайте для агрегированиязначение Avg.
Установите Metric на resilience4j_circuitbreaker_calls, а затем установите Aggregation на Avg.
Задайте для метрики значение resilience4j_circuitbreaker_calls, а затем задайте для агрегированиязначение Avg. Выберите "Добавить фильтр" и задайте для параметра "Имя" значение "Задержка".
Задайте метрику на resilience4j_circuitbreaker_calls, а затем установите агрегирование на Avg. Выберите Применить разделение и установите Разделить по на тип.
Задайте метрику как resilience4j_circuitbreaker_calls, а затем установите агрегирование на Avg. Выберите Добавить метрику и задайте метрику как resilience4j_circuitbreaker_buffered_calls, а затем установите агрегирование на Avg. Нажмите снова Добавить метрику и задайте метрику как resilience4j_circuitbreaker_slow_calls, а затем установите агрегирование на Avg.
В экземпляре Azure Spring Apps выберите Application Insights в области навигации, а затем выберите Application Insights по умолчанию на странице.
Примечание.
Если нет доступного Application Insights по умолчанию, можно включить агент Java In-Process. Для получения дополнительной информации см. в разделе "Управление Application Insights с использованием портала Azure" документа "Использование агента Java в процессе Application Insights в Azure Spring Apps".
Включите коллекцию измерений для метрик устойчивости 4j. Для получения дополнительной информации см. раздел "Измерения пользовательских метрик и предварительная агрегация" в "Метрики на основе журналов и предварительно агрегированные метрики в Application Insights".
Выберите Метрики в области навигации. Страница метрик предоставляет выпадающие меню и опции для настройки диаграмм в рамках данной процедуры. Для всех диаграмм задайте пространство имен метрик на azure.applicationinsights.
Задайте метрику на значение resilience4j_circuitbreaker_buffered_calls, а затем установите агрегацию на среднее значение.
Задайте для метрики значение resilience4j_circuitbreaker_calls, а затем задайте для агрегированиязначение Avg.
Установите метрику на resilience4j_circuitbreaker_calls, а затем установите агрегацию на Avg. Выберите Добавить фильтр и задайте Имя на Задержка.
Задайте метрику на resilience4j_circuitbreaker_calls, а затем задайте агрегирование на Avg. Выберите Применить разделение и установите Разделить по на тип.
Задайте значение метрики как resilience4j_circuitbreaker_calls, а затем установите агрегирование как Avg. Выберите Добавить метрику и задайте значение метрики как resilience4j_circuitbreaker_buffered_calls, а затем установите агрегирование как Avg. Нажмите Добавить метрику еще раз и задайте значение метрики как resilience4j_circuitbreaker_slow_calls, а затем установите агрегирование как Avg.