-
마이크로미터와 액츄에이터가 기본으로 제공하는 메트릭
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