클라우드 및 인프라
Prometheus(프로메테우스)
작은소행성☄️
2025. 2. 8. 14:52
728x90
모니터링의 필요성
현대의 소프트웨어 시스템은 복잡한 분산 아키텍처를 기반으로 운영이 되는데
대규모 서비스의 경우, 애플리케이션 성능, 장애 감지, 리소스 사용량 최적화가 필수적이다.
모니터링이 없으면 장애 발생 시 문제의 원인을 찾기 어려우며, 성능 저하를 미리 감지하지 못할 수 있기 때문이다.
이러한 문제를 사전에 감지하고 대응하기 위해 모니터링 시스템이 도입 되어야 한다.
Prometheus
Prometheus(프로메테우스)는 시스템으로부터 각종 모니터링 지표(metrics)를 수집하여 저장하고 검색할 수 있는
오픈소스 모니터링 및 알림 시스템이다.

특징
- 시계열 데이터(Time-Series Data) 기반의 모니터링 시스템
- PromQL(Prometheus Query Language) 를 활용한 강력한 데이터 분석 기능
- Pull 방식의 메트릭 수집
- Alertmanagner를 이용한 알림 시스템 연계
- Grafana 연동을 통한 시각화 지원
주요 컴포넌트
Prometheus Server
- 모니터링 대상(target) 에서 메트릭으르 수집해 저장한다.
- PromQL을 이용해 데이터 분석 및 질의를 수행한다.
Exporter
- 시스템의 메트릭을 노출하는 모듈이다.
Pushgateway
- Metrics 수집을 위한 push 기반 컴포넌트이다.
AlertManager
- 특정 조건에 따라 알림을 트리거해 Slack, Email 로 알림을 전송한다.
Grafana
- Prometheus 데이터를 시각화 하는 대시보드 도구이다.
Prometheus 데이터 수집 방식
prometheus 는 기본적으로 pull 방식을 사용해 데이터를 수집한다.
- pull 방식
- prometheus 서버가 설정된 타겟에 접근해 메트릭을 가져옴
- 메트릭 엔드포인트 (/metrics) 을 통해 데이터 제공
- push 방식 (Pushgateway 필요)
- Pushgateway 애플리케이션을 사용해 메트릭 전송
- 배치잡(Batch Jobs) 같은 단기 실행 작업 모니터링에 활용
주요 개념 및 용어
Metric (메트릭)
시스템 상태를 나타내는 측정값으로 프로메테우스의 수집 기본 단위로 서버의 상태를 측정한 항목이나 지표이다.
메트릭에서 제공하는 정보로는 CPU, 사용량, 메모리 사용량, HTTP 요청 수 등이 있다.
메트릭을 수집하는데에는 4가지 유형으로 구분된다.
- Counter (카운터) : 증가하는 값 (HTTP 요청 수, 에러 발생 수)
- Guage (게이지) : 증가 및 감소할 수 있는 값 (메모리 사용량, CPU 사용량)
- Histogram (히스토그램) : 분포를 측정하는 값 (요청 처리 시간)
- Summary (서머리) : 히스토그램과 유사하지만 백분위 수를 제공하는 값
PromQL
Prometheus Query Language 로 수집된 데이터를 조회하고 분석할 수 있다.
PromQL 을 활용하면 특정 시점의 데이터 조회, 시간별 변화율 계산, 백분위수 분성 등이 가능하다.
쿼리를 활용해 프로메테우스엥서 수집한 데이터를 보다 효과적으로 분석이 가능하고 실제 운영 환경에서 장애를 미리 감지할 수 있다.
예제
- 전체 HTTP 요청 수 조회
http_requests_total
- 응답 시간이 1초 이상인 요청 수
histogram_quantile(0.99, rate(http_request_duration_seconds_bucket[5m]))
- 특정 서비스(API)의 트래픽이 급증한 경우 탐지 (최근 5분 동안 HTTP 요청 수가 1000개 이상 증가한 경우)
increase(http_requests_total[5m]) > 1000
728x90
반응형