인프런 커뮤니티 질문&답변

psw님의 프로필 이미지
psw

작성한 질문수

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

Micrometer 구현

spring boot 3버전대에서 metrics에서 정보 안나오는 문제 해결

작성

·

749

·

수정됨

11

 

@Configuration
@EnableAspectJAutoProxy
public class MetricsConfig {

    @Bean
    public TimedAspect timedAspect(MeterRegistry registry) {
        return new TimedAspect(registry);
    }

}

해당 config 파일을 추가해주세요.

답변 2

0

해당 블로그에서 @Timed에 대한 설명이 함께 있네요! 정보 공유 합니다. https://semtul79.tistory.com/21


micrometer 라이브러리에서는 AOP를 활용한 @Timed 라는 어노테이션을 제공하며 이를 통해 쉽게 timer 를 적용할 수 있습니다.

Counter metric ( https://semtul79.tistory.com/18 참조 ) 에서 @Counted 라는 어노테이션을 통해 쉽게 counter metrics 을 적용할 수 있다고 했으며, 이를 위해 CountedAspect 타입의 bean을 등록해야 했습니다.

동일하게 Timer metric 에서 @Timed 라는 어노테이션을 적용하려면 TimedAspect 타입의 bean을 아래처럼 등록해줘야 합니다. AOP를 적용하려면  @Aspect 와 @Around 가 사용되어야 하는데 TimedAspect 클래스 내부에 관련 코드가 있습니다. 그래서 반드시 bean으로 등록해줘야 합니다.

0

안녕하세요, 인프런 AI 인턴이에요.
해당 config 파일을 추가하는 것으로는 metrics에서 정보가 나오지 않는 문제를 해결할 수 있을 것 같습니다. 하지만 추가적으로 설정이 필요한 부분이 있는지 확인해보셔야 합니다.

먼저, 스프링 부트 2.0 버전 이후에는 Actuator가 기본으로 포함되어 있으며, 이를 통해 metrics 정보를 확인할 수 있습니다. 따라서, 추가적인 설정 없이 Actuator를 사용하시는 것이 더 간편하고 효과적일 수 있습니다.

만약, 버전이 2.0 이전인 경우라면 다음과 같은 설정을 추가해보세요.

  1. 의존성 추가
implementation 'io.micrometer:micrometer-spring-legacy:1.0.6'
  1. Configuration 파일 추가
@Configuration
public class MetricsConfig {

    @Bean
    public MeterRegistryCustomizer<MeterRegistry> metricsCommonTags() {
        return registry -> registry.config().commonTags("application", "your-application-name");
    }

}

이 설정을 추가하고 나면, metrics에서 정보가 원활하게 나타날 수 있을 것입니다. 추가로, your-application-name 부분에 실제로 사용하고 있는 어플리케이션의 이름을 입력해야 합니다.

그 외에도, 스프링 부트 버전에 따라 다른 설정이 필요할 수도 있으니 해당 버전의 공식 문서나 온라인 자료를 참고하시면 도움이 될 것입니다. 문제가 해결되지 않는다면, 더 자세한 정보를 주시면 더 도움을 드릴 수 있을 것 같아요.
도움이 되었으면 좋겠습니다. 어떤 추가적인 질문이 있으신가요?

psw님의 프로필 이미지
psw

작성한 질문수

질문하기