Zbieranie metryk wyłącznika Spring Cloud Resilience4J za pomocą mikrometru (wersja zapoznawcza)
Uwaga
Plany Podstawowa, Standardowa i Enterprise zostaną wycofane od połowy marca 2025 r. z 3-letnim okresem emerytalnym. Zalecamy przejście do usługi Azure Container Apps. Aby uzyskać więcej informacji, zobacz ogłoszenie o wycofaniu usługi Azure Spring Apps.
Zużycie standardowe i dedykowany plan zostaną wycofane od 30 września 2024 r. z całkowitym zamknięciem po sześciu miesiącach. Zalecamy przejście do usługi Azure Container Apps. Aby uzyskać więcej informacji, zobacz Migrowanie użycia usługi Azure Spring Apps w warstwie Standardowa i dedykowanego planu do usługi Azure Container Apps.
Ten artykuł dotyczy: ✔️ Podstawowa/Standardowa ✔️ Enterprise
W tym artykule pokazano, jak zbierać metryki wyłącznika Spring Cloud Resilience4j za pomocą agenta przetwarzania java usługi Application Insights. Dzięki tej funkcji można monitorować metryki wyłącznika Resilience4j z usługi Application Insights za pomocą mikrometru.
Pokaz spring-cloud-circuit-breaker-demo pokazuje, jak działa monitorowanie.
Wymagania wstępne
- Zainstaluj narzędzia Git, Maven i Java, jeśli nie zostały jeszcze zainstalowane na komputerze dewelopera.
Kompilowanie i wdrażanie aplikacji
Wykonaj poniższe kroki, aby skompilować i wdrożyć przykładowe aplikacje.
Użyj następującego polecenia, aby sklonować i skompilować repozytorium demonstracyjne:
git clone https://github.com/spring-cloud-samples/spring-cloud-circuitbreaker-demo.git cd spring-cloud-circuitbreaker-demo && mvn clean package -DskipTests
Użyj następującego polecenia, aby utworzyć wystąpienie usługi Azure Spring Apps:
az spring create \ --resource-group ${resource-group-name} \ --name ${Azure-Spring-Apps-instance-name}
Użyj następujących poleceń, aby utworzyć aplikacje z punktami końcowymi:
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
Aby wdrożyć aplikacje, użyj następujących poleceń:
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
Użyj następującego polecenia, aby utworzyć wystąpienie usługi Azure Spring Apps:
Uwaga
Jeśli twoja subskrypcja nigdy nie została użyta do utworzenia wystąpienia planu Enterprise usługi Azure Spring Apps, musisz uruchomić następujące polecenie:
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
Użyj następujących poleceń, aby utworzyć aplikacje z punktami końcowymi:
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
Aby wdrożyć aplikacje, użyj następujących poleceń:
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
Uwaga
Uwzględnij wymaganą zależność dla aplikacji 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>
Kod musi używać interfejsu
CircuitBreakerFactory
API, który jest implementowany jakobean
automatycznie utworzony podczas dołączania startera wyłącznika Spring Cloud Circuit. Aby uzyskać więcej informacji, zobacz Spring Cloud Circuit Breaker (Wyłącznik spring Cloud).Następujące dwie zależności mają konflikty z pakietami Resilient4j. Upewnij się, że nie dołączysz ich.
<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>
Przejdź do adresu URL dostarczonego przez aplikacje bramy i uzyskaj dostęp do punktu końcowego z pokazu spring-cloud-circuit-breaker-demo w następujący sposób:
/get
/delay/{seconds}
/fluxdelay/{seconds}
Lokalizowanie metryk Resilence4j w witrynie Azure Portal
W wystąpieniu usługi Azure Spring Apps wybierz pozycję Application Insights w okienku nawigacji, a następnie wybierz pozycję Application Insights na stronie.
Uwaga
Jeśli nie włączysz usługi Application Insights, możesz włączyć agenta Java In-Process. Aby uzyskać więcej informacji, zobacz sekcję Manage Application Insights using the Azure Portal (Zarządzanie usługą Application Insights przy użyciu witryny Azure Portal ) w temacie Use Application Insights Java In-Process Agent in-Process Agent in-Process w usłudze Azure Spring Apps.
Włącz zbieranie wymiarów dla metryk resilience4j. Aby uzyskać więcej informacji, zobacz sekcję Wymiary metryk niestandardowych i preaggregacja metryk opartych na dziennikach i wstępnie agregowanych w usłudze Application Insights.
Wybierz pozycję Metryki w okienku nawigacji. Strona Metryki zawiera menu rozwijane i opcje definiowania wykresów w tej procedurze. Dla wszystkich wykresów ustaw wartość Przestrzeń nazw metryk na azure.applicationinsights.
Ustaw wartość Metryka na resilience4j_circuitbreaker_buffered_calls, a następnie ustaw pozycję Agregacja na Średnia.
Ustaw wartość Metryka na resilience4j_circuitbreaker_calls, a następnie ustaw pozycję Agregacja na Średnia.
Ustaw wartość Metryka na resilience4j_circuitbreaker_calls, a następnie ustaw pozycję Agregacja na Średnia. Wybierz pozycję Dodaj filtr i ustaw wartość Nazwa na Opóźnienie.
Ustaw wartość Metryka na resilience4j_circuitbreaker_calls, a następnie ustaw pozycję Agregacja na Średnia. Wybierz pozycję Zastosuj dzielenie i ustaw opcję Podziel według na rodzaj.
Ustaw wartość Metryka na resilience4j_circuitbreaker_calls, a następnie ustaw pozycję Agregacja na Średnia. Wybierz pozycję Dodaj metryki i ustaw pozycję Metryka na resilience4j_circuitbreaker_buffered_calls, a następnie ustaw pozycję Agregacja na Średnia. Ponownie wybierz pozycję Dodaj metryki i ustaw pozycję Metryka na resilience4j_circuitbreaker_slow_calls, a następnie ustaw pozycję Agregacja na Średnia.
W wystąpieniu usługi Azure Spring Apps wybierz pozycję Application Insights w okienku nawigacji, a następnie wybierz domyślną usługę Application Insights na stronie.
Uwaga
Jeśli nie ma dostępnej domyślnej usługi Application Insights, możesz włączyć agenta Java In-Process. Aby uzyskać więcej informacji, zobacz sekcję Manage Application Insights using the Azure Portal (Zarządzanie usługą Application Insights przy użyciu witryny Azure Portal ) w temacie Use Application Insights Java In-Process Agent in-Process Agent in-Process w usłudze Azure Spring Apps.
Włącz zbieranie wymiarów dla metryk resilience4j. Aby uzyskać więcej informacji, zobacz sekcję Wymiary metryk niestandardowych i preaggregacja metryk opartych na dziennikach i wstępnie agregowanych w usłudze Application Insights.
Wybierz pozycję Metryki w okienku nawigacji. Strona Metryki zawiera menu rozwijane i opcje definiowania wykresów w tej procedurze. Dla wszystkich wykresów ustaw wartość Przestrzeń nazw metryk na azure.applicationinsights.
Ustaw wartość Metryka na resilience4j_circuitbreaker_buffered_calls, a następnie ustaw pozycję Agregacja na Średnia.
Ustaw wartość Metryka na resilience4j_circuitbreaker_calls, a następnie ustaw pozycję Agregacja na Średnia.
Ustaw wartość Metryka na resilience4j_circuitbreaker_calls, a następnie ustaw pozycję Agregacja na Średnia. Wybierz pozycję Dodaj filtr i ustaw wartość Nazwa na Opóźnienie.
Ustaw wartość Metryka na resilience4j_circuitbreaker_calls, a następnie ustaw pozycję Agregacja na Średnia. Wybierz pozycję Zastosuj dzielenie i ustaw opcję Podziel według na rodzaj.
Ustaw wartość Metryka na resilience4j_circuitbreaker_calls, a następnie ustaw pozycję Agregacja na Średnia. Wybierz pozycję Dodaj metryki i ustaw pozycję Metryka na resilience4j_circuitbreaker_buffered_calls, a następnie ustaw pozycję Agregacja na Średnia. Ponownie wybierz pozycję Dodaj metryki i ustaw pozycję Metryka na resilience4j_circuitbreaker_slow_calls, a następnie ustaw pozycję Agregacja na Średnia.