Collecter les métriques du disjoncteur Spring Cloud Resilience4J à l’aide de Micrometer (préversion)
Remarque
Les plans Essentiel, Standard et Entreprise seront déconseillés à compter de la mi-mars 2025, avec une période de mise hors service de 3 ans. Nous vous recommandons de passer à Azure Container Apps. Pour plus d’informations, consultez l’annonce de mise hors service d’Azure Spring Apps.
Le plan de consommation standard et dédiée sera déconseillé à compter du 30 septembre 2024, avec un arrêt complet après six mois. Nous vous recommandons de passer à Azure Container Apps. Pour plus d’informations, consultez Migrer le plan de consommation standard et dédiée Azure Spring Apps vers Azure Container Apps.
Cet article s’applique à :✅ Essentiel/Standard ✅ Entreprise
Cet article explique comment collecter les métriques de disjoncteur Spring Cloud Resilience4j avec l’agent In-process Java Application Insights. Grâce à cette fonctionnalité, vous pouvez surveiller les métriques du disjoncteur Resilience4J à partir d’Application Insights avec Micrometer.
La démonstration spring-cloud-circuit-breaker-demo montre comment fonctionne la supervision.
Prérequis
- Installez Git, Maven et Java, s’il n’est pas déjà installé sur l’ordinateur de développement.
Créer et déployer des applications
Procédez comme suit pour générer et déployer les exemples d’applications.
Utilisez la commande suivante pour cloner et générer le référentiel de démonstration :
git clone https://github.com/spring-cloud-samples/spring-cloud-circuitbreaker-demo.git cd spring-cloud-circuitbreaker-demo && mvn clean package -DskipTests
Utilisez la commande suivante pour créer une instance de service Azure Spring Apps :
az spring create \ --resource-group ${resource-group-name} \ --name ${Azure-Spring-Apps-instance-name}
Utilisez les commandes suivantes pour créer les applications avec des points de terminaison :
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
Utilisez les commandes suivantes pour déployer les applications :
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
Utilisez la commande suivante pour créer une instance de service Azure Spring Apps :
Remarque
Si votre abonnement n’a jamais été utilisé pour créer une instance de plan Entreprise d’Azure Spring Apps, vous devez exécuter la commande suivante :
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
Utilisez les commandes suivantes pour créer des applications avec des points de terminaison :
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
Utilisez les commandes suivantes pour déployer les applications :
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
Remarque
Incluez la dépendance requise pour 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>
Votre code doit utiliser l’API
CircuitBreakerFactory
, qui est implémentée en tant quebean
créée automatiquement lorsque vous incluez un démarrage de disjoncteur Spring Cloud. Pour plus d’informations, consultez Disjoncteur Spring Cloud.Les deux dépendances suivantes sont en conflit avec les packages Resilient4J. Veillez à ne pas les inclure.
<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>
Accédez à l’URL fournie par les applications de passerelle, puis au point de terminaison à partir de spring-cloud-circuit-breaker-demo comme suit :
/get
/delay/{seconds}
/fluxdelay/{seconds}
Localiser les métriques Resilence4j sur le portail Azure
Dans votre instance Azure Spring Apps, sélectionnez Application Insights dans le volet de navigation, puis sélectionnez Application Insights sur la page.
Remarque
Si vous n’activez pas Application Insights, vous pouvez activer l’agent Java In-process. Pour plus d’informations, consultez la section Gérer Application Insights à l’aide du portail Azure de l’article Utiliser l’agent In-process Java d’Application Insights dans Azure Spring Apps.
Activer la collecte de dimensions pour les métriques resilience4j. Pour plus d’informations, consultez la section Dimensions des métriques personnalisées et pré-agrégation de l’article Métriques basées sur le journal et pré-agrégées dans Application Insights.
Sélectionnez Métriques dans le volet de navigation. La page Métriques fournit des menus déroulants et des options permettant de définir les graphiques dans cette procédure. Pour tous les graphiques, définissez l’espace de noms des métriques sur azure.applicationinsights.
Définissez Métrique sur resilience4j_circuitbreaker_buffered_calls, puis définissez Agrégation sur Moyenne.
Définissez Métrique sur resilience4j_circuitbreaker_calls, puis définissez Agrégation sur Moyenne.
Définissez Métrique sur resilience4j_circuitbreaker_calls, puis définissez Agrégation sur Moyenne. Sélectionnez Ajouter un filtre et définissez Nom sur Retarder.
Définissez Métrique sur resilience4j_circuitbreaker_calls, puis définissez Agrégation sur Moyenne. Sélectionnez Appliquer la division et définissez Diviser par pour type.
Définissez Métrique sur resilience4j_circuitbreaker_calls, puis définissez Agrégation sur Moyenne. Sélectionnez Ajouter une métrique et définissez Métrique sur resilience4j_circuitbreaker_buffered_calls, puis définissez Agrégation sur Moyenne. Sélectionnez Ajouter une métrique, puis définissez Métrique sur resilience4j_circuitbreaker_slow_calls, puis Agrégation sur Moyenne.
Dans votre instance Azure Spring Apps, sélectionnez Application Insights dans le volet de navigation, puis sélectionnez Application Insights par défaut sur la page.
Remarque
S’il n’existe aucune application Insights par défaut disponible, vous pouvez activer l’agent Java In-process. Pour plus d’informations, consultez la section Gérer Application Insights à l’aide du portail Azure de l’article Utiliser l’agent In-process Java d’Application Insights dans Azure Spring Apps.
Activer la collecte de dimensions pour les métriques resilience4j. Pour plus d’informations, consultez la section Dimensions des métriques personnalisées et pré-agrégation de l’article Métriques basées sur le journal et pré-agrégées dans Application Insights.
Sélectionnez Métriques dans le volet de navigation. La page Métriques fournit des menus déroulants et des options permettant de définir les graphiques dans cette procédure. Pour tous les graphiques, définissez l’espace de noms des métriques sur azure.applicationinsights.
Définissez Métrique sur resilience4j_circuitbreaker_buffered_calls, puis définissez Agrégation sur Moyenne.
Définissez Métrique sur resilience4j_circuitbreaker_calls, puis définissez Agrégation sur Moyenne.
Définissez Métrique sur resilience4j_circuitbreaker_calls, puis définissez Agrégation sur Moyenne. Sélectionnez Ajouter un filtre et définissez Nom sur Retarder.
Définissez Métrique sur resilience4j_circuitbreaker_calls, puis définissez Agrégation sur Moyenne. Sélectionnez Appliquer la division et définissez Diviser par pour type.
Définissez Métrique sur resilience4j_circuitbreaker_calls, puis définissez Agrégation sur Moyenne. Sélectionnez Ajouter une métrique et définissez Métrique sur resilience4j_circuitbreaker_buffered_calls, puis définissez Agrégation sur Moyenne. Sélectionnez Ajouter une métrique, puis définissez Métrique sur resilience4j_circuitbreaker_slow_calls, puis Agrégation sur Moyenne.