Metrische gegevens van Spring Cloud Resilience4J-circuitonderbreker verzamelen met Micrometer (preview)
Notitie
De Basic-, Standard- en Enterprise-abonnementen worden afgeschaft vanaf medio maart 2025, met een pensioenperiode van 3 jaar. We raden u aan om over te stappen naar Azure Container Apps. Zie de aankondiging over buitengebruikstelling van Azure Spring Apps voor meer informatie.
Het standaardverbruik en het speciale abonnement worden vanaf 30 september 2024 afgeschaft, met een volledige afsluiting na zes maanden. We raden u aan om over te stappen naar Azure Container Apps. Zie Azure Spring Apps Standard-verbruik en toegewezen abonnement migreren naar Azure Container Apps voor meer informatie.
Dit artikel is van toepassing op:✅ Basic/Standard ✅ Enterprise
In dit artikel leest u hoe u metrische gegevens van Spring Cloud Resilience4j Circuit Breaker verzamelt met application Insights Java in-process agent. Met deze functie kunt u de metrische gegevens van de circuitonderbreker Resilience4j bewaken vanuit Application Insights met Micrometer.
De demo spring-cloud-circuit-breaker-demo laat zien hoe de bewaking werkt.
Vereisten
- Installeer Git, Maven en Java, als dit nog niet is geïnstalleerd op de ontwikkelcomputer.
Apps bouwen en implementeren
Gebruik de volgende stappen om de voorbeeldtoepassingen te bouwen en te implementeren.
Gebruik de volgende opdracht om de demoopslagplaats te klonen en te bouwen:
git clone https://github.com/spring-cloud-samples/spring-cloud-circuitbreaker-demo.git cd spring-cloud-circuitbreaker-demo && mvn clean package -DskipTests
Gebruik de volgende opdracht om een Azure Spring Apps-service-exemplaar te maken:
az spring create \ --resource-group ${resource-group-name} \ --name ${Azure-Spring-Apps-instance-name}
Gebruik de volgende opdrachten om de toepassingen met eindpunten te maken:
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
Gebruik de volgende opdrachten om de toepassingen te implementeren:
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
Gebruik de volgende opdracht om een Azure Spring Apps-service-exemplaar te maken:
Notitie
Als uw abonnement nog nooit is gebruikt om een Enterprise-abonnementexemplaren van Azure Spring Apps te maken, moet u de volgende opdracht uitvoeren:
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
Gebruik de volgende opdrachten om toepassingen met eindpunten te maken:
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
Gebruik de volgende opdrachten om de toepassingen te implementeren:
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
Notitie
Neem de vereiste afhankelijkheid voor Resilience4j op:
<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>
Uw code moet gebruikmaken van de
CircuitBreakerFactory
API, die wordt geïmplementeerd als automatischbean
gemaakt wanneer u een Spring Cloud Circuit Breaker-starter opneemt. Zie Spring Cloud Circuit Breaker voor meer informatie.De volgende twee afhankelijkheden hebben conflicten met Resilient4j-pakketten. Zorg ervoor dat u ze niet opneemt.
<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>
Navigeer als volgt naar de URL van gatewaytoepassingen en open het eindpunt vanuit spring-cloud-circuit-breaker-demo :
/get
/delay/{seconds}
/fluxdelay/{seconds}
Resilence4j Metrics zoeken in Azure Portal
Selecteer In uw Azure Spring Apps-exemplaar Application Insights in het navigatiedeelvenster en selecteer vervolgens Application Insights op de pagina.
Notitie
Als u Application Insights niet inschakelt, kunt u de Java In-Process-agent inschakelen. Zie de sectie Application Insights beheren met behulp van de sectie Azure Portal van Application Insights Java In-Process Agent gebruiken in Azure Spring Apps voor meer informatie.
Dimensieverzameling inschakelen voor metrische gegevens van tolerantie4j. Zie de sectie Aangepaste dimensies voor metrische gegevens en vooraggregatie van op logboek gebaseerde en vooraf geaggregeerde metrische gegevens in Application Insights voor meer informatie.
Selecteer Metrische gegevens in het navigatiedeelvenster. De pagina Metrische gegevens bevat vervolgkeuzelijsten en opties voor het definiëren van de grafieken in deze procedure. Stel voor alle grafieken metric namespace in op azure.applicationinsights.
Stel metrische waarde in op resilience4j_circuitbreaker_buffered_calls en stel Aggregatie vervolgens in op Avg.
Stel metrische waarde in op resilience4j_circuitbreaker_calls en stel Aggregatie vervolgens in op Avg.
Stel metrische waarde in op resilience4j_circuitbreaker_calls en stel Aggregatie vervolgens in op Avg. Selecteer Filter toevoegen en stel Naam in op Vertraging.
Stel metrische waarde in op resilience4j_circuitbreaker_calls en stel Aggregatie vervolgens in op Avg. Selecteer Splitsen toepassen en splitsen instellen op soort.
Stel metrische waarde in op resilience4j_circuitbreaker_calls en stel Aggregatie vervolgens in op Avg. Selecteer Metrische gegevens toevoegen en metrische waarde instellen op resilience4j_circuitbreaker_buffered_calls en stel Aggregatie vervolgens in op Avg. Selecteer Opnieuw metrische gegevens toevoegen en stel Metrische waarde in op resilience4j_circuitbreaker_slow_calls en stel vervolgens Aggregatie in op Avg.
Selecteer Application Insights in uw Azure Spring Apps-exemplaar in het navigatiedeelvenster en selecteer vervolgens de standaard Application Insights op de pagina.
Notitie
Als er geen standaard Application Insights beschikbaar is, kunt u de Java In-Process-agent inschakelen. Zie de sectie Application Insights beheren met behulp van de sectie Azure Portal van Application Insights Java In-Process Agent gebruiken in Azure Spring Apps voor meer informatie.
Dimensieverzameling inschakelen voor metrische gegevens van tolerantie4j. Zie de sectie Aangepaste dimensies voor metrische gegevens en vooraggregatie van op logboek gebaseerde en vooraf geaggregeerde metrische gegevens in Application Insights voor meer informatie.
Selecteer Metrische gegevens in het navigatiedeelvenster. De pagina Metrische gegevens bevat vervolgkeuzelijsten en opties voor het definiëren van de grafieken in deze procedure. Stel voor alle grafieken metric namespace in op azure.applicationinsights.
Stel metrische waarde in op resilience4j_circuitbreaker_buffered_calls en stel Aggregatie vervolgens in op Avg.
Stel metrische waarde in op resilience4j_circuitbreaker_calls en stel Aggregatie vervolgens in op Avg.
Stel metrische waarde in op resilience4j_circuitbreaker_calls en stel Aggregatie vervolgens in op Avg. Selecteer Filter toevoegen en stel Naam in op Vertraging.
Stel metrische waarde in op resilience4j_circuitbreaker_calls en stel Aggregatie vervolgens in op Avg. Selecteer Splitsen toepassen en splitsen instellen op soort.
Stel metrische waarde in op resilience4j_circuitbreaker_calls en stel Aggregatie vervolgens in op Avg. Selecteer Metrische gegevens toevoegen en metrische waarde instellen op resilience4j_circuitbreaker_buffered_calls en stel Aggregatie vervolgens in op Avg. Selecteer Opnieuw metrische gegevens toevoegen en stel Metrische waarde in op resilience4j_circuitbreaker_slow_calls en stel vervolgens Aggregatie in op Avg.