Canary Watch — 배포 후 모니터링
사용 시기
- 프로덕션 또는 스테이징에 배포한 후
- 위험한 PR을 머지한 후
- 수정 사항이 실제로 문제를 해결했는지 확인하고 싶을 때
- 출시 기간 동안 지속적으로 모니터링할 때
- 의존성 업그레이드 후
작동 방식
배포된 URL의 회귀를 모니터링합니다. 중단되거나 감시 기간이 만료될 때까지 루프를 실행합니다.
감시 항목
1. HTTP 상태 — 페이지가 200을 반환하는가?
2. 콘솔 오류 — 이전에 없던 새로운 오류가 발생했는가?
3. 네트워크 실패 — 실패한 API 호출, 5xx 응답이 있는가?
4. 성능 — LCP/CLS/INP가 기준치보다 회귀했는가?
5. 콘텐츠 — 주요 요소(h1, nav, footer, CTA)가 사라졌는가?
6. API 상태 — 중요 엔드포인트가 SLA 내에서 응답하는가?
7. 정적 자산 — JS, CSS, 이미지, 폰트 요청이 예상 콘텐츠 유형과 함께 2xx/3xx를 반환하는가?
8. SSE 스트림 — 이벤트-스트림 엔드포인트가 연결되고 초기 이벤트 또는 하트비트를 수신하는가?
감시 모드
빠른 검사 (기본값): 단일 패스, 결과 보고
/canary-watch https://myapp.com
지속 감시: M시간 동안 N분마다 검사
/canary-watch https://myapp.com --interval 5m --duration 2h
Diff 모드: 스테이징과 프로덕션 비교
/canary-watch --compare https://staging.myapp.com https://myapp.com
알림 임계치
critical: # 즉시 알림
- HTTP 상태 != 200
- 콘솔 오류 수 > 5 (새로운 오류만)
- LCP > 4s
- API 엔드포인트가 5xx 반환
- 정적 자산이 4xx/5xx 반환
- SSE 엔드포인트 연결 불가 또는 첫 하트비트 전에 끊김
warning: # 보고서에 플래그 표시
- LCP가 기준치보다 500ms 이상 증가
- CLS > 0.1
- 새로운 콘솔 경고
- 응답 시간이 기준치의 2배 초과
- 정적 자산 콘텐츠 유형이 예기치 않게 변경됨
- SSE 하트비트 지연 시간이 기준치의 2배 초과
info: # 로그만 기록
- 사소한 성능 변동
- 새로운 네트워크 요청 (타사 스크립트 추가됨?)
알림
중요 임계치 위반 시:
- 데스크톱 알림 (macOS/Linux)
- 선택 사항: Slack/Discord 웹훅
~/.claude/canary-watch.log에 기록
출력
## Canary Report — myapp.com — 2026-03-23 03:15 PST
### 상태: 정상 ✓
| 검사 항목 | 결과 | 기준치 | 차이 |
|-----------|------|--------|------|
| HTTP | 200 ✓ | 200 | — |
| 콘솔 오류 | 0 ✓ | 0 | — |
| LCP | 1.8s ✓ | 1.6s | +200ms |
| CLS | 0.01 ✓ | 0.01 | — |
| API /health | 145ms ✓ | 120ms | +25ms |
| 정적 자산 | 42/42 ✓ | 42/42 | — |
| SSE /events | 연결됨 ✓ | 연결됨 | +80ms 하트비트 |
### 회귀가 감지되지 않았습니다. 배포는 깨끗합니다.
통합
함께 사용:
/browser-qa: 배포 전 검증용- 훅:
git push시 PostToolUse 훅으로 추가하여 배포 후 자동 확인 - CI: 배포 단계 후 GitHub Actions에서 실행