관측성 · 메트릭·로그·트레이스 · 실습
진짜 Prometheus 에 쿼리 던지기
목표
진짜 Prometheus 서버에 쿼리를 던지고 돌아온 숫자를 읽습니다. 이 실습이
끝나면 rate·비율·분위수·예측을 직접 쓰고, 틀렸을 때 왜 틀렸는지 알게 됩니다.
왜 중요한가
PromQL 문법은 하루면 외웁니다. 어려운 것은 **돌아온 숫자가 맞는지 판단하는
일**입니다. by (le) 를 빠뜨린 histogram_quantile 은 오류를 내지 않습니다 —
그냥 틀린 숫자를 줍니다. 그걸 대시보드에 걸어 두면 몇 달 동안 아무도 모릅니다.
그래서 이 환경에는 12시간치 시계열이 미리 들어 있습니다. 오류가 치솟는 구간이
두 번, p99 만 튀는 구간이 한 번, 단조 감소하는 디스크가 있습니다. 여러분이 쓴
쿼리가 그 사건들을 찾아내는지로 정답을 확인할 수 있습니다.
환경
promq "<PromQL>" 쿼리를 던진다. promq -r 로 원본 JSONlab-status 무엇이 떠 있는지, 대상이 몇 개인지tail -40 /var/log/lab-init.log 준비 과정 로그Prometheus 는 127.0.0.1:9090, 샘플 서비스 exporter 는 9101,
node_exporter 는 9100 입니다. Grafana 는 lab-start-grafana 로 켜고
웹 미리보기 3000번 포트로 봅니다.
단계
1. http_requests_total 에 어떤 라벨이 있는지 찾아 /root/obs/01-labels.txt
2. 초당 요청률 쿼리를 /root/obs/02-rate.promql
3. 5xx 비율 쿼리를 /root/obs/03-errrate.promql
4. p95 지연 쿼리를 /root/obs/04-p95.promql
5. 시계열이 가장 많은 메트릭 이름을 /root/obs/05-top.txt
6. 레코딩 규칙을 /etc/prometheus/rules/labhub.yml
7. 설정을 반영하고 새 시계열이 나오는지 확인
8. 디스크 소진 예측 쿼리를 /root/obs/08-predict.promql
참고
- 쿼리를 파일에 쓰기 전에
promq로 먼저 던져 보세요. 결과가 비어 있으면 promq 'up'이 3을 주면 스크레이프가 정상입니다.- 결과가
NaN이면 분모가 0 인 구간을 보고 있는 것입니다.
라벨 이름이 틀린 것입니다.
단계 8개
- 무슨 시계열이 있는지 먼저 본다
- 초당 요청률
- 5xx 비율
- p95 지연
- 시계열이 가장 많은 메트릭 찾기
- 레코딩 규칙 파일 작성
- 규칙을 반영하고 새 시계열 확인
- 디스크가 언제 찰지 계산