WEB BE Repo/Spring

Micrometer

조금씩 차근차근 2025. 2. 20. 21:40

전투에 실패한 지휘관은 용서할 수 있지만, 경계에서 실패하는 지휘관은 용서할 수 없다

  • 개발 하고 끝내버리면, DevOps 경험, 좋은 품질, 유지보수가 사라진다.
    • 경계는 확실하게 해라
    • 개발도 하고, 모니터링도 구축해보고, 해야 한다.
  • 메트릭을 보는 이유
    • 정확한 값을 확인하기 위해?
      • X
    • 값의 추세를 보기 위해?
      • O
      • 큰 그림에서, 흐름이 어떻게 흘러가고 있는지 파악

마이크로미터란?

  • 표준 측정 방식을 정한 인터페이스

  • "애플리케이션 매트릭 파사드"
    • 애플리케이션의 매트릭(측정 지표)을 마이크로미터가 정한 표준 방법으로 모아서 제공
    • 스프링부트 액츄에이터는 마이크로미터를 기본으로 내장해서 사용
    • 개발자는 마이크로미터가 정한 표준 방법으로 매트릭을 전달하면 된다
      • 마이크로미터는 이미 지표 수집 기능을 이미 만들어서 제공
      • 오토컨픽으로 자동으로 등록
  • 마이크로미터 전체 그림

  • actuator/metrics 링크에서 가능한 선택지 확인 가능
  • 쿼리 파라미터 형태의 TAG로 추가 정보 확인 가능
    • /actuator/metrics/logback.events ?tag=level:error

마이크로미터와 액츄에이터가 기본으로 제공하는 매트릭의 종류 - /actuator/metrics

  • JVM 매트릭 (jvm. 으로 시작)
    • 메모리 및 버퍼 풀 세부 정보
    • 가비지 수집 관련 통계
    • 스레드 활용
    • 로드 및 언로드된 클래스 수
    • JVM 버전 정보
    • JIT 컴파일 시간
  • 시스템 매트릭 (system. , process. , disk. 으로 시작)
    • CPU 지표
    • 파일 디스크립터 메트릭
    • 가동 시간 메트릭
    • 사용 가능한 디스크 공간
  • 애플리케이션 시작 메트릭
    • application.started.time
      • ApplicationStartedEvent 로 측정
    • application.ready.time
      • ApplicationReadyEvent 로 측정
  • 스프링 MVC 메트릭
    • 스프링 mvc 컨트롤러가 처리하는 모든 요청
    • http.server.requests
    • TAG를 사용해서 다음 정보를 분류해서 확인 가능
      • uri
        • 요청 URI
      • method
        • GET ,POST 같은 HTTP 메서드
      • status
        • 200 ,400 ,500 같은 HTTP Status 코드
      • exception
        • 예외
      • outcome: 상태코드를 그룹으로 모아서 확인
        • 1xx:INFORMATIONAL ,
        • 2xx:SUCCESS ,
        • 3xx:REDIRECTION ,
        • 4xx:CLIENT_ERROR ,
        • `5xx:SERVER_ERROR
  • 데이터소스 메트릭 jdbc.connections. 로 시작
    • 데이터 소스, 커넥션 풀에 관한 메트릭 확인 가능
  • 로그 메트릭 logback.events 로 시작
    • 각각의 로그 레벨에 따른 로그 수 확인 가능
    • error 로그 수가 급격히 높아진다면 위험한 신호
  • 톰캣 메트릭 (tomcat. 으로 시작)
    • 톰캣 메트릭 모두 사용하려면 server.tomcat.mbeanregistry.enabled: true 로 설정해야함
    • 톰캣의 최대 스레드, 사용 쓰레드 수, 등등
      • tomcat.threads.busy
        • 현재 바쁘게 동작하는 스레드
      • tomcat.threads.config.max
        • 최대로 받을 수 있는 요청 스레드 수
  • HTTP 클라이언트 메트릭
    • RestTemplate
    • WebClient

사용자 정의 메트릭

  • 사용자가 직접 메트릭을 정의해서 사용 가능
  • EX) 주문 수, 취소 수

한계

  • 매트릭을 지속적으로 수집하고 보관할 데이터베이스가 필요함
    • "프로메테우스"
  • 해당 메트릭들을 그래프를 통해 한눈에 보게 해줄 대시보드가 필요함
    • "그라파나"

'WEB BE Repo > Spring' 카테고리의 다른 글

Spring Web MVC가 요청을 처리하는 과정 - DispatcherServlet의 동작구조  (0) 2025.04.22
스프링이란?  (0) 2025.03.08
Grafana  (0) 2025.02.20
Prometheus  (0) 2025.02.20