STK-OBS-10 Discord webhook 알림 연동 (양 스택)
작업 내용
임계치 위반 시 Discord webhook으로 알림을 보낸다(R-10). PoC 비교 축에 “알림 경험”을 넣기 위해 Grafana·SigNoz 양쪽에 동일 규칙을 구성한다.
- Grafana: contact point(Discord) + alert rule(예: HTTP 에러율·consumer lag·Redis 메모리).
- SigNoz: alert channel(webhook→Discord) + 동일 의미의 alert rule.
- webhook URL은
~/.zshrc의DISCORD_WEBHOOK_URL환경변수로만 주입(민감 정보 주입 방식 선택). 설정 파일 하드코딩 금지.
롤백: alert rule·contact point 제거. 환경변수는 코드와 분리돼 영향 없음.
다이어그램
처리 흐름
sequenceDiagram participant Stack as Grafana/SigNoz participant Rule as alert rule participant Discord Stack->>Rule: 메트릭 임계치 평가 Rule->>Discord: 위반 시 webhook 발송 Rule->>Discord: 해소 시 resolved 발송
구성 의존
flowchart LR ENV["DISCORD_WEBHOOK_URL(zshrc)"] GCP["Grafana contact point"] SCH["SigNoz alert channel"] ENV --> GCP ENV --> SCH GCP --> DISCORD["Discord"] SCH --> DISCORD
테스트 케이스
- 임계치 위반 시 Grafana·SigNoz 각각 Discord로 알림이 도착한다.
- 위반 해소 시 resolved 알림이 발송된다.
- webhook URL이 환경변수로 주입되고 설정 파일에 평문 노출되지 않는다.
- 환경변수 미설정 시 alert 구성이 명확한 에러/경고를 남긴다(조용한 실패 방지).
- 중복 알림 억제(그룹핑/디바운스)가 동작한다.