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.

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

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

    Zrzut ekranu witryny Azure Portal przedstawiający stronę usługi Azure Spring Apps Application Szczegółowe informacje z wyróżnioną pozycją Aplikacja Szczegółowe informacje.

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

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

    Zrzut ekranu przedstawiający stronę Application Szczegółowe informacje Metrics (Metryki) w witrynie Azure Portal z otwartym menu Metryki i wyróżnioną opcją azure-applicationinsights.

  4. Ustaw wartość Metryka na resilience4j_circuitbreaker_buffered_calls, a następnie ustaw pozycję Agregacja na Średnia.

    Zrzut ekranu przedstawiający stronę Metryki usługi Application Szczegółowe informacje w witrynie Azure Portal z wykresem z buforowaną wywołaniami wyłącznika i średnią agregacją.

  5. Ustaw wartość Metryka na resilience4j_circuitbreaker_calls, a następnie ustaw pozycję Agregacja na Średnia.

    Zrzut ekranu przedstawiający stronę Application Szczegółowe informacje Metrics w witrynie Azure Portal z wykresem z wywołaniami wyłącznika i średnią agregacją.

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

    Zrzut ekranu przedstawiający stronę Metryki Szczegółowe informacje aplikacji witryny Azure Portal z wykresem z wywołaniami wyłącznika, średnią agregacją i filtrem opóźnienia.

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

    Zrzut ekranu przedstawiający stronę Application Szczegółowe informacje Metrics (Metryki) w witrynie Azure Portal z wykresem z wywołaniami wyłącznika, średnią agregacją i podziałem.

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

    Zrzut ekranu witryny Azure Portal przedstawiający stronę Application Szczegółowe informacje Metrics (Metryki aplikacji) z wykresem opisanym w tym kroku.

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

    Zrzut ekranu witryny Azure Portal przedstawiający stronę Szczegółowe informacje aplikacji Azure Spring Apps z wyróżnionym domyślnym wystąpieniem aplikacji Szczegółowe informacje.

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

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

    Zrzut ekranu przedstawiający stronę Application Szczegółowe informacje Metrics (Metryki) w witrynie Azure Portal z wyróżnionym menu Metryki przestrzeni nazw i wyróżnionym pozycją azure.applicationinsights.

  4. Ustaw wartość Metryka na resilience4j_circuitbreaker_buffered_calls, a następnie ustaw pozycję Agregacja na Średnia.

    Zrzut ekranu przedstawiający stronę Metryki usługi Application Szczegółowe informacje w witrynie Azure Portal z wykresem z buforowaną wywołaniami wyłącznika i średnią agregacją.

  5. Ustaw wartość Metryka na resilience4j_circuitbreaker_calls, a następnie ustaw pozycję Agregacja na Średnia.

    Zrzut ekranu przedstawiający stronę Application Szczegółowe informacje Metrics w witrynie Azure Portal z wykresem z wywołaniami wyłącznika i średnią agregacją.

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

    Zrzut ekranu przedstawiający stronę Application Szczegółowe informacje Metrics (Metryki) w witrynie Azure Portal z wykresem z wywołaniami wyłącznika, średnim filtrem agregacji i opóźnień.

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

    Zrzut ekranu przedstawiający stronę Application Szczegółowe informacje Metrics (Metryki) w witrynie Azure Portal z wykresem z wywołaniami wyłącznika, średnią agregacją i podziałem.

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

    Zrzut ekranu witryny Azure Portal przedstawiający stronę Application Szczegółowe informacje Metrics (Metryki aplikacji) z wykresem opisanym w tym kroku.

Następne kroki