Udostępnij za pośrednictwem


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.

  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ę Application Insights w okienku nawigacji, a następnie wybierz pozycję Application Insights na stronie.

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

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

  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ę Metryk usługi Application Insights w witrynie Azure Portal z otwartym menu Przestrzeń nazw 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ę Metryk usługi Application Insights w witrynie Azure Portal z wykresem z buforowaniem wywołań 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ę Metryk usługi Application Insights 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ę Metryk usługi Application Insights w witrynie 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ę Metryk usługi Application Insights 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ę Metryki usługi Application Insights z wykresem opisanym w tym kroku.

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

    Zrzut ekranu witryny Azure Portal przedstawiający stronę usługi Azure Spring Apps Application Insights z wyróżnionym domyślnym wystąpieniem usługi Application Insights.

    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.

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

  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ę Metryk usługi Application Insights w witrynie Azure Portal z otwartym menu Przestrzeń nazw metryk 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ę Metryk usługi Application Insights w witrynie Azure Portal z wykresem z buforowaniem wywołań 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ę Metryk usługi Application Insights 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ę Metryk usługi Application Insights w witrynie Azure Portal z wykresem z wywołaniami wyłącznika, średnim filtrem agregacji i 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ę Metryk usługi Application Insights 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ę Metryki usługi Application Insights z wykresem opisanym w tym kroku.

Następne kroki