Compartir vía


Recopilación de métricas del interruptor Resilience4J de Spring Cloud con Micrometer (versión preliminar)

Nota:

Los planes Básico, Estándar y Enterprise quedarán en desuso a partir de mediados de marzo de 2025, con un período de retirada de 3 años. Se recomienda realizar la transición a Azure Container Apps. Para más información, consulte el anuncio de retirada de Azure Spring Apps.

El plan Estándar por consumo y dedicado quedará obsoleto a partir del 30 de septiembre de 2024, con un cierre completo al cabo de seis meses. Se recomienda realizar la transición a Azure Container Apps. Para más información, consulte Migrar el plan Estándar por consumo y dedicado de Azure Spring Apps a Azure Container Apps.

La información de este artículo puede ponerse en práctica en: ✔️ Básico o Estándar ✔️ Enterprise

En este artículo se explica cómo recopilar métricas del interruptor Resilience4j de Spring Cloud con el agente en proceso de Java de Application Insights. Con esta característica, puede supervisar las métricas del disyuntor Resilience4j desde Application Insights con Micrometer.

La demostración spring-cloud-circuit-breaker-demo muestra cómo funciona la supervisión.

Requisitos previos

  • Instale Git, Maven y Java, si aún no están instalados en el equipo de desarrollo.

Compilación e implementación de aplicaciones

Siga estos pasos para compilar e implementar las aplicaciones de ejemplo.

  1. Use el siguiente comando para clonar y compilar el repositorio de demostración:

    git clone https://github.com/spring-cloud-samples/spring-cloud-circuitbreaker-demo.git
    cd spring-cloud-circuitbreaker-demo && mvn clean package -DskipTests
    
  1. Use el siguiente comando para crear una instancia de servicio de Azure Spring Apps:

    az spring create \
        --resource-group ${resource-group-name} \
        --name ${Azure-Spring-Apps-instance-name}
    
  2. Use los comandos siguientes para crear las aplicaciones con puntos de conexión:

    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. Use los siguientes comandos para implementar las aplicaciones:

    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. Use el siguiente comando para crear una instancia de servicio de Azure Spring Apps:

    Nota:

    Si la suscripción nunca se ha usado para crear una instancia de plan Enterprise de Azure Spring Apps, debe ejecutar el siguiente comando:

    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. Use los siguientes comandos para crear aplicaciones con puntos de conexión:

    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. Use los siguientes comandos para implementar las aplicaciones:

    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
    

Nota:

  • Incluya la dependencia necesaria para 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>
    
  • El código debe usar la API de CircuitBreakerFactory, que se implementa como una bean que se crea automáticamente al incluir un iniciador de Circuit Breaker de Spring Cloud. Para obtener más información, consulte Spring Cloud Circuit Breaker.

  • Las dos dependencias siguientes tienen conflictos con paquetes Resilient4j. Asegúrese de que no los incluya.

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

Vaya a la dirección URL que proporcionan las aplicaciones de la puerta de enlace y acceda al punto de conexión desde spring-cloud-circuit-breaker-demo como se indica a continuación:

/get
/delay/{seconds}
/fluxdelay/{seconds}

Búsqueda de métricas de Resilence4j en Azure Portal

  1. En la instancia de Azure Spring Apps, seleccione Application Insights en el panel de navegación y, a continuación, Application Insights en la página.

    Captura de pantalla de Azure Portal que muestra la página Application Insights de Azure Spring Apps con Application Insights resaltado.

    Nota:

    Si no habilita Application Insights, puede habilitar el agente en proceso de Java. Para obtener más información, consulte la sección Administrar Application Insights mediante Azure Portal de Uso del agente en proceso Java de Application Insights en Azure Spring Apps.

  2. Habilitar la recopilación de dimensiones para las métricas resilience4j. Para obtener más información, consulte la sección Dimensiones de métricas personalizadas y agregación previa de Métricas agregadas previamente y basadas en registros en Application Insights.

  3. Seleccione Métricas en el panel de navegación. La página Métricas proporciona menús desplegables y opciones para definir los gráficos de este procedimiento. Para todos los gráficos, establezca Espacio de nombres de métricas en azure.applicationinsights.

    Captura de pantalla de la página Métricas de Application Insights de Azure Portal con el menú Espacio de nombres de métrica abierto y la opción azure-applicationinsights resaltada.

  4. Establezca Métrica en resilience4j_circuitbreaker_buffered_calls y, a continuación, establezca Agregación en Promedio.

    Captura de pantalla de la página Métricas de Application Insights de Azure Portal que muestra un gráfico con llamadas almacenadas en búfer del disyuntor y agregación media.

  5. Establezca Métrica en resilience4j_circuitbreaker_callsy, a continuación, establezca Agregación en Promedio.

    Captura de pantalla de la página Métricas de Application Insights de Azure Portal que muestra un gráfico con llamadas almacenadas de disyuntor y agregación media.

  6. Establezca Métrica en resilience4j_circuitbreaker_callsy, a continuación, establezca Agregación en Promedio. Seleccione Agregar filtro y establezca Nombre en Retraso.

    Captura de pantalla de la página Métricas de Application Insights de Azure Portal que muestra un gráfico con llamadas almacenadas de disyuntor, agregación media y Filtro de retraso.

  7. Establezca Métrica en resilience4j_circuitbreaker_callsy, a continuación, establezca Agregación en Promedio. Seleccione Aplicar división y establezca Dividir por tipo.

    Captura de pantalla de la página Métricas de Application Insights de Azure Portal que muestra un gráfico con llamadas almacenadas de disyuntor, la agregación media y división.

  8. Establezca Métrica en resilience4j_circuitbreaker_callsy, a continuación, establezca Agregación en Promedio. Seleccione Agregar métrica métricas y establezca Métrica en resilience4j_circuitbreaker_buffered_callsy, a continuación, establezca Agregación en Promedio. Seleccione Agregar métrica de nuevo y establezca Métrica en resilience4j_circuitbreaker_slow_callsy, a continuación, establezca Agregación en Promedio.

    Captura de pantalla de Azure Portal que muestra la página Métricas de Application Insights con el gráfico descrito en este paso.

  1. En la instancia de Azure Spring Apps, seleccione Application Insights en el panel de navegación y, a continuación, seleccione el predeterminado en Application Insights en la página.

    Captura de pantalla de Azure Portal que muestra la página Application Insights de Azure Spring Apps con la instancia predeterminada de Application Insights resaltada.

    Nota:

    Si no hay disponible Application Insights predeterminado, puede habilitar el agente en proceso de Java. Para obtener más información, consulte la sección Administrar Application Insights mediante Azure Portal de Uso del agente en proceso Java de Application Insights en Azure Spring Apps.

  2. Habilitar la recopilación de dimensiones para las métricas resilience4j. Para obtener más información, consulte la sección Dimensiones de métricas personalizadas y agregación previa de Métricas agregadas previamente y basadas en registros en Application Insights.

  3. Seleccione Métricas en el panel de navegación. La página Métricas proporciona menús desplegables y opciones para definir los gráficos de este procedimiento. Para todos los gráficos, establezca Espacio de nombres de métricas en azure.applicationinsights.

    Captura de pantalla de la página Métricas de Application Insights de Azure Portal con el menú Espacio de nombres de métrica abierto y azure.applicationinsights resaltada.

  4. Establezca Métrica en resilience4j_circuitbreaker_buffered_calls y, a continuación, establezca Agregación en Promedio.

    Captura de pantalla de la página Métricas de Application Insights de Azure Portal que muestra un gráfico con llamadas almacenadas en búfer del disyuntor y agregación media.

  5. Establezca Métrica en resilience4j_circuitbreaker_callsy, a continuación, establezca Agregación en Promedio.

    Captura de pantalla de la página Métricas de Application Insights de Azure Portal que muestra un gráfico con llamadas almacenadas de disyuntor y agregación media.

  6. Establezca Métrica en resilience4j_circuitbreaker_callsy, a continuación, establezca Agregación en Promedio. Seleccione Agregar filtro y establezca Nombre en Retraso.

    Captura de pantalla de la página Métricas de Application Insights de Azure Portal que muestra un gráfico con llamadas almacenadas de disyuntor, agregación media y filtro de retraso.

  7. Establezca Métrica en resilience4j_circuitbreaker_callsy, a continuación, establezca Agregación en Promedio. Seleccione Aplicar división y establezca Dividir por tipo.

    Captura de pantalla de la página Métricas de Application Insights de Azure Portal que muestra un gráfico con llamadas almacenadas de disyuntor, la agregación media y división.

  8. Establezca Métrica en resilience4j_circuitbreaker_callsy, a continuación, establezca Agregación en Promedio. Seleccione Agregar métrica métricas y establezca Métrica en resilience4j_circuitbreaker_buffered_callsy, a continuación, establezca Agregación en Promedio. Seleccione Agregar métrica de nuevo y establezca Métrica en resilience4j_circuitbreaker_slow_callsy, a continuación, establezca Agregación en Promedio.

    Captura de pantalla de Azure Portal que muestra la página Métricas de Application Insights con el gráfico descrito en este paso.

Pasos siguientes