be_better

[Springboot] 액추에이터 활용하기 - 액추에이터 기능 본문

Springboot/이론

[Springboot] 액추에이터 활용하기 - 액추에이터 기능

NiceTry 2023. 11. 29. 04:15

목차

    액추에이터 기능 살펴보기

    애플리케이션 기본 정보(/info)

    액추에이터의 /info 엔드포인트를 활용하면 가동 중인 애플리케이션의 정보를 볼 수 있다.

     

    info 정보를 추가하고자 하려면 아래와 같이 EnvironmentInfoContributor을 활성화 시킨 후

    추가하고자 하는 info 정보를 작성하면 된다.

    application.yml 파일 내에 애플리케이션 정보 속성 작성
    management:
      info:
        env:
          enabled: true
    
    info:
      organization.name: wikibooks
      contact:
        email: anyemail@gmail.com
        phoneNumber: 010-0000-0000

     

    애플리케이션을 실행 한 후 브라우저에서 http://localhost:8080/actuator/info 에 접속하면 결과값을 확인할 수 있다.

    애플리케이션 상태(/health)

    /health 엔드포인트를 활용하면 애플리케이션의 상태를 확인할 수 있다.

    별다른 설정없이 /health 엔드포인트 호출 결과

     

    status 속성에서 확인할 수 있는 상태 지표는 다음과 같다.

    • UP
    • DOWN
    • UNKNOWN
    • OUT_OF_SERVICE

    이 결과는 주로 네트워크 계층 중 L4(Loadbalancing) 레벨에서 애플리케이션의 상태를 확인하기 위해 사용된다.

     

    상세 상태를 확인하기 위한 application.yml 속성 추가
    management:
      endpoint:
        health:
          show-details: always

     

    show-details 속성에서 설정할 수 있는 값은 다음과 같다.

    • never(기본값): 세부 사항은 표시하지 않는다.
    • when-authorized: 승인된 사용자에게만 세부 상태를 표시한다. 확인 권한은 application.yml에 추가한 management.endpoint.health.roles 속성으로 부여할 수 있다.
    • always: 모든 사용자에게 세부 상태를 표시한다.

    always로 설정하고 상태를 확인해보면,

     

    만약 애플리케이션이 데이터베이스가 연동되어 있다면 인프라 관련 상태까지 확인할 수 있게된다.

     

    각 항목에 status 속성 값이 모두 UP이어야 애플리케이션의 상태가 UP으로 표시된다. 만약 하나라도 DOWN 상태인 항목이 있다면 애플리케이션의 상태도 DOWN으로 표시되며 HTTP 상태 코드도 변경된다.

     

    빈 정보 확인(/beans)

    액추에이터의 /bean 엔드포인트를 사용하면 스프링 컨테이너에 등록된 스프링 빈의 전체 목록을 표시할 수 있다.

    http://localhost:8080/actuator/beans로 접속할 수 있고 JSON 형식으로 빈의 정보를 반환한다.

     

    스프링 부트의 자동설정 내역 확인(/conditions)

    스프링 부트의 자동설정(AutoConfiguration) 조건 내역을 확인하려면 '/conditions' 엔드포인트를 사용한다.

    출력 내용은 크게 positiveMatches와 negativeMathes 속성으로 구분되는데, 자동설정의 @Conditional에 따라 평가된 내용을 표시한다.

     

    스프링 환경변수 정보(/env)

    /env 엔드포인트는 스프링의 환경변수 정보를 확인하는데 사용된다. 기본적으로 application.yml 파일의 변수들이 표시되며, OS, JVM의 환경변수도 함께 표시된다.

     

    만약 민감한 정보를 가리고 싶다면 yml 파일에 다음 설정을 추가하면된다.

    management:
      endpoint:
        env:
          keys-to-sanitize:

    해당 속성에는 단순 문자열이나 정규식을 활용한다.

     

    로깅 레벨 확인(/loggers)

    애플리케이션의 로깅 레벨 수준이 어떻게 설정되어 있는지 확인하려면 /loggers 엔드포인트를 사용할 수 있다.

     

    http://localhost:8080/actuator/loggers 로 접속