728x90
프로메테우스는 메트릭을 수집하고 보관하는 DB이다. 프로메테우스가 우리 애플리케이션의 메트릭을 수집하도록 연동해 보자.
여기에는 2가지 작업이 필요하다.
- 애플리케이션 설정: 프로메테우스가 애플리케이션의 메트릭을 가져갈 수 있도록 애플리케이션에서 프로메테우스 포맷에 맞추어 메트릭 만들기
- 프로메테우스 설정: 프로메테우스가 우리 애플리케이션의 메트릭을 주기적으로 수집하도록 설정
애플리케이션 설정
프로메테우스가 애플리케이션의 메트릭을 가져가려면 프로메테우스가 사용하는 포멧에 맞추어 메트릭을 만들어야 한다.
참고로 프로메테우스는 /actuator/metrics 에서 보았던 포맷(JSON)은(JSON) 이해하지 못한다.
하지만 프로메테우스 포맷에 대한 부분은 걱정할 것이 없다. 마이크로미터가 이런 부분은 모두 해결해 준다.

각각의 메트릭들은 내부에서 마이크로미터 표준 방식으로 측정되고 있다. 따라서 어떤 구현체를 사용할지 지정만 해주면 된다.
build.gradle 추가
dependencies {
//...
implementation 'io.micrometer:micrometer-registry-prometheus' //추가
//...
}
- 마이크로미터 프로메테우스 구현 라이브러리를 추가한다.
- 이렇게 하면 스프링 부트와 액츄에이터가 자동으로 마이크로미터 프로메테우스 구현체를 등록해서 동작하도록 설정해준다.
- 액츄에이터에 프로메테우스 메트릭 수집 엔드포인트가 자동으로 추가된다.
- /actuator/prometheus
localhost:8080/actuator/prometheus 접근
# HELP jdbc_connections_max Maximum number of active connections that can be allocated at the same time.
# TYPE jdbc_connections_max gauge
jdbc_connections_max{name="dataSource",} 10.0
# HELP tomcat_connections_current_connections
# TYPE tomcat_connections_current_connections gauge
tomcat_connections_current_connections{name="http-nio-8080",} 2.0
# HELP jdbc_connections_min Minimum number of idle connections in the pool.
# TYPE jdbc_connections_min gauge
jdbc_connections_min{name="dataSource",} 10.0
# HELP hikaricp_connections_max Max connections
# TYPE hikaricp_connections_max gauge
hikaricp_connections_max{pool="HikariPool-1",} 10.0
# HELP hikaricp_connections_min Min connections
# TYPE hikaricp_connections_min gauge
....
- jvm.info jvm_info : 프로메테우스는 '.' 대신에 '_' 포멧을 사용한다 '.' 대신에 '_' 포멧으로 변환된 것을 확인할 수 있다.
- logback.events logback_events_total : 로그수 처럼 지속해서 숫자가 증가하는 메트릭을 카운터라 한다. 프로메테우스는 카운터 메트릭의 마지막에는 관례상 _total 을 붙인다.
- http.server.requests: 이 메트릭은 내부에 요청수, 시간 합, 최대 시간 정보를 가지고 있었다. 프로메테우스에서는 다음 3가지로 분리된다.
- http_server_requests_seconds_count : 요청 수
- http_server_requests_seconds_sum : 시간 합(요청수의 시간을 합함)
- http_server_requests_seconds_max : 최대 시간(가장 오래걸린 요청 수)
- 대략 이렇게 포멧들이 변경된다고 보면 된다. 포멧 변경에 대한 부분은 진행하면서 자연스럽게 알아보자
728x90
'스프링 부트(핵심 원리와 활용)' 카테고리의 다른 글
| Ch08. 마이크로미터, 프로메테우스, 그라파나 - 프로메테우스(기본 기능) (0) | 2023.05.05 |
|---|---|
| Ch08. 마이크로미터, 프로메테우스, 그라파나 - 프로메테우스(수집 설정) (0) | 2023.04.30 |
| Ch08. 마이크로미터, 프로메테우스, 그라파나 - 프로메테우스와 그라파나 소개 (0) | 2023.04.26 |
| Ch08. 마이크로미터, 프로메테우스, 그라파나 - 다양한 메트릭 (0) | 2023.04.26 |
| Ch08. 마이크로미터, 프로메테우스, 그라파나 - 메트릭 확인하기 (0) | 2023.04.25 |