DEVELOPMENT NOTE / CHIP THRONE
Slack Webhook 기반 장애 알림
문제
- 애플리케이션 내부 알림만 두면 서버가 내려갔을 때 알림도 전송되지 않음
- 외부 응답 확인만으로는 서버가 살아 있지만 시세 수집만 실패하는 상황을 알 수 없음
해결 전략
- GitHub Actions가 EC2 밖에서 프론트와 API를 5분마다 확인하고 각 요청이 3회 실패하면 Slack 알림
- 매일 오전 8시에 API 상태와 배포 버전을 확인해 정상 여부를 한 번 보고
- 애플리케이션 기동 시 배포 버전을 알리고 시세 수집이 5회 연속 실패하면 장애 알림
- 장애 상태에서 수집이 다시 성공하면 복구 알림 1회 전송
알림 빈도 제어
- 3초 주기 시세 수집은 1시간 장애 시 최대 1,200번 실패하므로 건별 알림 제외
- 5회 연속 실패할 때 상태를 장애로 바꾸고 같은 종류의 알림은 10분 동안 재전송하지 않음
검증
- 5회 이전에는 알림을 보내지 않고 임계값에 도달하면 한 번만 전송하는 단위 테스트 작성
- 장애 상태에서 다음 성공 응답이 들어오면 복구 알림을 한 번만 보내는 상태 전이 검증