2024. 5. 4. 23:21ㆍ프로젝트/[EATceed] 몸무게 증량 어플
모니터링은 시스템, 네트워크 그리고 서비스의 상태 및 성능을 지속적으로 감시 및 기록하는 프로세스이다.
모니터링 환경을 구축하는 이유가 많겠지만, 필자가 모니터링 환경을 구축한 이유는 시스템의 성능을 추적하기 위해서다.
모니터링 환경을 구축하는 방법을 알기 전에 구성요소들의 개념을 알아야한다.
Metric
Metric이란 모니터링을 위해 수집되는 측정 항목이나 지표를 말합니다. Metric은 CPU, 메모리 그리고 디스크 I/O 등의 지표는 물론 사용자가 특정 비즈니스 메트릭을 커스텀하게 만들 수도 있습니다.
Actuator
Actuator는 Spring Boot에서 제공하는 라이브러리로 여러 endpoint를 제공하여 애플리케이션을 쉽게 관리할 수 있도록 도와준다.
Atuator의 MicroMeter는 애플리케이션 내부의 다양한 Metric을 수집한다.
예를 들어, /actuator 로 요청을 보내면 여러 endPoint들이 나옵니다.
{
"_links": {
"self": {
"href": "<http://localhost:8080/actuator>",
"templated": false
},
"prometheus": {
"href": "<http://localhost:8080/actuator/prometheus>",
"templated": false
},
"health": {
"href": "<http://localhost:8080/actuator/health>",
"templated": false
},
"info": {
"href": "<http://localhost:8080/actuator/info>",
"templated": false
},
"conditions": {
"href": "<http://localhost:8080/actuator/conditions>",
"templated": false
},
"configprops-prefix": {
"href": "<http://localhost:8080/actuator/configprops/{prefix}>",
"templated": true
},
"loggers": {
"href": "<http://localhost:8080/actuator/loggers>",
"templated": false
},
"heapdump": {
"href": "<http://localhost:8080/actuator/heapdump>",
"templated": false
},
"threaddump": {
"href": "<http://localhost:8080/actuator/threaddump>",
"templated": false
},
...
}
}
이에 관한 상세한 설명은 공식문서에 제공되어 있습니다.
Prometheus
Prometheus는 Actuator의 MicroMeter가 수집한 Metric Data를 일정 시간 간격으로 Pull 을 하여 저장한다.
여기서 중요한 것은 MicroMeter는 Metric 데이터를 JSON 형식으로 전달하지만 Prometheus는 JSON 데이터를 처리하지 못 하여 변환하는 과정이 필요하다.
따라서, Prometheus 처리할 수 있는 데이터 형식으로 바꿔주는 것이 필요하다.
Grafana
Grafana는 Prometheus에서 수집한 Meric 데이터를 시각화해주는 오픈 소스이다.
구체적으로는, Prometheus에게 쿼리를 날리면 Prometheus에 저장된 Metric 데이터를 가지고 시각화를 해준다.
Grafana에서는 원하는 DashBoards를 Import 하여 사용할 수 있다.
아래는 필자가 Import한 DashBoards 캡쳐본이다.
흐름 정리
1. SpringBoot Application에서 Actuator의 MicroMeter는 Metric Data들을 수집한다.
2. Prometheus는 Metric Data를 일정 시간 간격으로 Pull해 저장한다.
3. Grafana는 Prometheus의 데이터를 시각화 한다.
지금까지 구축할 모니터링 환경에 대한 간단한 개념을 알아보았습니다.
다음 포스팅에서는 Docker를 사용하여 모니터링 환경을 구축하는 법을 다루겠습니다.
감사합니다~
'프로젝트 > [EATceed] 몸무게 증량 어플' 카테고리의 다른 글
EC2 용량 부족 이슈 해결 (0) | 2024.05.13 |
---|---|
@ColumnDefault에 대한 오해 (0) | 2024.05.07 |
개발용 인프라 구축 (2) | 2024.03.08 |
헥사고날 아키텍처 회고 (1) (0) | 2024.02.12 |
리버스 프록시(Reverse Proxy) 설정 (2) | 2024.01.22 |