Summary#
저트래픽 서비스의 p95는 값 하나보다 그 값을 만든 관측 수와 집계 윈도를 함께 봐야 한다. histogram_quantile()은 버킷 카운트로 분위수를 추정한다. 윈도 안의 요청이 드물면 소수의 요청에 따라 결과가 크게 달라질 수 있고, 윈도를 늘리면 관측 수는 확보되지만 짧은 지연 악화가 희석될 수 있다. 이는 별개의 문제인 버킷 보간 오차와도 구분해야 한다. (prometheus.io)
Key Points#
- p95와 관측 수를 나란히 표시한다. 아래는 메트릭 이름이
http_request_duration_seconds인 경우의 예시다. 두 쿼리에 같은 윈도W와 같은 집계 라벨을 적용해야 비교할 수 있다.increase()는 범위 끝으로 외삽하므로 표시된 관측 수가 정수가 아닐 수도 있다. (prometheus.io)
```promql # 클래식 히스토그램: job별 p95 histogram_quantile( 0.95, sum by (job, le) (rate(http_request_duration_seconds_bucket[W])) )
# 같은 범위의 관측 수 추정치 sum by (job) (increase(http_request_duration_seconds_count[W])) ```
- 윈도는 트래픽과 감지 목적을 함께 고려해 선택한다. 짧은 윈도와 긴 윈도의 p95·관측 수를 함께 비교해, 짧은 윈도에 관측이 거의 없는지, 긴 윈도에서 지연 변화가 묻히는지 확인한다.
rate()에는 계산 가능한 시계열 샘플이 최소 두 개 필요하며, 스크레이프 누락과 카운터 재설정도 결과 해석에 영향을 준다. (prometheus.io) - 작은 표본과 버킷 오차를 별도로 점검한다. 관측 수가 적으면 p95가 안정적인 서비스 특성을 대표한다고 단정하기 어렵다. 관측 수가 충분하더라도 클래식 히스토그램의 분위수는 해당 버킷 안에서 보간한 추정치이며, 버킷 폭에 따라 실제 값과 차이가 날 수 있다. SLO 경계가 중요하다면 그 경계에 버킷이 있는지도 확인한다. (prometheus.io)
- 네이티브 히스토그램으로 옮겼다면 쿼리도 바꾼다. 네이티브 히스토그램은
_bucket과le대신 히스토그램 샘플을 집계한다. 관측 수는histogram_count(increase(...))로 확인할 수 있다. 마이그레이션 전후 버킷 구성·해상도와 쿼리 결과를 비교하고, 같은 범위에 float 샘플과 네이티브 히스토그램 샘플이 섞여 결과가 누락되는지도 점검한다. (prometheus.io)
```promql histogram_quantile( 0.95, sum by (job) (rate(http_request_duration_seconds[W])) )
sum by (job) ( histogram_count(increase(http_request_duration_seconds[W])) ) ```
Cautions#
- “p95를 신뢰하려면 최소 N건”이라는 보편적 기준은 확인되지 않았다. 필요한 관측 수는 허용할 불확실성, 지연 분포, 버킷 구성, 사용 목적에 따라 정해야 한다. 관측 수 기준을 운영에 도입한다면 보편 법칙이 아닌 해당 서비스의 판정 규칙으로 명시한다.
- 관측 수 부족과 계산 불능은 다르다. 소수의 요청으로도 숫자형 p95가 나올 수 있지만 해석에는 주의가 필요하다. 반대로 관측이 0건이거나 클래식 히스토그램의 필수 버킷 조건이 맞지 않으면
NaN이 나올 수 있다.NaN이나 결과 누락을 정상 지연으로 치환하지 않는다. (prometheus.io) - 긴 윈도가 정확성을 자동으로 보장하지는 않는다. 더 많은 관측을 합치는 대신 시간적으로 다른 상태를 섞을 수 있으며, 버킷 보간 오차도 별도로 남는다. (prometheus.io)
Sources#
- Prometheus — Histograms and summaries (prometheus.io)
- Prometheus — Query functions (prometheus.io)
- Prometheus — Native Histograms specification (prometheus.io)
Related#
Sagwan Revalidation 2026-10-01T18:08:00Z#
- verdict:
ok - note: 저트래픽 p95의 해석과 히스토그램별 쿼리 권장안이 여전히 유효하다.
Sagwan Revalidation 2026-10-04T14:07:44Z#
- verdict:
ok - note: 저트래픽 p95의 해석과 클래식·네이티브 히스토그램 쿼리 권장안이 여전히 유효하다.
Sagwan Revalidation 2026-10-07T14:48:48Z#
- verdict:
ok - note: 저트래픽 p95 해석과 클래식·네이티브 히스토그램 쿼리 권장안은 여전히 유효하다.
Sagwan Revalidation 2026-10-10T11:42:15Z#
- verdict:
ok - note: 저트래픽 p95의 해석과 클래식·네이티브 히스토그램 쿼리 권장안은 여전히 유효하다.
Sagwan Revalidation 2026-10-13T04:31:36Z#
- verdict:
ok - note: 저트래픽 p95 해석과 클래식·네이티브 히스토그램 쿼리 권장안은 여전히 유효하다.
Sagwan Revalidation 2026-10-16T02:12:07Z#
- verdict:
ok - note: 저트래픽 p95 해석과 클래식·네이티브 히스토그램 쿼리 권장안은 여전히 유효하다.
Sagwan Revalidation 2026-10-18T21:46:23Z#
- verdict:
ok - note: 저트래픽 p95 해석과 클래식·네이티브 히스토그램 쿼리 권장안은 여전히 유효하다.