Prometheus란?
Prometheus는 시계열 데이터(time-series data) 를 수집하고 저장하는 오픈소스 모니터링 시스템
즉, 시스템이나 애플리케이션에서 발생하는 숫자 지표(metric) 들을 주기적으로 수집해서 저장하고, 쿼리하고, 시각화 기능 제공
예를 들어 수집 가능한 것들
메트릭 예시 | 의미 |
---|
cpu_usage_seconds_total | CPU 사용 시간 |
process_resident_memory_bytes | 메모리 사용량 |
http_requests_total | HTTP 요청 수 |
disk_io_time_seconds_total | 디스크 IO 시간 |
go_gc_duration_seconds | GC 시간 (Go 앱일 경우) |
주요 구성 요소
구성 요소 | 설명 |
---|
Prometheus Server | 메트릭 수집 + 저장 + 쿼리 |
Exporter | /metrics 를 노출하는 앱 또는 에이전트 |
Alertmanager | 경고 조건을 만족하면 Slack, Email 등으로 알림 |
Grafana | 수집된 데이터를 시각화하는 프론트엔드 도구 |
주요 특징
기능 | 설명 |
---|
📡 Pull 방식 | Prometheus가 직접 /metrics 에 주기적으로 요청함 |
📦 시계열 저장 | metric_name{label1="value", ...} 형식으로 저장 |
📈 쿼리 언어 | PromQL 이라는 쿼리 언어로 메트릭 필터링 가능 |
🛎️ Alerting | 특정 조건을 만족하면 알림 전송 가능 |
📦 독립 실행형 | DB 없이 동작 (로컬 디스크에 저장) |
예시 쿼리 (PromQL)
Prometheus의 활용 예
사용 예시 | 설명 |
---|
서버 자원 모니터링 | CPU, Memory, Disk 사용량 |
앱 상태 추적 | 요청 수, 응답 속도, 에러 비율 |
알람 시스템 | 5xx 에러 비율 > 10% 시 Slack 알림 |
장기 데이터 분석 | 한 달 동안의 평균 응답 시간 확인 |