Post

10 Spring Boot Actuator

10 Spring Boot Actuator

1. Spring Boot Actuator

1. Spring Boot Actuator

  • 스프링부트 애플리케이션의 운영 상태를 모니터링하고 관리할 수 있도록 도와주는 모듈
  • 서비스가 실제로 운영 중에 어떻게 동작하고 있는지 — 헬스체크, 로그, 메트릭, 환경 정보, 스레드 상태 등 — 를 쉽게 확인할 수 있게 해주는 도구

2. Spring

  • 스프링 프레임워크와 부트
    • 순수 스프링(Spring Framework): 웹 MVC, DI, AOP 등 “애플리케이션 개발”에 초점
    • 스프링 부트(Spring Boot): 거기에 운영, 설정 자동화, 모니터링, 내장 서버, 실행 관리 기능을 더함
  • 스프링 프레임워크에서 적용
구분스프링 프레임워크스프링 부트
액추에이터 기본 포함 여부❌ 없음✅ 기본 제공
기능 추가 방법직접 구현spring-boot-starter-actuator 의존성 추가
자동 설정없음 (수동 구성 필요)자동 구성 (즉시 사용 가능)
운영/모니터링 편의성낮음매우 높음

3. Actuator로 알 수 있는 것

구분설명예시 엔드포인트
JVM 레벨 정보JVM 내부 동작 상태, 메모리, 스레드, GC, 클래스 로딩 등/actuator/metrics/jvm.memory.used, /actuator/threaddump
스프링 컨테이너 정보등록된 Bean, DI 관계, 요청 매핑, 환경 변수/actuator/beans, /actuator/mappings, /actuator/env
애플리케이션 상태 정보헬스체크, 버전, 빌드 정보, 로그 레벨 등/actuator/health, /actuator/info, /actuator/loggers
외부 연동 정보DB, MQ, Redis, Mail 서버 같은 외부 리소스 연결 상태/actuator/health 내부 세부 정보로 표시됨 (db: UP, redis: DOWN 등)
사용자 정의 메트릭개발자가 추가한 비즈니스 메트릭 (예: 주문 건수, 트래픽량)/actuator/metrics/custom.order.count (커스텀 등록 가능)

2. 활용

1. 실무에서 활용

  • 서버 헬스체크: 로드밸런서가 /actuator/health를 주기적으로 호출해 정상 동작 여부 확인
  • 성능 모니터링: Prometheus, Grafana, Datadog 같은 외부 모니터링 도구와 연동 가능
  • 장애 대응: 실시간으로 로그 레벨을 바꿔 문제 상황을 즉시 디버깅 가능
  • 운영 자동화: 배포 스크립트나 CI/CD 파이프라인에서 상태 확인 용도로 사용

2. 의존성

1
2
3
4
  <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-actuator</artifactId>
  </dependency>

3. application.properties

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    # 1) 액추에이터 엔드포인트 노출 설정
    management.endpoints.web.exposure.include=health,info,metrics,env
    
    # 2) 액추에이터 엔드포인트 기본 경로 설정 (기본값은 /actuator)
    management.endpoints.web.base-path=/actuator
    
    # 3) 헬스 체크 세부 정보 표시
    management.endpoint.health.show-details=always
    
    # 4) info 엔드포인트에 표시할 정보 (빌드, 버전 등)
    info.app.name=MyApplication
    info.app.version=1.0.0
    info.author=유현준
    
    # 5) 서버 포트 (옵션)
    server.port=8080

4. 확인

구분엔드포인트(URL)설정 키 (application.properties)확인 내용비고
헬스 체크/actuator/healthmanagement.endpoint.health.show-details=always애플리케이션의 현재 상태 (UP, DOWN, OUT_OF_SERVICE 등)로드밸런서 헬스체크에 주로 사용
정보/actuator/infoinfo.app.name, info.app.version애플리케이션 버전, 이름, 작성자 등사용자 정의 정보 표시 가능
메트릭/actuator/metricsmanagement.endpoints.web.exposure.include=metricsJVM 메모리, GC, 요청 수, 응답 시간 등 성능 지표Prometheus 등 모니터링 도구와 연동
환경 정보/actuator/envmanagement.endpoints.web.exposure.include=env현재 애플리케이션 환경 변수, 프로퍼티, 프로파일 등민감 정보 포함 가능 — 운영에서는 주의
빈 목록/actuator/beansmanagement.endpoints.web.exposure.include=beans스프링 컨테이너에 등록된 Bean 목록과 의존관계내부 구조 분석 시 유용
요청 매핑/actuator/mappingsmanagement.endpoints.web.exposure.include=mappings컨트롤러 요청 URL과 핸들러 매핑 정보API 라우팅 점검 시 활용
로그/actuator/loggersmanagement.endpoints.web.exposure.include=loggers현재 로그 레벨 조회 및 실시간 변경 가능운영 중 디버깅에 유용
스레드 덤프/actuator/threaddumpmanagement.endpoints.web.exposure.include=threaddump현재 실행 중인 스레드 상태 및 스택트레이스성능 문제 추적용
HTTP 트레이스/actuator/httptracemanagement.endpoints.web.exposure.include=httptrace최근 HTTP 요청/응답 기록 (기본 100개)Spring Boot 2.x에서만 기본 제공
캐시/actuator/cachesmanagement.endpoints.web.exposure.include=caches캐시 상태 및 캐시 이름 목록Spring Cache 사용 시만 노출

3. note

1. note

  • 관리용 툴로 필요한것 체크해서 사용.
This post is licensed under CC BY 4.0 by the author.