GH GambleHub

SLO/SLA 및 메트릭

SLO/SLA 및 메트릭

1) 이용 약관

SLI (Service Level Indicator) - "사용자가 볼 때" 측정 가능한 지표: 성공적인 요청 공유, p95 대기 시간, 데이터 신선도, 성공적으로 처리 된 배치 공유 등

SLO (서비스 수준 목표) - 관찰 간격 (28/30/90 일) 에서 SLI 값을 목표로합니다. 예: "99. 요청/지불 종료의 9%

오류 예산 - 1-SLO. SLO 99에서. 9% 오류 예산 = 0. 시간/요청의 1%.
SLA (계약) - 법적으로 중요한 서비스 수준: SLO, 측정, 예외, 보상/벌금 포함.

2) 디자인 원칙

증상> 내부 지표. SLI는 실제 사용자 경험을 반영해야합니다.
소수의 주요 SLI. 서비스-2-5 메인: 성공, 대기 시간, 처리량/신선도, 정확성.
중요한 경로의 적용 범위. 각 비즈니스 시나리오 (체크 아웃, 로그인, 웹 후크, ETL 다운로드) 에는 자체 SLI/SLO 세트가 있습니다.
엄격한 "성공" 의미론. "코드 200" 이 아니라 "사용자가 정시에 응답을 받았으며 결과가 유효합니다".
외부 및 내부 SLO 분리. 내부-더 엄격한; 외부 SLA 소 1-2 9 더 낮습니다.

3) SLI 카탈로그 (참조)

3. 1 API/온라인 서비스

성공: 'SLI _ success = 1- (5xx + 타임 아웃 + 비즈니스 _ 오류 )/모든 요청'

대기 시간: 경로/방법/테넌트에 의하여 p95/p99 'http _ server _ guidence _ seconds'

대역폭: 'RPS '/한계/할당량

정확성: 유효한 응답의 비율 (서명, 스키마, 불변)

3. 웹 후크 2 개/비동기 배송

배송: T 초 단위로 확인 된 이벤트 비율 및

고객: 지연이없는 가입자 비율 (임차인 당)

3. 3 데이터/ETL/DWH

신선도: '이제 마지막 _ 성공 _ ingest _ ts'

완전성: 'inested _ rows/respended _ row'

정확성: 품질 점검을 통과 한 기록의 비율

파이프 라인: 마감일 전에 완료된 작업의 비율

3. 4 모바일/클라이언트 SDK

클라이언트 성공: 치명적인 오류가없는 세션의

왕복 대기 시간: 요청에서 렌더링까지 p95

캐시 적중: 캐시에서 제공되는 비율 (성능 증상)

4) 공식과 목표의 예

가용성 (요청시):
  • 'SLI _ req _ aide = 1- (실패 _ 요청/총 _ 요청)'
  • 'SLO _ req _ aide = 99. 30 일 동안 95% '→ 오류 예산 = 0. 요청의 05%.
가용성 (시간별):
  • 'uptime = (obs _ 창-다운 타임 )/obs _ window'
대기 시간:
  • 캐시 워밍업 (1%) 을 제외하고 7 일 슬라이스에서 'SLO _ latency = p95 (경로 = "/지불 ")
데이터 신선도:
  • 'SLO _ freshness (dataset = "order") 24 시간 내에 10 분' p99.

5) 예산 및 변경 관리 오류

예산 (B): 'B = 1-SLO'.
화상-허용 가능한 오류에 대한 실제 오류의 비율.

정치인:
  • 초과 지출 (연소> 1) → 동결 기능, 신뢰성에 중점을 둡니다.
  • 짧은 창에서 연소율> X에서-사고 및 캡. 측정.
  • 계획: 스프린트의 신뢰성 점유율은 과거 기간 동안의 화상과 관련이 있습니다.

6) 경고: 연소율 및 다중 창 규칙

아이디어: 우리는 빠른 누출과 느린 드리프트를 잡습니다

예 (SLO 99. 9%, 예산 0. 1%):
  • 중요: "1 시간 안에 2% 예산" (빠른 화재).
  • 경고: "6 시간 동안 예산의 5%" (크리핑 열화).
규칙:
  • 빠른 사고에 대한 짧은 창 (분 시간).
  • 트렌드에 대한 긴 창 (6-24 시간).
  • 대기 시간: 미량 인스턴스와의 플랩 및 통신 억제와 함께 p99> 임계 값 이상 5 분 경고.
표현식 (논리) 예:

error_ratio_5m = errors[5m] / requests[5m]
error_ratio_1h = errors[1h] / requests[1h]
burn_5m     = error_ratio_5m / error_budget_fraction burn_1h     = error_ratio_1h / error_budget_fraction alert_critical if burn_1h > 14 and burn_5m > 14 alert_warning  if burn_6h > 6 and burn_30m > 6

7) 다중 세입자 및 세분화

SLI/SLO는 세입자/계획/지역에 따라 계산되며, 그렇지 않으면 중앙값이 고장을 "덮습니다".
통계적 유의성을위한 최소 이벤트 수 (가드 레일).
SLA는 관세가 다를 수 있습니다 (예: "Pro 99. 9%, 무료 99. 5%»).

8) 관찰 가능성 및 흔적과의 연관

SLI 지표-예를 들어 히스토그램/카운터에서 "나쁜" 트레일로 전환합니다.
로그는 타임 아웃, 비즈니스 오류 코드, 제한 사항의 원천입니다.
데이터의 경우-계보와의 링크: "신선도 측정을 지연시키는 작업".

9) 계약 및 SLA

SLA 컨텐츠:
  • SLI/측정 방법/창 정의.
  • 예외 (계획된 작업, 강제 전공).
  • 사건 및 통신 절차 (상태 페이지, RFO/RCA).
  • 서비스 크레딧 및 요청 순서.
  • 관할권, 유효 기간, 개정 조건.
권장 사항:
  • 아키텍처 및 운영 관행이 허용하는 것보다 SLO를 더 엄격하게 공개적으로 약속하지
  • 별도의 내부 SLO 및 외부 SLA.

10) 비용과 우선 순위

9의 가격은 선형으로 증가하지 않습니다. «99. 9% → 99. 99% "= 다른 아키텍처 클래스 (N + 1, 다중 영역, 자산 간).
SLO를 가장 귀중한 사용자 작업에 배치하십시오.
원격 측정 비용 (다운 샘플링, 할당량, 복제 및 저장) 을 클래스별로 제어하십시오.

11) 절차 및보고

주간 보고서: 서비스/테넌트 별 SLO 실행, 예산 지출, 주요 이유, 개선 계획.
사건 후 RCA: 우리는 예산의 일부와 관련이 있습니다. 근본 원인을 제거하는 작업을 설정했습니다.
Fichfriz: 포함/철회 기준.

12) 템플릿 (빠른 시작을 위해)

12. SLO 카드 1 개 (예)


Service: Checkout API
SLI:
success: 1 - (5xx+timeouts+biz_failures)/all latency_p95: p95(http_server_duration_seconds{route="/pay"})
SLO:
success: 99. 95% / 30d latency_p95: ≤ 400ms / 7d
Windows:
primary: 30d rolling secondary: 7d rolling
Burn Alerts:
critical: use 1h/5m > 14 warning: use 6h/30m > 6
Owner: Team Checkout
Tenancy: per-tenant (≥ 1k req/day threshold)
Dashboards: RED + trace exemplars

12. SLO 성숙도 표 2 개

레벨특성
0SLI 없음, CPU/메모리 알림
1SLI, 간단한 임계 값이 있습니다
2화상 경보가있는 SLO, 보고
3계획에 따른 다중 임대 SLO, 공정, 자본 투자
4엔드 투 엔드 SLO (kliyent → bekend → dannyye), 자동 치료, 카나리아 SLO

13) 규칙의 예 (조각)

PromQL-성공/오류/대기 시간:
promql
Error rate (5xx + timeout) for the sum (rate (http_requests_total{route="/pay",code=~"5. route.    599"}[5m]))
/ sum(rate(http_requests_total{route="/pay"}[5m]))

p99 histogram_quantile latency (0. 99, sum(rate(http_server_duration_seconds_bucket{route="/pay"}[5m])) by (le))
연소율 경고 (규칙 아이디어):
promql error_budget_fraction = 0. 001 for 99. 9%
(err_rate_5m / 0. 001 > 14) and (err_rate_1h / 0. 001 > 14) # critical
(err_rate_30m / 0. 001 > 6) and (err_rate_6h / 0. 001 > 6)  # warning
데이터 신선도:
promql
Data order lag (minutes)
(max(time()) - max(last_ingest_ts_seconds{dataset="orders"})) / 60

14) 데이터 및 ML 용 SLO (기능)

엔드 투 엔드 데이터 SLO: p99 신선도, p99 완전성, 충돌 후 "재 처리" 시간.
데이터 계약: 예상 체계, 볼륨, 마감일; 데이터 위반 → 사건.
ML: 추론 대기 시간을위한 SLO, 피처 가용성을위한 SLA, 드리프트 모니터링 (모델 품질은 SLA 외부의 별도 주제 임).

15) 보안 및 개인 정보 보호와의 통합

PII/비밀없이 SLI 로그; 토큰 화/마스킹.
감사는 SLO/SLA로 변경되고 불변의 로그에 출판물을보고합니다.
규제 경로 (지불/PII) 의 경우-별도의 더 엄격한 SLO.

16) 점검표

서비스/기능을 시작하기 전에

  • 성공/대기 시간/처리량/신선도 SLI가 정의되었습니다.
  • SLO 및 정의 된 창; 오류 예산이 계산됩니다.
  • 연소율 경고를 설정하십시오 (짧은 + 긴).
  • 대시 보드 RED + 예제 → 경로; 사건 룬 문서.
  • 다중 임대 섹션 및 중요도 임계 값.
  • 피치 프리즈 및보고 절차.

작동

  • SLO/burn 주간 보고서, 계획 강화.
  • 아키텍처/로드가 변경 될 때 SLO를 재평가하십시오.
  • 정기적 인 "드릴 사건" 및 룬북 업데이트.
  • 원격 측정 비용 및 SLI 수를 모니터링하십시오.

17) 런북

런북: 빠른 성장 p99/지불

1. 경고 p99> 임계 값 → 대시 보드를 엽니 다 → 모범을 통해 추적하십시오.
2. 좁은 CLIENT/SERVER 스팬을 찾고 지역/버전을 비교하십시오.

3. 열화 (캐시/제한/대체) 사용, 종속성 명령 알림

4. 안정화 후-RCA, 최적화 작업, SLO 측정 업데이트.

런북: 주당 예산 지출> 50%

1. 기능을 동결하고 신뢰성 우선 순위를 높입니

2. 오류 클러스터링: 경로/테넌트/종속성.
3. 롤아웃 수정 → 추세 복구를 확인합니다.
4. 회고 및 경고/임계 값 조정.

18) FAQ

Q: 몇 개의 SLO가 필요합니까?
A: 중요한 사용자 시나리오의 최소: 성공 + 대기 시간. 다른 모든 것은 필요하지 않습니다.

Q: 시간별 또는 요청에 따른 가용성은 무엇입니까?
A: 주문형-더 많은 사용자 지표. 네트워크 구성 요소/인프라에 시간이 편리합니다.

Q: 왜 평균이 아닌 p95?
A: 가운데는 꼬리를 숨 깁니다. 사용자는 p95/p99를 느낍니다.

Q: "나사를 너무 많이 조이지" 않는 방법은 무엇입니까?
A: 현실적인 목표 (과거 데이터) 로 시작한 다음 성숙함에 따라 강화하십시오.

관련 자료:
  • "관찰 가능성: 로그, 메트릭, 추적"
  • "분산 추적"
  • "감사 및 불변의 통나무"
  • "웹훅 배송 보증"
  • "대중 교통/휴식 시간에 암호화"
  • "데이터 원점 (리니지)"
Contact

문의하기

질문이나 지원이 필요하시면 언제든지 연락하십시오.우리는 항상 도울 준비가 되어 있습니다!

Telegram
@Gamble_GC
통합 시작

Email — 필수. Telegram 또는 WhatsApp — 선택 사항.

이름 선택 사항
Email 선택 사항
제목 선택 사항
메시지 선택 사항
Telegram 선택 사항
@
Telegram을 입력하시면 Email과 함께 Telegram에서도 답변드립니다.
WhatsApp 선택 사항
형식: +국가 코드 + 번호 (예: +82XXXXXXXXX).

버튼을 클릭하면 데이터 처리에 동의하는 것으로 간주됩니다.