Erfassen von Metriken zum Spring Cloud Resilience4J-Trennschalter mit Micrometer (Vorschau)
Hinweis
Die Pläne Basic, Standard und Enterprise gelten ab Mitte März 2025 als veraltet und werden über einen Zeitraum von drei Jahren eingestellt. Es wird empfohlen, auf Azure Container Apps umzustellen. Weitere Informationen finden Sie in der Ankündigung zur Einstellung von Azure Spring Apps.
Der Plan Standardverbrauch und dediziert gilt ab dem 30. September 2024 als veraltet und wird nach sechs Monaten vollständig eingestellt. Es wird empfohlen, auf Azure Container Apps umzustellen. Weitere Informationen finden Sie unter Migrieren des Plans „Standardverbrauch und dediziert“ von Azure Spring Apps zu Azure Container Apps.
Dieser Artikel gilt für:✅ Basic/Standard ✅ Enterprise
In diesem Artikel wird gezeigt, wie Sie Metriken zum Spring Cloud Resilience4J-Trennschalter mit dem Java-In-Process-Agent Application Insights erfassen. Mit diesem Feature können Sie die Metriken zum Resilience4J-Trennschalter von Application Insights mit Micrometer überwachen.
In der Demo spring-cloud-circuit-breaker-demo wird veranschaulicht, wie die Überwachung funktioniert.
Voraussetzungen
- Installieren Sie Git, Maven und Java, falls diese auf dem Entwicklungscomputer noch nicht installiert sind.
Erstellen und Bereitstellen von Apps
Führen Sie die folgenden Schritte aus, um die Beispielanwendungen zu erstellen und bereitzustellen.
Führen Sie den folgenden Befehl aus, um das Demorepository zu klonen und zu erstellen:
git clone https://github.com/spring-cloud-samples/spring-cloud-circuitbreaker-demo.git cd spring-cloud-circuitbreaker-demo && mvn clean package -DskipTests
Verwenden Sie den folgenden Befehl, um eine Azure Spring Apps-Dienstinstanz zu erstellen:
az spring create \ --resource-group ${resource-group-name} \ --name ${Azure-Spring-Apps-instance-name}
Verwenden Sie die folgenden Befehle, um die Anwendungen mit Endpunkten zu erstellen:
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
Verwenden Sie die folgenden Befehle, um die Anwendungen bereitzustellen:
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
Verwenden Sie den folgenden Befehl, um eine Azure Spring Apps-Dienstinstanz zu erstellen:
Hinweis
Wenn Ihr Abonnement noch nie zum Erstellen einer Instanz des Enterprise-Plans von Azure Spring Apps verwendet wurde, müssen Sie den folgenden Befehl ausführen:
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
Verwenden Sie die folgenden Befehle, um Anwendungen mit Endpunkten zu erstellen:
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
Verwenden Sie die folgenden Befehle, um die Anwendungen bereitzustellen:
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
Hinweis
Binden Sie die erforderliche Abhängigkeit für Resilience4j ein:
<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>
Ihr Code muss die
CircuitBreakerFactory
-API verwenden, die alsbean
implementiert wird, das automatisch erstellt wird, wenn Sie einen Spring Cloud-Trennschalterstarter hinzufügen. Weitere Informationen finden Sie unter Spring Cloud Circuit Breaker (Spring Cloud-Trennschalter).Die folgenden zwei Abhängigkeiten führen zu Konflikten mit Resilience4J-Paketen. Achten Sie darauf, diese nicht einzuschließen.
<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>
Navigieren Sie zu der von Gatewayanwendungen bereitgestellten URL, und greifen Sie wie folgt auf den Endpunkt von spring-cloud-circuit-breaker-demo zu:
/get
/delay/{seconds}
/fluxdelay/{seconds}
Suchen nach Resilence4j-Metriken im Azure-Portal
Wählen Sie in Ihrer Azure Spring Apps-Instanz im Navigationsbereich Application Insights und dann auf der Seite die Option Application Insights aus.
Hinweis
Wenn Sie Application Insights nicht aktivieren, können Sie den Java-In-Process-Agent aktivieren. Weitere Informationen finden Sie unter Verwendung von Application Insights Java In-Process Agent in Azure Spring Apps im Abschnitt Verwalten von Application Insights mithilfe des Azure-Portals.
Aktivieren Sie die Dimensionssammlung für Resilience4j-Metriken. Weitere Informationen finden Sie unter Protokollbasierte und vorab aggregierte Metriken in Azure Application Insights im Abschnitt Benutzerdefinierte Metrikdimensionen und Vorabaggregation.
Wählen Sie im Navigationsbereich Metriken aus. Die Seite Metriken enthält Dropdownmenüs und Optionen zum Definieren der Diagramme in diesem Verfahren. Legen Sie für alle Diagramme Metriknamespace auf azure.applicationinsights fest.
Legen Sie Metrik auf resilience4j_circuitbreaker_buffered_calls und anschließend Aggregation auf Durchschn. fest.
Legen Sie Metrik auf resilience4j_circuitbreaker_calls und anschließend Aggregation auf Durchschn. fest.
Legen Sie Metrik auf resilience4j_circuitbreaker_calls und anschließend Aggregation auf Durchschn. fest. Wählen Sie Filter hinzufügen aus, und legen Sie Name auf Verzögerung fest.
Legen Sie Metrik auf resilience4j_circuitbreaker_calls und anschließend Aggregation auf Durchschn. fest. Wählen Sie Teilung anwendenaus, und legen Sie Aufteilen nach auf Art fest.
Legen Sie Metrik auf resilience4j_circuitbreaker_calls und anschließend Aggregation auf Durchschn. fest. Wählen Sie Metrik hinzufügen aus, legen Sie Metrik auf resilience4j_circuitbreaker_buffered_calls und anschließend Aggregation auf Durchschn. fest. Wählen Sie erneut Metrik hinzufügen aus, legen Sie Metrik auf resilience4j_circuitbreaker_slow_calls und anschließend Aggregation auf Durchschn. fest.
Wählen Sie in Ihrer Azure Spring Apps-Instanz im Navigationsbereich Application Insights und dann auf der Seite die Application Insights-Standardinstanz aus.
Hinweis
Falls keine Application Insights-Standardinstanz verfügbar ist, können Sie den Java-In-Process-Agent aktivieren. Weitere Informationen finden Sie unter Verwendung von Application Insights Java In-Process Agent in Azure Spring Apps im Abschnitt Verwalten von Application Insights mithilfe des Azure-Portals.
Aktivieren Sie die Dimensionssammlung für Resilience4j-Metriken. Weitere Informationen finden Sie unter Protokollbasierte und vorab aggregierte Metriken in Azure Application Insights im Abschnitt Benutzerdefinierte Metrikdimensionen und Vorabaggregation.
Wählen Sie im Navigationsbereich Metriken aus. Die Seite Metriken enthält Dropdownmenüs und Optionen zum Definieren der Diagramme in diesem Verfahren. Legen Sie für alle Diagramme Metriknamespace auf azure.applicationinsights fest.
Legen Sie Metrik auf resilience4j_circuitbreaker_buffered_calls und anschließend Aggregation auf Durchschn. fest.
Legen Sie Metrik auf resilience4j_circuitbreaker_calls und anschließend Aggregation auf Durchschn. fest.
Legen Sie Metrik auf resilience4j_circuitbreaker_calls und anschließend Aggregation auf Durchschn. fest. Wählen Sie Filter hinzufügen aus, und legen Sie Name auf Verzögerung fest.
Legen Sie Metrik auf resilience4j_circuitbreaker_calls und anschließend Aggregation auf Durchschn. fest. Wählen Sie Teilung anwendenaus, und legen Sie Aufteilen nach auf Art fest.
Legen Sie Metrik auf resilience4j_circuitbreaker_calls und anschließend Aggregation auf Durchschn. fest. Wählen Sie Metrik hinzufügen aus, legen Sie Metrik auf resilience4j_circuitbreaker_buffered_calls und anschließend Aggregation auf Durchschn. fest. Wählen Sie erneut Metrik hinzufügen aus, legen Sie Metrik auf resilience4j_circuitbreaker_slow_calls und anschließend Aggregation auf Durchschn. fest.