Share via


Erfassen von Metriken zum Spring Cloud Resilience4J-Trennschalter mit Micrometer (Vorschau)

Hinweis

Azure Spring Apps ist der neue Name für den Azure Spring Cloud-Dienst. Obwohl der Dienst umbenannt wurde, wird der alte Name noch an einigen Stellen verwendet, solange wir Ressourcen wie Screenshots, Videos und Diagramme aktualisieren.

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.

  1. 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
    
  1. 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}
    
  2. 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
    
  3. 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
    
  1. 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
    
  2. 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
    
  3. 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 als bean 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

  1. Wählen Sie in Ihrer Azure Spring Apps-Instanz im Navigationsbereich Application Insights und dann auf der Seite die Option Application Insights aus.

    Screenshot der Seite „Azure Spring Apps Application Insights“ im Azure-Portal mit hervorgehobener Option „Application Insights“

    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.

  2. 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.

  3. 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.

    Screenshot der Seite „Application Insights-Metriken“ im Azure-Portal, auf der das Menü Metrik-Namespace geöffnet und die Option azure-applicationinsights hervorgehoben ist.

  4. Legen Sie Metrik auf resilience4j_circuitbreaker_buffered_calls und anschließend Aggregation auf Durchschn. fest.

    Screenshot der Seite „Application Insights-Metriken“ im Azure-Portal, auf der ein Diagramm mit gepufferten Circuit-Breaker-Aufrufen und durchschnittlicher Aggregation angezeigt wird.

  5. Legen Sie Metrik auf resilience4j_circuitbreaker_calls und anschließend Aggregation auf Durchschn. fest.

    Screenshot der Seite „Application Insights-Metriken“ im Azure-Portal, auf der ein Diagramm mit Circuit-Breaker-Aufrufen und durchschnittlicher Aggregation angezeigt wird.

  6. 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.

    Screenshot der Seite „Application Insights-Metriken“ im Azure-Portal, auf der ein Diagramm mit Circuit-Breaker-Aufrufen, durchschnittlicher Aggregation und Verzögerungsfilter angezeigt wird.

  7. 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.

    Screenshot der Seite „Application Insights-Metriken“ im Azure-Portal, auf der ein Diagramm mit Circuit-Breaker-Aufrufen, durchschnittlicher Aggregation und Aufteilung angezeigt wird.

  8. 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.

    Screenshot der Seite „Application Insights-Metriken“ im Azure-Portal mit dem in diesem Schritt beschriebenen Diagramm

  1. Wählen Sie in Ihrer Azure Spring Apps-Instanz im Navigationsbereich Application Insights und dann auf der Seite die Application Insights-Standardinstanz aus.

    Screenshot der Seite „Azure Spring Apps Application Insights“ im Azure-Portal, auf der die „Application Insights“-Standardinstanz hervorgehoben ist.

    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.

  2. 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.

  3. 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.

    Screenshot der Seite „Application Insights-Metriken“ im Azure-Portal, auf der das Menü Metrik-Namespace geöffnet und azure-applicationinsights hervorgehoben ist.

  4. Legen Sie Metrik auf resilience4j_circuitbreaker_buffered_calls und anschließend Aggregation auf Durchschn. fest.

    Screenshot der Seite „Application Insights-Metriken“ im Azure-Portal, auf der ein Diagramm mit gepufferten Circuit-Breaker-Aufrufen und durchschnittlicher Aggregation angezeigt wird.

  5. Legen Sie Metrik auf resilience4j_circuitbreaker_calls und anschließend Aggregation auf Durchschn. fest.

    Screenshot der Seite „Application Insights-Metriken“ im Azure-Portal, auf der ein Diagramm mit Circuit-Breaker-Aufrufen und durchschnittlicher Aggregation angezeigt wird.

  6. 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.

    Screenshot der Seite „Application Insights-Metriken“ im Azure-Portal, auf der ein Diagramm mit Circuit-Breaker-Aufrufen, durchschnittlicher Aggregation und Verzögerungsfilter angezeigt wird.

  7. 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.

    Screenshot der Seite „Application Insights-Metriken“ im Azure-Portal, auf der ein Diagramm mit Circuit-Breaker-Aufrufen, durchschnittlicher Aggregation und Aufteilung angezeigt wird.

  8. 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.

    Screenshot der Seite „Application Insights-Metriken“ im Azure-Portal mit dem in diesem Schritt beschriebenen Diagramm

Nächste Schritte