Telegram / Email 알림
봇 운영 중 발생하는 주요 이벤트(거래 체결, 일일 손실 도달, reconcile mismatch 등)를 Telegram이나 Email로 받을 수 있습니다.
📸 알림 설정 화면 (추후 자동 캡처 예정)
채널
| 채널 | 환경변수 | 등록 위치 |
|---|---|---|
| Telegram | TELEGRAM_BOT_TOKEN + TELEGRAM_CHAT_ID | .env 또는 K8s secret |
| Email (SMTP) | SMTP_HOST / SMTP_USER / SMTP_PASS | 동일 |
UI 단의 채널 등록 폼은 후속 작업이며, 현재는 환경변수로 관리합니다.
알림 이벤트 매핑
| 이벤트 | Telegram | |
|---|---|---|
| 봇 시작/중지 | ✅ | ❌ |
| 거래 체결 | ✅ | ❌ |
| 일일 손실 한도 도달 | ✅ | ✅ |
| 라이브 활성 토큰 발급 | ❌ | ✅ |
| Reconciliation mismatch (5분+) | ✅ | ✅ |
| Broker API 5xx 연속 | ✅ | ✅ |
| LLM 비용 한도 초과 | ✅ | ❌ |
Telegram 설정
@BotFather로 봇 생성 →TELEGRAM_BOT_TOKEN발급- 본인 계정에서 봇과 대화 시작
https://api.telegram.org/bot<token>/getUpdates로 chat_id 확인.env에 두 값 추가- 서버 재시작
Email (SMTP) 설정
# .env 예시 (Gmail App Password)
SMTP_HOST=smtp.gmail.com
SMTP_PORT=465
SMTP_USER=alerts@example.com
SMTP_PASS=app_password_16chars
SMTP_SENDER=alerts@example.com
설정이 없으면 라이브 활성 토큰은 서버 로그로 fallback 됩니다 (자세한 동작: equity_live router).
Test 명령
python -m src.monitoring.notify --test
성공 시 두 채널 모두로 "[quant-ai] 테스트 메시지"가 발송됩니다.
자주 묻는 질문
Q. 모바일 알림만 받고 싶습니다.
A. SMTP 환경변수를 비워두면 Email 채널은 자동 비활성화 됩니다. Telegram만 알림이 옵니다.
Q. 알림이 너무 많아요.
A. MONITORING_ALERT_LEVEL=warn 으로 설정하면 info 이하는 필터링됩니다.
Q. UI에서 채널을 켜고 끄고 싶습니다.
A. 후속 작업입니다. 현재는 .env 변경 + 서버 재시작 필요.