본문 바로가기
DevOps

[Prometheus] Metric

by BenKangKang 2023. 5. 4.

Metric?

수집하는 시계열 데이터를 일컫는 말

Prometheus 는 근본적으로 모든 데이터를 시계열로 저장하며, 모든 데이터는 고유한 메트릭명과 key-value 쌍의 라벨로 구분됨 (메트릭명{라벨명=값, 라벨명=값} 샘플링 데이터)

타입

4가지 타입으로 메트릭을 정의하여 저장한다.

1. Counter

  • 값 증가, 리셋만 가능한 누적 메트릭 (감소할 수 있는 값은 gauge 를 사용해야함.)
  • 용도
    • 카운터에 누적된 값으로 구간별로 변화율을 파악해 해당 값이 어느 정도 추세로 증가하는지 알 수 있음
    • 이벤트나 오류 등이 급증하는 구간을 파악하는 데 적합
  • 예시
    • 요청 수
# TYPE go_gc_heap_allocs_objects_total counter
go_gc_heap_allocs_objects_total 6.05804324e+08

2. Gauge

  • 증, 감소가 모두 가능한 메트릭
  • 용도
    • 특정 시점의 값을 표현하는 데 사용하는 메트릭 타입
  • 예시
    • 대기열 수
    • 클러스터 파드 수
    • CPU 온도
    • 버전
# TYPE go_info gauge
go_info{version=“go1.17.6”} 1

3. Histogram

  • 사전에 미리 정의한 구간(Bucket) 안에 있는 메트릭 값의 빈도를 측정
    • 요청에 걸린 대기 시간
# TYPE go_gc_pauses_seconds_total histogram
go_gc_pauses_seconds_total_bucket{le=“-5e-324"} 0
go_gc_pauses_seconds_total_bucket{le=“9.999999999999999e-10”} 0
go_gc_pauses_seconds_total_bucket{le=“9.999999999999999e-09"} 0
go_gc_pauses_seconds_total_bucket{le=“1.2799999999999998e-07”} 0
go_gc_pauses_seconds_total_bucket{le=“1.2799999999999998e-06"} 6
go_gc_pauses_seconds_total_bucket{le=“1.6383999999999998e-05”} 3931
go_gc_pauses_seconds_total_bucket{le=“0.00016383999999999998"} 10349
go_gc_pauses_seconds_total_bucket{le=“0.0020971519999999997”} 10442
go_gc_pauses_seconds_total_bucket{le=“0.020971519999999997"} 10466
go_gc_pauses_seconds_total_bucket{le=“0.26843545599999996”} 10466
go_gc_pauses_seconds_total_bucket{le=“+Inf”} 10466
go_gc_pauses_seconds_total_sum NaN
go_gc_pauses_seconds_total_count 10466

4. Summary

  • Histogram 과 유사하지만 사분위수를 나타내는 메트릭, 버킷을 미리 알 수 없을 때 사용함.
    • 프로메테우스 자체적으로 0~1 사이로 구간을 미리 정해 놓음
    • 가능하면 요약보다 히스토그램을 사용하는 것이 좋음.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile=“0”} 2.955e-05
go_gc_duration_seconds{quantile=“0.25"} 4.385e-05
go_gc_duration_seconds{quantile=“0.5”} 4.8801e-05
go_gc_duration_seconds{quantile=“0.75"} 7.0271e-05
go_gc_duration_seconds{quantile=“1”} 0.004812141
go_gc_duration_seconds_sum 0.439441807
go_gc_duration_seconds_count 5233

References

https://prometheus.io/docs/concepts/metric_types/

https://prometheus.io/docs/tutorials/understanding_metric_types/

댓글