1. Data model
- Prometheus는 모든 데이터를 time series 형태로 저장함
- 메트릭 이름 + 라벨로 고유한 시계열 데이터를 만들어냄
항목 | 설명 | 예시 |
Metric Name | 측정 대상의 기능/특징을 설명하는 이름 |
http_requests_total (총 HTTP 요청 수)
|
Label | 같은 메트릭의 상태를 구분하기 위한 key-value |
method="POST", handler="/api/tracks"
|
Notation | 메트릭 이름과 라벨을 함께 사용하는 표기 형식 | http_requests_total{method="POST", handler="/api/tracks"} |
Sample | 하나의 값(value) + 시간(timestamp) |
0.56 at 2024-05-31T12:00:00Z
|
2. Metric Type
- Prometheus는 숫자형 메트릭을 4가지 타입으로 구분해서 수집함
- 클라이언트 라이브러리에서 구분, Prometheus 서버는 내부적으로 단일 시계열로 처리함
타입 | 특징 요약 | 값의 변화 방향 | 예시 |
Counter | 누적값 (감소 ❌) | 계속 증가 (또는 재시작 시 0) | 요청 수, 에러 수 |
Gauge | 현재 값 (오르내림 가능) | 증가/감소 모두 |
메모리 사용량, 온도, 동시 접속 수
|
Histogram | 버킷별 수치 + 합계 + 총 개수 | 누적된 버킷 값 |
요청 시간, 응답 크기
|
Summary | 실시간 백분위(quantile) 계산 + 합계 + 총 개수 | 슬라이딩 윈도우 기반 계산 | 요청 시간 |
3. Jobs and instances
용어 | 설명 |
Job |
동일한 목적을 가진 Instance들의 집합 (예: API 서버 여러 개)
|
Instance |
Prometheus가 메트릭을 수집(Scrape)할 수 있는 개별 엔드포인트 (보통 하나의 프로세스)
|
자동 라벨 생성
- Prometheus는 각 인스턴스를 스크랩할 때, 자동으로 다음 라벨을 붙임
- job: 해당 job 이름
- instance: <host>:<port>
자동 생성 시계열
메트릭 이름 | 설명 |
up{job=..., instance=...} |
인스턴스 상태: 1 = 정상, 0 = 실패
|
scrape_duration_seconds{...} |
스크랩에 걸린 시간 (초 단위)
|
scrape_samples_scraped{...} |
해당 타겟이 노출한 샘플 개수
|
scrape_samples_post_metric_relabeling{...} |
Relabeling 후 남은 샘플 개수
|
scrape_series_added{...} |
추가된 새 시계열 수 (v2.10 이상)
|
추가 메트릭
- extra-scrape-metrics 활성화 필수
메트릭 이름 | 설명 |
scrape_timeout_seconds{...} |
설정된 scrape timeout 시간
|
scrape_sample_limit{...} |
설정된 샘플 제한 수 (없으면 0)
|
scrape_body_size_bytes{...} |
스크랩 응답의 크기 (성공 시), 제한 초과 시 -1, 실패 시 0
|
출처
'DevOps' 카테고리의 다른 글
[Prometheus] 1. Introduction (0) | 2025.05.31 |
---|