Dela via


Samla in Spring Cloud Resilience4J-kretsbrytarmått med mikrometer (förhandsversion)

Kommentar

Azure Spring Apps är det nya namnet på Azure Spring Cloud-tjänsten. Även om tjänsten har ett nytt namn ser du det gamla namnet på vissa platser ett tag medan vi arbetar med att uppdatera tillgångar som skärmbilder, videor och diagram.

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.

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

  1. I din Azure Spring Apps-instans väljer du Application Insights i navigeringsfönstret och sedan Application Insights på sidan.

    Skärmbild av Azure-portalen som visar sidan Azure Spring Apps Application Insights med Application Insights markerat.

    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-portalen i Använda Application Insights Java In-Process Agent i Azure Spring Apps.

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

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

    Skärmbild av sidan Application Insights-mått i Azure-portalen med menyn Måttnamnområde öppen och alternativet azure-applicationinsights markerat.

  4. Ange Mått till resilience4j_circuitbreaker_buffered_calls och ange sedan aggregering till Genomsnittlig.

    Skärmbild av sidan Application Insights-mått i Azure-portalen som visar ett diagram med kretsbrytarbuffertade anrop och genomsnittlig aggregering.

  5. Ange Mått till resilience4j_circuitbreaker_calls och ange sedan aggregering till Genomsnittlig.

    Skärmbild av sidan Application Insights-mått i Azure-portalen som visar ett diagram med kretsbrytaranrop och genomsnittlig aggregering.

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

    Skärmbild av sidan Application Insights-mått i Azure-portalen som visar ett diagram med kretsbrytareanrop, genomsnittlig aggregering och fördröjningsfilter.

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

    Skärmbild av sidan Application Insights-mått i Azure-portalen som visar ett diagram med kretsbrytareanrop, genomsnittlig aggregering och delning.

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

    Skärmbild av Azure-portalen som visar sidan Application Insights-mått med diagrammet som beskrivs i det här steget.

  1. I din Azure Spring Apps-instans väljer du Application Insights i navigeringsfönstret och väljer sedan Standard application insights på sidan.

    Skärmbild av Azure-portalen som visar sidan Azure Spring Apps Application Insights med standardinstansen Application Insights markerad.

    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-portalen i Använda Application Insights Java In-Process Agent i Azure Spring Apps.

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

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

    Skärmbild av sidan Application Insights-mått i Azure-portalen med menyn Måttnamnområde öppen och azure.applicationinsights markerad.

  4. Ange Mått till resilience4j_circuitbreaker_buffered_calls och ange sedan aggregering till Genomsnittlig.

    Skärmbild av sidan Application Insights-mått i Azure-portalen som visar ett diagram med kretsbrytarbuffertade anrop och genomsnittlig aggregering.

  5. Ange Mått till resilience4j_circuitbreaker_calls och ange sedan aggregering till Genomsnittlig.

    Skärmbild av sidan Application Insights-mått i Azure-portalen som visar ett diagram med kretsbrytaranrop och genomsnittlig aggregering.

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

    Skärmbild av sidan Application Insights-mått i Azure-portalen som visar ett diagram med kretsbrytareanrop, genomsnittlig aggregering och fördröjningsfilter.

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

    Skärmbild av sidan Application Insights-mått i Azure-portalen som visar ett diagram med kretsbrytareanrop, genomsnittlig aggregering och delning.

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

    Skärmbild av Azure-portalen som visar sidan Application Insights-mått med diagrammet som beskrivs i det här steget.

Nästa steg