반응형
Observability Series 01
장애를 미리 발견하는 법,
Prometheus & Grafana 모니터링 기초
안녕하세요, code-resting입니다. 자동 배포 파이프라인이 완성되었다면, 이제는 운영 중인 서버의 상태를 '관측'할 차례입니다. 사용자가 불편을 느끼기 전에 우리가 먼저 서버의 과부하를 감지하는 것, 그것이 진정한 백엔드 개발자의 실력이죠. 오늘은 Prometheus로 지표를 수집하고 Grafana로 시각화하는 황금 조합을 소개합니다.
1. 모니터링 시스템의 구조
Prometheus는 Pull 방식의 메트릭 수집 도구입니다. 서버가 정보를 쏘는 게 아니라, 정해진 주기마다 Prometheus가 서버에 접속해 데이터를 긁어가는 방식이죠.
- 🔥 Prometheus: 시계열 데이터베이스(TSDB)이자 메트릭 수집기.
- 📊 Grafana: 수집된 데이터를 그래프와 차트로 보여주는 시각화 도구.
2. Spring Boot Actuator & Micrometer
스프링 부트 애플리케이션의 내부 정보를 노출하려면 Actuator와 Micrometer 설정이 필요합니다.
// build.gradle
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'io.micrometer:micrometer-registry-prometheus'
}
설정 후 /actuator/prometheus 엔드포인트에 접속하면, 현재 서버의 CPU, Memory, HTTP 요청 수 등이 텍스트 형태로 노출되는 것을 확인할 수 있습니다.
3. Grafana로 만드는 실시간 대시보드
수집된 날것의 데이터를 Grafana에서 불러와 예쁜 대시보드로 구성합니다. 직접 만들 수도 있지만, JVM (Micrometer) 공식 대시보드(ID: 4701)를 가져다 쓰면 단 1분 만에 전문가 수준의 대시보드를 완성할 수 있습니다.
💡 대시보드에서 꼭 봐야 할 지표:
- Heap Memory Usage: 메모리 누수(Leak) 여부 판단
- CPU Usage: 특정 로직의 연산 과부하 확인
- HTTP Request Latency (p95, p99): 95%, 99%의 사용자가 느끼는 응답 속도
💡 마치며
모니터링은 단순히 숫자를 보는 것이 아니라, 서버의 컨디션을 읽는 과정입니다. Prometheus와 Grafana를 통해 서버가 보내는 신호를 시각화해 보세요. 장애가 발생하고 나서 대응하는 '소방수'가 아니라, 장애를 미리 예방하는 '건설가'가 될 수 있습니다.
반응형
'기타' 카테고리의 다른 글
| 서버가 아프면 슬랙으로 알려줘! Grafana Alerting과 Slack 실시간 알림 연동 (0) | 2026.03.24 |
|---|---|
| 내 서버가 왜 느린지 1초 만에 찾는 법: OpenTelemetry + Grafana 관측성 가이드 (0) | 2026.02.28 |
| 슬랙 웹훅(Incoming WebHooks) 연동 (0) | 2021.05.25 |
| 엑셀 읽기 OOM문제 (0) | 2021.02.03 |
댓글