Shromažďování metrik jističe Spring Cloud Resilience4J pomocí mikrometrů (Preview)

Poznámka:

Plány Basic, Standard a Enterprise budou od poloviny března 2025 vyřazeny ze 3letého období vyřazení. Doporučujeme přejít na Azure Container Apps. Další informace najdete v oznámení o vyřazení Azure Spring Apps.

Od 30. září 2024 bude od 30. září 2024 zastaralý plán s úplným vypnutím po šesti měsících. Doporučujeme přejít na Azure Container Apps. Další informace najdete v tématu Migrace spotřeby Azure Spring Apps Úrovně Standard a vyhrazeného plánu do Azure Container Apps.

Tento článek se vztahuje na: ✔️ Basic/Standard ✔️ Enterprise

V tomto článku se dozvíte, jak shromažďovat metriky jističe Spring Cloud Resilience4j pomocí agenta v procesu v Javě pro Application Insights. Pomocí této funkce můžete monitorovat metriky jističe Resilience4j z Application Insights pomocí mikrometru.

Ukázka spring-cloud-circuit-breaker-demo ukazuje, jak monitorování funguje.

Požadavky

  • Nainstalujte Git, Maven a Javu, pokud ještě není nainstalovaný na vývojovém počítači.

Sestavování a nasazování aplikací

Pomocí následujících kroků sestavte a nasaďte ukázkové aplikace.

  1. Pomocí následujícího příkazu naklonujte a sestavte ukázkové úložiště:

    git clone https://github.com/spring-cloud-samples/spring-cloud-circuitbreaker-demo.git
    cd spring-cloud-circuitbreaker-demo && mvn clean package -DskipTests
    
  1. K vytvoření instance služby Azure Spring Apps použijte následující příkaz:

    az spring create \
        --resource-group ${resource-group-name} \
        --name ${Azure-Spring-Apps-instance-name}
    
  2. Pomocí následujících příkazů vytvořte aplikace s koncovými body:

    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. K nasazení aplikací použijte následující příkazy:

    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. K vytvoření instance služby Azure Spring Apps použijte následující příkaz:

    Poznámka:

    Pokud se vaše předplatné nikdy nepoužilo k vytvoření instance plánu Enterprise pro Azure Spring Apps, musíte spustit následující příkaz:

    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. K vytváření aplikací s koncovými body použijte následující příkazy:

    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. K nasazení aplikací použijte následující příkazy:

    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
    

Poznámka:

  • Zahrňte požadovanou závislost pro odolnost 4j:

    <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>
    
  • Váš kód musí používat CircuitBreakerFactory rozhraní API, které se implementuje automaticky bean při zahrnutí úvodní sady Spring Cloud Circuit Breaker. Další informace najdete v tématu Spring Cloud Circuit Breaker.

  • Následující dvě závislosti jsou v konfliktu s balíčky Resilient4j. Nezapomeňte je zahrnout.

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

Přejděte na adresu URL poskytovanou aplikacemi brány a přejděte ke koncovému bodu z spring-cloud-circuit-breaker-demo následujícím způsobem:

/get
/delay/{seconds}
/fluxdelay/{seconds}

Vyhledání metrik Resilence4j na webu Azure Portal

  1. V instanci Azure Spring Apps vyberte Application Insights v navigačním podokně a pak na stránce vyberte Application Insights .

    Snímek obrazovky webu Azure Portal se zvýrazněnou stránkou Azure Spring Apps Application Insights se zvýrazněnou možností Application Insights

    Poznámka:

    Pokud application Insights nepovolíte, můžete povolit agenta v procesu Javy. Další informace najdete v části Správa Application Insights pomocí portálu Azure Portal v části Použití agenta in-process v Javě Application Insights v Azure Spring Apps.

  2. Povolte shromažďování dimenzí pro metriky resilience4j. Další informace najdete v části Dimenze vlastních metrik a předagregace metrik založených na protokolech a předem agregovaných metrik v Application Insights.

  3. V navigačním podokně vyberte Metriky . Stránka Metriky poskytuje rozevírací nabídky a možnosti pro definování grafů v tomto postupu. Pro všechny grafy nastavte obor názvů metriky na azure.applicationinsights.

    Snímek obrazovky se stránkou Metriky Application Insights na webu Azure Portal se zvýrazněnou nabídkou Obor názvů metrik a zvýrazněnou možností Azure-applicationinsights

  4. Nastavte metriku na resilience4j_circuitbreaker_buffered_calls a pak nastavte Agregaci na Průměr.

    Snímek obrazovky se stránkou Metriky Application Insights na webu Azure Portal zobrazící graf s voláními do vyrovnávací paměti jističe a průměrnou agregací

  5. Nastavte metriku na resilience4j_circuitbreaker_calls a pak nastavte Agregaci na Průměr.

    Snímek obrazovky se stránkou Metriky Application Insights na webu Azure Portal zobrazící graf s voláními jističe a průměrnou agregací

  6. Nastavte metriku na resilience4j_circuitbreaker_calls a pak nastavte Agregaci na Průměr. Vyberte Přidat filtr a nastavte Název na Zpoždění.

    Snímek obrazovky se stránkou Metriky Application Insights na webu Azure Portal zobrazící graf s voláními jističe, průměrnou agregací a filtrem zpoždění

  7. Nastavte metriku na resilience4j_circuitbreaker_calls a pak nastavte Agregaci na Průměr. Vyberte Použít rozdělení a nastavte rozdělení podle druhu.

    Snímek obrazovky se stránkou Metriky Application Insights na webu Azure Portal zobrazující graf s voláními jističe, průměrnou agregací a rozdělením

  8. Nastavte metriku na resilience4j_circuitbreaker_calls a pak nastavte Agregaci na Průměr. Vyberte Přidat metriku a nastavte metriku na resilience4j_circuitbreaker_buffered_calls a pak nastavte Agregaci na Průměr. Znovu vyberte Přidat metriku a nastavte metriku na resilience4j_circuitbreaker_slow_calls a pak nastavte hodnotu Agregace na Průměr.

    Snímek obrazovky webu Azure Portal zobrazící stránku Metriky Application Insights s grafem popsaným v tomto kroku

  1. V instanci Azure Spring Apps vyberte Application Insights v navigačním podokně a pak na stránce vyberte výchozí Application Insights .

    Snímek obrazovky webu Azure Portal zobrazící stránku Azure Spring Apps Application Insights se zvýrazněnou výchozí instancí Application Insights

    Poznámka:

    Pokud není k dispozici žádná výchozí služba Application Insights, můžete povolit agenta v procesu Javy. Další informace najdete v části Správa Application Insights pomocí portálu Azure Portal v části Použití agenta in-process v Javě Application Insights v Azure Spring Apps.

  2. Povolte shromažďování dimenzí pro metriky resilience4j. Další informace najdete v části Dimenze vlastních metrik a předagregace metrik založených na protokolech a předem agregovaných metrik v Application Insights.

  3. V navigačním podokně vyberte Metriky . Stránka Metriky poskytuje rozevírací nabídky a možnosti pro definování grafů v tomto postupu. Pro všechny grafy nastavte obor názvů metriky na azure.applicationinsights.

    Snímek obrazovky se stránkou Metriky Application Insights na webu Azure Portal se zvýrazněnou nabídkou Obor názvů metrik a zvýrazněnou možností azure.applicationinsights

  4. Nastavte metriku na resilience4j_circuitbreaker_buffered_calls a pak nastavte Agregaci na Průměr.

    Snímek obrazovky se stránkou Metriky Application Insights na webu Azure Portal zobrazící graf s voláními do vyrovnávací paměti jističe a průměrnou agregací

  5. Nastavte metriku na resilience4j_circuitbreaker_calls a pak nastavte Agregaci na Průměr.

    Snímek obrazovky se stránkou Metriky Application Insights na webu Azure Portal zobrazící graf s voláními jističe a průměrnou agregací

  6. Nastavte metriku na resilience4j_circuitbreaker_calls a pak nastavte Agregaci na Průměr. Vyberte Přidat filtr a nastavte Název na Zpoždění.

    Snímek obrazovky se stránkou Metriky Application Insights na webu Azure Portal zobrazící graf s voláními jističe, průměrnou agregací a filtrem zpoždění

  7. Nastavte metriku na resilience4j_circuitbreaker_calls a pak nastavte Agregaci na Průměr. Vyberte Použít rozdělení a nastavte rozdělení podle druhu.

    Snímek obrazovky se stránkou Metriky Application Insights na webu Azure Portal zobrazující graf s voláními jističe, průměrnou agregací a rozdělením

  8. Nastavte metriku na resilience4j_circuitbreaker_calls a pak nastavte Agregaci na Průměr. Vyberte Přidat metriku a nastavte metriku na resilience4j_circuitbreaker_buffered_calls a pak nastavte Agregaci na Průměr. Znovu vyberte Přidat metriku a nastavte metriku na resilience4j_circuitbreaker_slow_calls a pak nastavte hodnotu Agregace na Průměr.

    Snímek obrazovky webu Azure Portal zobrazící stránku Metriky Application Insights s grafem popsaným v tomto kroku

Další kroky