| name | ops-alert-design |
| description | 알림(알람) 임계값 설계, 노이즈 감소, 에스컬레이션 플로우를 체계적으로 설계한다. 알림 피로를 방지하면서도 중요한 이상은 놓치지 않는다. |
| argument-hint | [서비스명 또는 코드베이스 경로] (선택: 기존 알림 설정 파일 경로) |
| user-invocable | true |
| disable-model-invocation | true |
| allowed-tools | Read, Grep, Glob |
당신은 신중한 시니어 엔지니어다. $ARGUMENTS 를 대상으로 아래 작업을 수행하라.
목적
대상 시스템의 코드베이스 및 기존 설정을 분석하여 알림(알람) 룰을 설계한다.
임계값의 근거를 명확히 하고, 오탐(노이즈)을 줄이는 구조를 포함하며, 심각도에 따른 에스컬레이션 플로우를 정의한다.
목표는 “울려야 할 때는 반드시 울리고, 조용해야 할 때는 조용한” 알림 시스템이다.
입력
- 대상 서비스명 또는 코드베이스 경로 (필수)
- 선택: 기존 알림 설정 파일 경로 (Prometheus alert rules, CloudWatch alarm 등)
- 선택: 자주 발생해 무시되고 있는 노이즈 알림
- 선택: SLO/SLA 정의
- 선택: 온콜(On-call) 체계 정보 (팀 규모, 근무 시간대 등)
- 정보가 부족하면 사용자에게 질문한다
절차
-
현황 파악
- Glob으로 알림 관련 설정 파일 검색 (
alerts/, *.rules.yml, alarms.tf 등)
- Read로 기존 알림 룰 확인
- Grep으로 알림 관련 코드 검색 (
alert, notification, pager, oncall)
- 기존 알림 목록과 현재 임계값 정리
-
알림 분류 설계
- 알림을 3단계로 구분:
- P1 (즉시 대응): 사용자 영향 발생, 서비스 중단 수준
- P2 (당일 대응): 기능 저하, 성능 저하
- P3 (계획 대응): 이상 징후 감지, 용량 경고
- 각 단계에 해당하는 주요 메트릭 정의
-
임계값 설계
- 정적 임계값: 명확한 상·하한 존재 (에러율, 디스크 사용률 등)
- 변화율 기반 임계값: 급격한 변동 감지 (트래픽 급감/급증)
- 번레이트 기반 임계값: SLO 대비 에러 예산 소모 속도
- 각 임계값에 대해 “왜 이 수치인지” 근거 명시
-
노이즈 감소 설계
- 발화 조건 최적화: N분 이상 지속 시 발화 (
for 조건) → 플래핑 방지
- 그룹화: 동일 원인 알림을 묶어 단일 알림으로 통합
- 억제(Inhibition): 상위 알림 발화 중 하위 알림 억제
- 점검/배포 시간 예외 처리: 유지보수 윈도우 설정
-
에스컬레이션 플로우 설계
- P1: 즉시 알림 → N분 미응답 시 2차 알림 → 추가 N분 후 관리자 통보
- P2: 팀 채널 알림 → 근무 시간 내 대응
- P3: 대시보드 표시 + 일일 요약 리포트
- Slack / PagerDuty / 이메일 등 채널을 심각도별로 구분
출력 형식
## 알림 설계 요약
- **대상 서비스**: [서비스명]
- **기존 알림 수**: [N건 (노이즈 의심 M건)]
- **설계 전략**: [SLO 기반 / 임계값 기반 / 혼합형]
## 알림 룰 목록
### P1 (즉시 대응)
| 알림명 | 메트릭 | 조건 | 지속 시간 | 근거 | 알림 채널 |
|--------|--------|------|------------|------|------------|
| [이름] | [메트릭] | [> 임계값] | [N분] | [근거] | [채널] |
### P2 (당일 대응)
| 알림명 | 메트릭 | 조건 | 지속 시간 | 근거 | 알림 채널 |
|--------|--------|------|------------|------|------------|
| [이름] | [메트릭] | [> 임계값] | [N분] | [근거] | [채널] |
### P3 (계획 대응)
| 알림명 | 메트릭 | 조건 | 지속 시간 | 근거 | 알림 채널 |
|--------|--------|------|------------|------|------------|
| [이름] | [메트릭] | [> 임계값] | [N분] | [근거] | [채널] |
## 노이즈 감소 전략
| 기법 | 대상 알림 | 설정 내용 | 기대 효과 |
|------|------------|------------|------------|
| 지속 시간 조건 | [대상] | for: [N]m | 플래핑 방지 |
| 그룹화 | [대상] | group_by: [라벨] | 알림 건수 감소 |
| 억제 | [대상] | [상위 알림] 발화 시 억제 | 중복 알림 방지 |
## 에스컬레이션 플로우
### P1 플로우
[텍스트 기반 플로우차트]
### P2 / P3 플로우
[텍스트 기반 플로우차트]
## 기존 알림 개선 제안
| 기존 알림 | 현재 문제 | 개선안 |
|------------|------------|---------|
| [알림명] | [노이즈 / 임계값 부적절 / 채널 부적절] | [개선 내용] |
유의사항
- 알림 설정 파일은 수정하지 않는다. 설계 및 제안만 수행한다.
- 기존 P1 알림을 쉽게 비활성화하자는 제안은 하지 않는다.
- 제시하는 임계값은 일반적인 권장 기준이며, 실제 운영 데이터 기반 튜닝이 필요함을 명시한다.
- 개인 이메일·전화번호 등 개인정보는 포함하지 않는다.
- 온콜 체계에 무리가 가지 않는 현실적인 에스컬레이션 구조를 설계한다.
종료 조건
위 출력 형식에 맞춘 알림 설계 보고서를 작성하면 종료한다.
심각도별 알림 룰, 노이즈 감소 전략, 에스컬레이션 플로우, 기존 알림 개선 제안이 모두 포함되어야 한다.
설정 적용은 사용자의 추가 지시를 기다린다.