1. Prometheus
- 시스템과 애플리케이션의 상태를 모니터링하기 위한 도구
- 주로 애플리케이션에서 발생하는 메트릭을 수집하고 저장한 후, 이를 조회/시각화/알림에 활용함
- 오픈소스 (CNCF 공식 프로젝트)
특징
| 기능 | 설명 | 예 / 특징 |
| 다차원 데이터 모델 |
시계열 데이터에 key-value 형식의 Label을 붙일 수 있음
|
같은 메트릭도 다양한 기준으로 구분할 수 있음
|
| 독립 실행 가능 |
별도 분산 스토리지 없이 단일 서버만으로 수집 및 동작 가능
|
쉽게 도입 가능
|
| Pull 기반 수집 (scrape) | Prometheus 서버가 직접 대상 서버의 HTTP endpoint에 접근하여 메트릭을 가져옴 |
중앙에서 수집 주기 관리 가능
|
| Push 일부 지원 |
짧게 실행되고 종료되는 작업일 경우 사용됨
|
Push Gateway 활용
|
기능
| 기능 | 설명 | 예 / 특징 |
| PromQL | 시계열 데이터 전용 쿼리 언어 제공 | 집계, 필터링, 계산에 특화됨 |
| 서비스 디스커버리 / 정적 설정 |
수집 대상을 정적으로 적어 찾거나 서비스 디스커버리를 통해 동적으로 찾을 수 있음
|
ex. Consul, Kubernetes
|
| 시각화 도구 연동 가능 | 저장된 메트릭을 다양한 대시보드 형태로 시각화 가능 | Grafana 등과 연동 |
2. Metrics
- 시스템 상태를 숫자로 나타낸 지표
- 숫자 데이터를 시간의 흐름에 따라 기록하여 상태 뿐만 아니라 변화 추이까지 볼 수 있게 해줌
- ex) 웹서버: 요청 수, 응답 시간 등
- ex) db: 연결 수, 쿼리 수 등
3. 아키텍처
| 구성 요소 | 역할 설명 | 특징 / 예 |
| Prometheus 서버 |
메트릭을 스크래핑(Pull)하여 시계열 데이터를 저장함
|
|
| 클라이언트 라이브러리 |
애플리케이션에 직접 코드로 메트릭 삽입
|
예: Counter, Gauge 등
|
| Exporter | 외부 시스템의 메트릭 수집기 | 예: HAProxy, Redis, Node 등 |
| Push Gateway |
짧게 실행되는 작업이 메트릭을 Prometheus에 푸시할 수 있도록 중간 수단 제공
|
|
| Alertmanager |
알림 규칙 기반으로 Alert를 생성
|
이메일, 슬랙 등으로 전송함
|
| 기타 도구들 |
다양한 지원 도구들 포함
|
예: 데이터 변환, 백업, 통합 등 |
출처
'DevOps' 카테고리의 다른 글
| [OpenTelemetry] 1. What is OpenTelemetry? (0) | 2025.09.19 |
|---|---|
| [Prometheus] 2. Concepts (0) | 2025.05.31 |