콘텐츠로 이동

Alert Tuning Runbook

false 긍정, false 부정, 중복 인시던트 또는 오래된 라우팅으로 경보의 유용성이 떨어질 때 이 런북을 사용합니다. FDAI가 관찰하고 기록하지만 조치하지 않는 관찰 모드에서 동결된 기준선과 하나의 변경 제안을 비교해 튜닝을 측정 가능하게 유지합니다.

환경별 detector 이름, 대시보드 조회, 알림 대상, 승격 명령은 다운스트림 포크에 보관하세요. 이 업스트림 템플릿에 customer 값을 넣지 않습니다.

다음 신호 중 하나 이상이 정상 관측 구간보다 오래 지속되면 이 런북을 시작합니다.

  • false 긍정: 경보가 발생하지만 labeled 근거에는 조치 가능한 상태가 없습니다.
  • false 부정: 확인된 인시던트에 일치하는 detector 또는 경로 이벤트가 없습니다.
  • 중복: 하나의 상태가 여러 인시던트 또는 반복 알림을 만듭니다.
  • Late 전달: Detector는 제때 발생하지만 상관관계 또는 라우팅이 기한을 놓칩니다.
  • Stale 라우팅: 전달 대상, 소유권 또는 에스컬레이션 정책이 서비스와 더 이상 일치하지 않습니다.

현재 활성 인시던트를 숨기기 위한 튜닝에는 사용하지 않습니다. 먼저 인시던트 분류를 완료한 다음 labeled 사례를 가지고 돌아옵니다.

항목필요한 입력
Owner검토 대상 detector 또는 경로를 책임지는 사람
검토자승격 또는 롤백을 승인하는 소유자 이외의 사람
시나리오 집합동결된 긍정, 부정, 중복, delivery-failure 사례
기준선Detector, 상관관계, 라우팅, 카탈로그, 구성 버전
가드 메트릭Missed 인시던트, 알림 지연 시간, 중복 ratio, 정책 escape
관측 구간기준선과 처리에 사용하는 고정된 기간 또는 이벤트 수

Owner는 비교를 준비하고 실행할 수 있습니다. 경보 양을 최적화하는 사람이 약해진 안전성 신호를 혼자 승인하지 않도록 승격에는 독립적인 검토가 필요합니다.

구성을 변경하기 전에 다음 단계를 완료합니다.

  1. 시나리오 라벨에 근거 출처와 검토 date가 있는지 확인합니다.
  2. 현재 detector, 상관관계, 라우팅, 카탈로그 버전을 기록합니다.
  3. 기준선과 처리 실행이 동일한 시나리오와 관측 구간을 사용하는지 확인합니다.
  4. 관찰 모드 결과가 인시던트를 생성, 종료 또는 변경하지 않고 감사 기록을 쓰는지 검증합니다.
  5. 현재 구성을 롤백 참조로 저장합니다.
  6. 활성 인시던트가 변경 대상 detector에 의존하면 튜닝을 일시 중지합니다.

변경을 선택하기 전에 관찰된 defect를 분류합니다. 하나의 defect에 여러 symptom이 있을 수 있지만, 각 처리 실행에서는 축 하나만 변경합니다.

Symptom먼저 검사할 항목일반적인 처리 축
모든 시간대에 일정한 noise기준선과 임계값기준선 구간 또는 임계값
예측 가능한 시간대의 noiseSeasonality 모델Seasonal 구간 또는 예약
하나의 상태에 반복되는 경보Deduplication과 debounce상관관계 키 또는 debounce 간격
관련 신호가 여러 인시던트로 분리됨상관관계 근거상관관계 룰 또는 시간 구간
확인된 인시던트에 경보가 없음커버리지와 missing-data 처리Detector 조건 또는 data-quality 경로
올바른 경보가 잘못된 응답자에게 전달됨소유권과 채널 정책경로 대응 또는 에스컬레이션 정책
올바른 경로가 늦거나 실패함전달 결과와 재시도 감사전달 재시도 또는 대체 경로 경로
  1. 기준선을 측정합니다. 동결된 시나리오 집합을 실행하고 fire 비율, 정밀도, 재현율, 중복 ratio, cold-start 보류, 전달 지연 시간, 최종 전달 결과를 수집합니다.
  2. 하나의 처리를 선택합니다. Defect 분류, 변경할 하나의 구성 축, 예상되는 메트릭 변화를 명시합니다.
  3. 관찰 모드에서 실행합니다. 처리를 관찰 모드 평가기에만 적용하고 동일한 관측 구간에서 같은 시나리오 집합을 다시 실행합니다.
  4. 결과를 비교합니다. 모든 기본 및 가드 메트릭의 기준선과 처리 값을 계산합니다. 누락된 샘플을 0으로 처리하지 말고 이유를 설명합니다.
  5. 실패를 검토합니다. 승격을 고려하기 전에 새로 누락된 인시던트, 정책 escape, 상관관계되지 않은 중복, 실패한 전달을 모두 검사합니다.
  6. 결정합니다. 대상 메트릭이 개선되고 가드 메트릭이 선언된 범위를 유지하며 독립 검토자가 근거를 수락할 때만 promote합니다.
  7. 롤아웃을 관찰합니다. 이전 구성을 사용할 수 있게 유지하고 선언된 관측 구간 동안 promoted 버전을 모니터링합니다.
결과조치
대상 메트릭이 개선되고 모든 가드 메트릭이 통과함설정된 승격 경로를 승인합니다.
대상 메트릭은 개선되지만 가드 메트릭이 회귀함처리를 거부하고 기준선을 복원합니다.
결과를 판단할 수 없음시나리오 집합을 확장하거나 라벨을 수정한 후 기준선부터 다시 시작합니다.
Policy-violation escape가 나타남승격을 차단하고 안전성 검토로 라우팅합니다.
실제 운영 관측이 관찰 모드와 크게 다름Rollback하고 두 결과 집합을 검토용으로 보존합니다.

다음 조건이 발생하면 실행을 중지합니다.

  • 신뢰할 수 없는 라벨: 근거가 없거나 오래됐거나 합의되지 않았습니다.
  • 유효하지 않은 비교: 기준선과 처리가 다른 시나리오 또는 구간을 사용합니다.
  • 안전성 회귀: Missed 인시던트 또는 policy-violation escape가 증가합니다.
  • 숨겨진 범위 변경: 둘 이상의 구성 축이 변경됐습니다.
  • 활성 의존성: 진행 중인 인시던트가 현재 형태의 detector를 필요로 합니다.

양을 줄이기 위해서만 경보를 억제하지 않습니다. Detection 또는 전달 품질이 저하되면 낮은 경보 개수는 개선이 아닙니다.

승격 가드 메트릭이 실패하거나 실제 운영 관측이 관찰 모드와 다르면 기록된 기준선 버전을 복원합니다. Rollback 후 작은 canary subset을 다시 실행하고 detector, 상관관계, 전달 결과가 이전 기준선과 일치하는지 확인합니다. 실패한 처리를 근거로 유지하고 롤백 실행으로 덮어쓰지 않습니다.

다음 기록을 튜닝 결정에 첨부합니다.

  • 신원: Owner, 검토자, detector 또는 경로 ID, 변경 참조입니다.
  • 버전: Detector, 상관관계, 라우팅, 카탈로그, 기준선, 처리 버전입니다.
  • 데이터셋: Scenario-set 해시, 라벨 출처 이력, 관측 구간입니다.
  • 측정: 모든 기본 및 가드 메트릭의 기준선과 처리 값입니다.
  • Exception: Missed 사례, 중복, 실패한 전달, 정책 escape입니다.
  • 결정: Approving principal과 함께 promote, 거부, extend, 롤백 중 하나를 기록합니다.
  • 결과: 롤아웃 구간, 롤백 참조, 최종 구성 버전입니다.

결정이 감사되고 활성 구성 버전을 알 수 있으며 promoted 처리 또는 복원된 기준선이 관측 구간을 통과한 뒤에만 튜닝 작업을 종료합니다. 새로 발견한 응답 공백은 이 변경을 확장하지 말고 사후 분석 작업 흐름로 보냅니다.

다음 작업문서
활성 인시던트의 범위와 심각도 분류인시던트 분류
Service-level 목표 burn 검증SLO burn 대응
응답 공백을 소유자가 있는 후속 조치로 전환사후 분석 작업 흐름