Micrometer로 Spring Cloud Resilience4J 회로 차단기 메트릭 수집(미리 보기)
참고 항목
기본, 표준 및 엔터프라이즈 계획은 2025년 3월 중순부터 사용되지 않으며 3년의 은퇴 기간이 있습니다. Azure Container Apps로 전환하는 것이 좋습니다. 자세한 내용은 Azure Spring Apps 사용 중지 공지 사항을 참조하세요.
표준 소비 및 전용 계획은 2024년 9월 30일부터 사용되지 않으며 6개월 후에 완전히 종료됩니다. Azure Container Apps로 전환하는 것이 좋습니다. 자세한 내용은 Azure Spring Apps 표준 사용량 및 전용 계획을 Azure Container Apps로 마이그레이션을 참조 하세요.
이 문서는 기본/표준 ✅ 엔터프라이즈에✅ 적용됩니다.
이 문서에서는 Application Insights Java In Process 에이전트로 Spring Cloud Resilience4j 회로 차단기 메트릭을 수집하는 방법을 보여 줍니다. 이 기능을 사용하면 Micrometer를 통해 Application Insights에서 resilience4j 회로 차단기의 메트릭을 모니터링할 수 있습니다.
spring-cloud-circuit-breaker-demo 데모는 모니터링 작동 방식을 보여 줍니다.
필수 조건
- 개발 컴퓨터에 아직 설치되지 않은 경우 Git, Maven, Java를 설치합니다.
앱 빌드 및 배포
다음 단계에서 샘플 애플리케이션을 빌드하고 배포합니다.
다음 명령을 사용하여 데모 리포지토리를 복제하고 빌드합니다.
git clone https://github.com/spring-cloud-samples/spring-cloud-circuitbreaker-demo.git cd spring-cloud-circuitbreaker-demo && mvn clean package -DskipTests
다음 명령을 사용하여 Azure Spring Apps 서비스 인스턴스를 만듭니다.
az spring create \ --resource-group ${resource-group-name} \ --name ${Azure-Spring-Apps-instance-name}
다음 명령을 사용하여 엔드포인트가 있는 애플리케이션을 만듭니다.
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
다음 명령을 사용하여 애플리케이션을 배포합니다.
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
다음 명령을 사용하여 Azure Spring Apps 서비스 인스턴스를 만듭니다.
참고 항목
구독을 사용하여 Azure Spring Apps의 Enterprise 플랜 인스턴스를 만든 적이 없는 경우 다음 명령을 실행해야 합니다.
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
다음 명령을 사용하여 엔드포인트가 있는 애플리케이션을 만듭니다.
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
다음 명령을 사용하여 애플리케이션을 배포합니다.
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
참고 항목
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>
코드는
CircuitBreakerFactory
API를 사용해야 합니다. 이 API는 Spring Cloud 회로 차단기 스타터를 포함하는 경우 자동으로 생성되는bean
으로 구현됩니다. 자세한 내용은 Spring Cloud Circuit Breaker를 참조하세요.다음 2개의 종속성은 resilient4j 패키지와 충돌합니다. 이를 포함하지 않도록 합니다.
<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>
게이트웨이 애플리케이션에서 제공하는 URL로 이동하여 다음과 같이 spring-cloud-circuit-breaker-demo에서 엔드포인트에 액세스합니다.
/get
/delay/{seconds}
/fluxdelay/{seconds}
Azure Portal에서 Resilence4j 메트릭 찾기
Azure Spring Apps 인스턴스의 탐색 창에서 Application Insights를 선택한 다음, 페이지에서 Application Insights를 선택합니다.
참고 항목
Application Insights를 사용하도록 설정하지 않으면 Java In-Process 에이전트를 사용하도록 설정할 수 있습니다. 자세한 내용은 Azure Spring Apps에서 Application Insights Java In-Process 에이전트 사용의 Azure Portal을 사용하여 Application Insights 관리 섹션을 참조하세요.
resilience4j 메트릭에 차원 컬렉션을 사용하도록 설정합니다. 자세한 내용은 Azure Application Insights의 로그 기반 및 사전 집계 메트릭의 사용자 지정 메트릭 차원 및 사전 집계 섹션을 참조하세요.
탐색 창에서 메트릭을 선택합니다. 메트릭 페이지에서는 이 절차에서 차트를 정의하는 드롭다운 메뉴와 옵션을 제공합니다. 모든 차트에서 메트릭 네임스페이스를 azure.applicationinsights로 설정합니다.
메트릭을 resilience4j_circuitbreaker_buffered_calls로 설정한 다음, 집계를 평균으로 설정합니다.
메트릭을 resilience4j_circuitbreaker_calls로 설정한 다음, 집계를 평균으로 설정합니다.
메트릭을 resilience4j_circuitbreaker_calls로 설정한 다음, 집계를 평균으로 설정합니다. 필터 추가를 선택하고 이름을 Delay로 설정합니다.
메트릭을 resilience4j_circuitbreaker_calls로 설정한 다음, 집계를 평균으로 설정합니다. 분할 적용을 선택하고 분할 기준을 종류로 설정합니다.
메트릭을 resilience4j_circuitbreaker_calls로 설정한 다음, 집계를 평균으로 설정합니다. 메트릭 추가를 선택하고 메트릭을 resilience4j_circuitbreaker_buffered_calls로 설정한 다음, 집계를 평균으로 설정합니다. 메트릭 추가를 다시 선택하고 메트릭을 resilience4j_circuitbreaker_slow_calls로 설정한 다음 집계를 평균으로 설정합니다.
Azure Spring Apps 인스턴스의 탐색 창에서 Application Insights를 선택한 다음, 페이지에서 기본 Application Insights를 선택합니다.
참고 항목
사용할 수 있는 기본 Application Insights가 없는 경우 Java In-Process 에이전트를 사용하도록 설정할 수 있습니다. 자세한 내용은 Azure Spring Apps에서 Application Insights Java In-Process 에이전트 사용의 Azure Portal을 사용하여 Application Insights 관리 섹션을 참조하세요.
resilience4j 메트릭에 차원 컬렉션을 사용하도록 설정합니다. 자세한 내용은 Azure Application Insights의 로그 기반 및 사전 집계 메트릭의 사용자 지정 메트릭 차원 및 사전 집계 섹션을 참조하세요.
탐색 창에서 메트릭을 선택합니다. 메트릭 페이지에서는 이 절차에서 차트를 정의하는 드롭다운 메뉴와 옵션을 제공합니다. 모든 차트에서 메트릭 네임스페이스를 azure.applicationinsights로 설정합니다.
메트릭을 resilience4j_circuitbreaker_buffered_calls로 설정한 다음, 집계를 평균으로 설정합니다.
메트릭을 resilience4j_circuitbreaker_calls로 설정한 다음, 집계를 평균으로 설정합니다.
메트릭을 resilience4j_circuitbreaker_calls로 설정한 다음, 집계를 평균으로 설정합니다. 필터 추가를 선택하고 이름을 Delay로 설정합니다.
메트릭을 resilience4j_circuitbreaker_calls로 설정한 다음, 집계를 평균으로 설정합니다. 분할 적용을 선택하고 분할 기준을 종류로 설정합니다.
메트릭을 resilience4j_circuitbreaker_calls로 설정한 다음, 집계를 평균으로 설정합니다. 메트릭 추가를 선택하고 메트릭을 resilience4j_circuitbreaker_buffered_calls로 설정한 다음, 집계를 평균으로 설정합니다. 메트릭 추가를 다시 선택하고 메트릭을 resilience4j_circuitbreaker_slow_calls로 설정한 다음 집계를 평균으로 설정합니다.