퀴즈: 그래프 읽기
스크레이프 간격이 15초인 지표에 rate(x[15s]) 를 쓰면 무슨 일이 벌어지나?
- 창 안에 표본이 하나뿐이라 변화율을 낼 수 없고 빈 결과가 돌아온다
- 창이 짧을수록 정확해지므로 가장 정밀한 변화율이 나온다
- Prometheus 가 문법 오류로 거절하고 422 를 돌려준다
- 직전 값을 그대로 복제해 계단 모양의 선을 그린다
20분 동안 5xx 비율이 28% 였던 사고를 rate 창 1시간으로 그리면 그래프가 어떻게 달라지나?
- 봉우리 높이와 폭이 모두 그대로이고 선만 부드러워진다
- 봉우리가 사라지고 아래 면적도 3분의 1로 줄어든다
- 봉우리 높이가 대략 3분의 1로 눌리고 대신 폭이 몇 배로 넓어진다
- 창이 길수록 최댓값이 커지므로 봉우리가 더 높게 솟는다
Grafana 의 $__rate_interval 은 무엇으로 계산되나?
- 패널에 설정한 Min step 값을 그대로 쓴다
- 대시보드 시간 범위를 데이터소스의 보존 기간으로 나눈 값이다
- 직전 쿼리의 응답 시간에 맞춰 Grafana 가 자동으로 조정한다
max($__interval + 스크레이프간격, 4 * 스크레이프간격)이다
12시간 전체의 5xx 비율을 알고 싶을 때 옳은 방법은?
- 1분 간격 비율을
avg_over_time으로 평균한다 - 12시간 동안의 5xx 증가량 합을 전체 증가량 합으로 나눈다
- 1분 간격 비율의 중앙값을 구한다
- 각 핸들러의 비율을 구해
avg로 합친다
히스토그램에서 p99 를 구할 때 옳은 순서는?
- 핸들러별로
histogram_quantile을 구한 뒤avg로 합친다 sum으로 전체 요청 수를 구한 뒤 99% 지점의 버킷을 고른다- 버킷의 rate 를
sum by (le)로 먼저 합친 뒤histogram_quantile을 부른다 http_request_duration_seconds_sum을_count로 나눈 뒤 0.99 를 곱한다
'지난 12시간 5xx 건수' 패널이 20316.33 을 보여 준다. 소수점이 붙은 이유는?
- Prometheus 가 카운터를 부동소수점으로 저장해 반올림 오차가 쌓였다
increase()가 창의 양 끝에서 외삽하기 때문에 추정값이 나온다- 여러 인스턴스의 값을 평균하면서 나눗셈이 들어갔다
- 히스토그램 버킷의 선형 보간이 카운터에도 적용되기 때문이다