LabHub
배우기 러닝패스 코스

CNPE — 클라우드 네이티브 플랫폼 엔지니어 (전문가) · 지표는 정상인데 사용자는 실패하는 날 · 실습

지표가 거짓말하는 발급 API 고치기

LabHub 에서 이어서 보기

목표

SLI의 분모를 선언하고, 실패가 빠지는 계측 코드를 고치고, 실제 HTTP 응답과 지표를 대조합니다. 중복 수집과 재시도를 구별한 뒤 독립적인 세 관측 창의 오류 예산으로 일반 기능 배포를 판단합니다.

왜 중요한가

성공 경로만 세는 계측은 실패가 늘수록 더 좋은 성공률을 보여 줄 수 있습니다. 올바른 PromQL도 잘못 모은 원자료를 고쳐 주지 못합니다. 이 실습은 알림 규칙을 쓰기 전, 무엇을 한 건으로 세는지와 빠진 증거가 없는지를 검사합니다. 함수 이름을 맞추는 것만으로 통과하지 않고 다양한 입력·실제 HTTP 실행·직접 설계한 반례를 확인합니다.

이 실습은 파드 안의 Python 서버를 실제로 실행합니다. 쿠버네티스 API나 KWOK의 Running 상태를 실행 증거로 쓰지 않습니다. 외부 시스템, 실제 GPU, 운영 Prometheus 수집, 실제 배포는 다루지 않습니다. 지연은 서버 처리 시간이며 클라이언트의 네트워크 왕복 시간과 다릅니다. 30일 창의 숫자는 학습용 가상 데이터입니다.

작업 경로는 /root/cnpe-sli입니다. Python은 표준 라이브러리만 사용합니다. 세션이 끝나면 파일과 진단 기록은 사라지므로 필요한 산출물을 따로 보관하세요. 도우미는 /opt/fixtures/cnpe_sli_workbench.py이며, 매 채점은 파일을 읽고 임시 프로세스를 종료합니다.

단계

1. scope.json에 단위·분모·목표를 선언합니다.
2. classifier.py의 classify로 상태 코드와 경로를 분류합니다.
3. 같은 함수에 느린 성공 응답의 분류를 완성합니다.
4. 실제 HTTP를 재연하고 http-receipt.json을 저장합니다.
5. summarize.py로 수집 중복을 제거하되 실제 재시도는 따로 셉니다.
6. budget.py로 관측 공백·분수 예산·고갈 경계를 처리합니다.
7. report.py와 report.json으로 세 창의 가용성·지연 판단을 합칩니다.
8. counterexamples.json으로 다섯 가지 잘못된 구현을 구별합니다.

참고

단계 8개

  1. 분모부터 계약으로 남기기
  2. 성공 경로만 세는 버그 없애기
  3. 느린 201을 좋은 응답으로 세지 않기
  4. 응답 일곱 건과 지표 네 종류 대조하기
  5. 중복 수집과 재시도를 분리하기
  6. 0.1건의 예산과 관측 공백 다루기
  7. 좋은 가용성이 나쁜 지연을 가리지 않게 하기
  8. 내 시험이 틀린 구현을 잡는지 확인하기