ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 메트릭의 종류들
    스프링/스프링부트 2023. 10. 2. 15:56

    마이크로미터와 액츄에이터가 기본으로 제공하는 메트릭

     

    JVM 메트릭 - jvm

    • 메모리 및 버퍼 풀 세부 정보
    • 가비지 수집 관련 통계스레드 활용
    • 로드 및 언로드된 클래스 수
    • JVM 버전 정보
    • JIT 컴파일 시간

     

    시스템 메트릭 - system

    • CPU 지표
    • 파일 디스크립터 메트릭
    • 가동 시간 메트릭
    • 사용 가능한 디스크 공간 - disk.free, disk.total

     

    애플리케이션 시작 메트릭 - application

    application.started.time : 애플리케이션을 시작하는데 걸리는 시간 - ApplicationStartedEvent로 측정

    -> ApplicationStartedEvent : 스프링 컨테이너가 완전히 실행된 상태이다. 이후에 커맨드 라인 러너가 호출된다.

    application.ready.time : 애플리케이션이 요청을 처리할 준비가 되는데 걸리는 시간 - ApplicationReadyEvent 로 측정

    -> ApplicationReadyEvent : 커맨드 라인 러너가 실행된 이후에 호출된다.

     

     

     

    스프링 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

    자주 사용되며 어떤 uri가 많이 호출되었는지, 호출되는 시간의 max값과 total 값들을 볼 수 있으면 이외에도 다양한 정보들을 제공해준다.

     

     

    데이터 소스 메트릭

    최대, 최소 커넥션과 대기 커넥션, hikaricp.를 통해 커넥션 풀의 정보도 확인할 수 있다.

     

     

    로그 메트릭

    tag 필터를 통해 각각의 로그 레벨에 따라서 로그가 몇 번 호출되었는지 확인할 수 있다. 에러 로그가 급격하게 많아진다면 대처를 할 수 있다.

     

     

    톰캣 메트릭

    톰캣 메트릭은 유용하고 자주 사용된다고 한다.

    server:
      tomcat:
        mbeanregistry:
          enabled: true

    application.yml에 위의 코드를 추가하면 톰캣 메트릭이 활성화된다.

     

    tomcat.threads.config.max로 접근하면 value가 나오는데, tomcat thread가 200이라는 소리는 최대 200명의 고객을 받을 수 있다는 뜻이다.

    tomcat.threads.busy는 바쁘게 동작하는 요청이 1개라는 것을 확인해준다. 만약 value가 200개가 된다면 서버 장애가 발생할 것이다.

     

     

    이외에도 너무 많은 메트릭이 있어서 다 정리하지는 못했다.

    또한 사용자가 메트릭을 직접 정의하는 것도 가능하다. 직접 정의하는 것은 나중에 따로 포스팅하겠다.

     

     

     

    메트릭은 실시간 정보를 확인하는 것이기 때문에 지속적으로 수집하고 보관할 수 있는 데이터베이스가 필요하다. 그리고 이러한 메트릭들을 그래프를 통해서 한 눈에 확인하는 대시보드도 필요하다.

     

    다음 포스팅부터 이 기능들은 프로메테우스와 그라파나에 대해서 정리할 것이다.

    '스프링 > 스프링부트' 카테고리의 다른 글

    프로메테우스 - 설정  (0) 2023.10.02
    프로메테우스와 그라파나 소개  (0) 2023.10.02
    메트릭 확인  (0) 2023.10.02
    마이크로미터란?  (0) 2023.10.02
    액츄에이터와 보안  (0) 2023.10.01
Designed by Tistory.