반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- codebuild
- JavaScript
- IntelliJ
- kubeflow
- codepipeline
- redis
- bootstrap
- 도커
- codedeploy
- Spring Error
- Airflow
- Jenkins
- AWS CI/CD 구축하기
- node
- chart.js
- PostgreSQL
- Spring
- aws cicd
- Python
- Flux
- VPN
- COALESCE
- chartjs
- SQL
- or some instances in your deployment group are experiencing problems.
- Kafka
- aws
- codedeploy error
- java bigdecimal
- docker
Archives
- Today
- Total
Small Asteroid Blog
Prometheus(프로메테우스) 본문
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
반응형