DevOps

[Prometheus] 2. Concepts

noahkim_ 2025. 5. 31. 23:10

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