지금까지는 단순히 프로젝트 개발과 배포만 하고 그 이후의 일은 크게 생각해본적이 없었다. 마이크로미터, 프로메테우스, 그라파나는 들어보기만 했는데 이번에 모니터링 관련 내용을 잘 배워서 나중에 프로젝트에 사용해볼 계획이다.
들어가기
마이크로미터는 모니터링 툴마다 필요한 정보를 보내는 것을 추상화하여 제공하는 라이브러이이다.
예를 들어, JMX와 프로메테우스에서 필요한 정보의 포맷이 다를 수 있는데 이 모니터링 툴들마다 구현체를 만들어서 사용하는 추상화로 일관된 방법으로 정보 제공을 할 수 있도록 개발자에게 기능을 제공해준다.
액추에이터로 조회하면 현재의 내역만 나온다. 그래서 프로메테우스를 통해 전달받은 메트릭 정보를 DB에 저장하여 과거의 내역을 확인할 수 있다.
implementation 'io.micrometer:micrometer-registry-prometheus' // 프로메테우스 추가
build.gradle에 위 라이브러리를 추가한다.
마이크로미터를 통해 프로메테우스를 사용할 수 있도록 해준다.
프로메테우스 설치
https://github.com/prometheus/prometheus
GitHub - prometheus/prometheus: The Prometheus monitoring system and time series database.
The Prometheus monitoring system and time series database. - prometheus/prometheus
github.com
위 저장소에서 프로메테우스를 다운받는다.
나는 윈도우 환경이어서 prometheus-2.54.0.windows-amd64.zip를 다운받았다.
내용물을 보면 위와 같이 되어 있는데 prometheus.yml에 아래와 같은 내용을 추가한다.
#추가
- job_name: "spring-actuator"
metrics_path: '/actuator/prometheus'
scrape_interval: 1s
static_configs:
- targets: ['localhost:8080']
일단 스프링 부트 프로젝트에 Actuator가 포함되어 있어야 한다.
프로메테우스에서는 결국 액추에이터로 조회할 수 있는 정보를 가져가기 때문이다.
위 내용은 localhost:8080의 /actuator/prometheus 경로로 1초마다 요청을 보내 정보를 수집하겠다는 것을 추가한 것이다.
/actuator 로 요청을 보내 응답을 확인해보면 프로메테우스 관련 경로가 추가된 것을 알 수 있다.
/actuator/prometheus 로 접속해서 확인해보면
위와 같은 내용을 확인할 수 있는데 이 내용이 프로메테우스에서 사용하는 형태이다.
프로메테우스 살펴보기
prometheus.exe를 실행하고, 9090포트로 접근하면 위와 같은 화면을 볼 수 있다.
http_server_request_seconds_count로 접근해보면 어떤 uri로 몇 번 요청이 왔었는지 확인할 수 있다.
이런 식으로 필요한 정보를 검색하여 확인할 수 있다.
그래프를 선택하여 살펴볼 수도 있다.
다음 게시글
https://megamaker.tistory.com/395
[Spring Boot] 그라파나(Grafana) 대시보드 사용하기
https://megamaker.tistory.com/391 [Spring Boot] 마이크로미터(Micrometer), 프로메테우스(Prometheus) 알아보기지금까지는 단순히 프로젝트 개발과 배포만 하고 그 이후의 일은 크게 생각해본적이 없었다. 마이
megamaker.tistory.com
스프링 부트 - 핵심 원리와 활용 강의 | 김영한 - 인프런
김영한 | 실무에 필요한 스프링 부트는 이 강의 하나로 모두 정리해드립니다., 백엔드 개발자를 위한 스프링 부트 끝판왕! 실무에 필요한 내용을 모두 담았습니다. [임베딩 영상] 김영한의 스
www.inflearn.com
'공부 > Spring' 카테고리의 다른 글
[Spring] 타임리프 알아보기 1 (1) | 2024.09.17 |
---|---|
[Spring Boot] 그라파나(Grafana) 대시보드 사용하기 (1) | 2024.09.15 |
[Spring Boot] Environment, @Value, @ConfigurationProperties (0) | 2024.09.07 |
[Spring Boot] 외부 설정 알아보기 (0) | 2024.08.31 |
[Spring Boot] @EnableAutoConfiguration, @ImportSelector 알아보기 (0) | 2024.08.30 |