Zbieranie metryk wyłącznika Spring Cloud Resilience4J za pomocą mikrometru (wersja zapoznawcza)
Uwaga
Azure Spring Apps to nowa nazwa usługi Azure Spring Cloud. Mimo że usługa ma nową nazwę, stara nazwa będzie widoczna w niektórych miejscach przez pewien czas, ponieważ pracujemy nad aktualizowaniem zasobów, takich jak zrzuty ekranu, filmy wideo i diagramy.
Ten artykuł dotyczy: ✔️ Podstawowa/Standardowa ✔️ Enterprise
W tym artykule pokazano, jak zbierać metryki wyłącznika Spring Cloud Resilience4j za pomocą agenta przetwarzania aplikacji Szczegółowe informacje Java. Dzięki tej funkcji można monitorować metryki wyłącznika Resilience4j z aplikacji Szczegółowe informacje 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ę Aplikacja Szczegółowe informacje w okienku nawigacji, a następnie wybierz pozycję Aplikacja Szczegółowe informacje na stronie.
Uwaga
Jeśli nie włączysz usługi Application Szczegółowe informacje, możesz włączyć agenta Java In-Process. Aby uzyskać więcej informacji, zobacz sekcję Manage Application Szczegółowe informacje using the Azure Portal (Zarządzanie aplikacjami przy użyciu witryny Azure Portal) w temacie Use Application Szczegółowe informacje Java In-Process Agent in-Process Agent in-Process Apps in Azure Spring Apps (Korzystanie z agenta przetwarzania aplikacji Szczegółowe informacje Java 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 wstępnie agregacji metryk opartych na dziennikach i wstępnie zagregowanych w usłudze Application Szczegółowe informacje.
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ę Aplikacja Szczegółowe informacje w okienku nawigacji, a następnie wybierz domyślną Szczegółowe informacje aplikacji na stronie.
Uwaga
Jeśli nie ma domyślnej Szczegółowe informacje aplikacji, możesz włączyć agenta Java In-Process. Aby uzyskać więcej informacji, zobacz sekcję Manage Application Szczegółowe informacje using the Azure Portal (Zarządzanie aplikacjami przy użyciu witryny Azure Portal) w temacie Use Application Szczegółowe informacje Java In-Process Agent in-Process Agent in-Process Apps in Azure Spring Apps (Korzystanie z agenta przetwarzania aplikacji Szczegółowe informacje Java 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 wstępnie agregacji metryk opartych na dziennikach i wstępnie zagregowanych w usłudze Application Szczegółowe informacje.
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.