Samla in Spring Cloud Resilience4J-kretsbrytarmått med mikrometer (förhandsversion)
Kommentar
Basic-, Standard- och Enterprise-planerna kommer att vara inaktuella från och med mitten av mars 2025, med en 3-årig pensionsperiod. Vi rekommenderar att du övergår till Azure Container Apps. Mer information finns i meddelandet om azure Spring Apps-pensionering.
Standardförbrukningen och den dedikerade planen kommer att vara inaktuell från och med den 30 september 2024, med en fullständig avstängning efter sex månader. Vi rekommenderar att du övergår till Azure Container Apps. Mer information finns i Migrera Azure Spring Apps Standard-förbrukning och dedikerad plan till Azure Container Apps.
Den här artikeln gäller för:✅ Basic/Standard ✅ Enterprise
Den här artikeln visar hur du samlar in Spring Cloud Resilience4j Circuit Breaker Metrics med Application Insights Java in-process agent. Med den här funktionen kan du övervaka måtten för Resilience4j-kretsbrytaren från Application Insights med Micrometer.
Demonstrationen spring-cloud-circuit-breaker-demo visar hur övervakningen fungerar.
Förutsättningar
- Installera Git, Maven och Java, om de inte redan är installerade på utvecklingsdatorn.
Skapa och distribuera appar
Använd följande steg för att skapa och distribuera exempelprogrammen.
Använd följande kommando för att klona och skapa demolagringsplatsen:
git clone https://github.com/spring-cloud-samples/spring-cloud-circuitbreaker-demo.git cd spring-cloud-circuitbreaker-demo && mvn clean package -DskipTests
Använd följande kommando för att skapa en Azure Spring Apps-tjänstinstans:
az spring create \ --resource-group ${resource-group-name} \ --name ${Azure-Spring-Apps-instance-name}
Använd följande kommandon för att skapa program med slutpunkter:
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
Använd följande kommandon för att distribuera programmen:
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
Använd följande kommando för att skapa en Azure Spring Apps-tjänstinstans:
Kommentar
Om din prenumeration aldrig har använts för att skapa en Enterprise-planinstans av Azure Spring Apps måste du köra följande kommando:
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
Använd följande kommandon för att skapa program med slutpunkter:
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
Använd följande kommandon för att distribuera programmen:
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
Kommentar
Inkludera det nödvändiga beroendet för 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>
Koden måste använda API:et
CircuitBreakerFactory
, som implementeras som enbean
automatiskt skapad när du inkluderar en Spring Cloud Circuit Breaker-start. Mer information finns i Spring Cloud Circuit Breaker.Följande två beroenden har konflikter med Resilient4j-paket. Se till att du inte inkluderar dem.
<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>
Gå till url:en som tillhandahålls av gatewayprogram och få åtkomst till slutpunkten från spring-cloud-circuit-breaker-demo på följande sätt:
/get
/delay/{seconds}
/fluxdelay/{seconds}
Leta upp Resilence4j-mått på Azure Portal
I din Azure Spring Apps-instans väljer du Application Insights i navigeringsfönstret och sedan Application Insights på sidan.
Kommentar
Om du inte aktiverar Application Insights kan du aktivera Java In-Process-agenten. Mer information finns i Avsnittet Hantera Application Insights med hjälp av Azure Portal i Använda Application Insights Java In-Process Agent i Azure Spring Apps.
Aktivera dimensionsinsamling för resilience4j-mått. Mer information finns i avsnittet Anpassade måttdimensioner och föraggregering i Log-baserade och föraggregerade mått i Application Insights.
Välj Mått i navigeringsfönstret. Sidan Mått innehåller listrutor och alternativ för att definiera diagrammen i den här proceduren. För alla diagram anger du Måttnamnområde till azure.applicationinsights.
Ange Mått till resilience4j_circuitbreaker_buffered_calls och ange sedan aggregering till Genomsnittlig.
Ange Mått till resilience4j_circuitbreaker_calls och ange sedan aggregering till Genomsnittlig.
Ange Mått till resilience4j_circuitbreaker_calls och ange sedan aggregering till Genomsnittlig. Välj Lägg till filter och ange Namn till Fördröjning.
Ange Mått till resilience4j_circuitbreaker_calls och ange sedan aggregering till Genomsnittlig. Välj Använd delning och ange Dela efter för typ.
Ange Mått till resilience4j_circuitbreaker_calls och ange sedan aggregering till Genomsnittlig. Välj Lägg till mått och ange Mått till resilience4j_circuitbreaker_buffered_calls och ange sedan aggregering till Genomsnittlig. Välj Lägg till mått igen och ange Mått till resilience4j_circuitbreaker_slow_calls och ange sedan Aggregering inställd på Genomsnittlig.
I din Azure Spring Apps-instans väljer du Application Insights i navigeringsfönstret och väljer sedan Standard application insights på sidan.
Kommentar
Om det inte finns några tillgängliga standardprograminsikter kan du aktivera Java In-Process-agenten. Mer information finns i Avsnittet Hantera Application Insights med hjälp av Azure Portal i Använda Application Insights Java In-Process Agent i Azure Spring Apps.
Aktivera dimensionsinsamling för resilience4j-mått. Mer information finns i avsnittet Anpassade måttdimensioner och föraggregering i Log-baserade och föraggregerade mått i Application Insights.
Välj Mått i navigeringsfönstret. Sidan Mått innehåller listrutor och alternativ för att definiera diagrammen i den här proceduren. För alla diagram anger du Måttnamnområde till azure.applicationinsights.
Ange Mått till resilience4j_circuitbreaker_buffered_calls och ange sedan aggregering till Genomsnittlig.
Ange Mått till resilience4j_circuitbreaker_calls och ange sedan aggregering till Genomsnittlig.
Ange Mått till resilience4j_circuitbreaker_calls och ange sedan aggregering till Genomsnittlig. Välj Lägg till filter och ange Namn till Fördröjning.
Ange Mått till resilience4j_circuitbreaker_calls och ange sedan aggregering till Genomsnittlig. Välj Använd delning och ange Dela efter för typ.
Ange Mått till resilience4j_circuitbreaker_calls och ange sedan aggregering till Genomsnittlig. Välj Lägg till mått och ange Mått till resilience4j_circuitbreaker_buffered_calls och ange sedan aggregering till Genomsnittlig. Välj Lägg till mått igen och ange Mått till resilience4j_circuitbreaker_slow_calls och ange sedan Aggregering inställd på Genomsnittlig.