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.
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
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}
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
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
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
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
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 automatickybean
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
V instanci Azure Spring Apps vyberte Application Insights v navigačním podokně a pak na stránce vyberte 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.
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.
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.
Nastavte metriku na resilience4j_circuitbreaker_buffered_calls a pak nastavte Agregaci na Průměr.
Nastavte metriku na resilience4j_circuitbreaker_calls a pak nastavte Agregaci na Průměr.
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í.
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.
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.
V instanci Azure Spring Apps vyberte Application Insights v navigačním podokně a pak na stránce vyberte výchozí 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.
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.
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.
Nastavte metriku na resilience4j_circuitbreaker_buffered_calls a pak nastavte Agregaci na Průměr.
Nastavte metriku na resilience4j_circuitbreaker_calls a pak nastavte Agregaci na Průměr.
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í.
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.
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.