알림 채널 분리로 모니터링 신호 정리하다
목차
coway 알림을 @SlecsNotiBot 채널로 분리 라우팅했다. 단순해 보이지만 시스템 모니터링의 "신호 대 잡음" 비율에 꽤 중요한 변화다.
모니터링 알림의 구조적 문제
모니터링 시스템을 운영하다 보면 자주 마주치는 패턴이 있다. 초기엔 모든 경고를 한 채널로 모아서 깔끔해 보인다. 하지만 시간이 지나 서비스가 늘어나고 알림 종류가 다양해지면 채널이 과포화된다. 중요도가 다른 알림, 담당 팀이 다른 알림, 대응 시간이 다른 알림들이 섞이면서 정말 봐야 할 신호를 놓치기 쉬워진다.
특히 특정 서비스(이 경우 coway)가 다른 서비스보다 알림 빈도가 높거나, 담당자가 특정 팀으로 한정되거나, 처리 절차가 다르면 채널 분리는 선택이 아니라 필수가 된다. 같은 알림 채널에 있으면 관심 없는 팀까지 노이즈를 받게 되고, 정작 담당 팀은 다른 신호 속에 묻혀 빠른 대응을 하기 어려워진다.
라우팅 분리의 구현
변경은 3개 파일에 걸쳐 이루어졌다.
| 파일 | 역할 | 변경 내용 |
|---|---|---|
| gsc_autoheal.py | 자동 복구 로직의 알림 발송 | coway 이벤트 발송 대상 변경 |
| gsc_monitor.py | 모니터링 조건 판정 | coway 경고 조건 분리/라우팅 경로 지정 |
| slecs_notify.py | 알림 채널 라우팅 | @SlecsNotiBot 대상 로직 추가/확장 |
핵심은 기존 모니터링 흐름에서 "어디서" 알림 경로를 분기할지 결정하는 것이다. gsc_monitor.py에서 coway 알림을 감지하면 기본 채널 대신 slecs_notify.py의 새로운 라우팅 로직을 타게 된다. 이렇게 하면 같은 모니터링 인프라를 쓰면서도 알림 흐름은 깔끔하게 분리된다.
before: gsc_monitor → [모든 알림] → 기본 채널
after: gsc_monitor → [coway] → @SlecsNotiBot
gsc_monitor → [기타] → 기본 채널
이 선택이 의미하는 것
알림 채널 분리는 단순한 메시지 라우팅 기술이 아니다. 이건 "누가 뭐에 책임지는가"를 명확히 하는 조직 설계 문제이기도 하다. coway를 별도 채널로 분리하면:
- 담당 팀의 신호 가독성이 높아진다. 노이즈 없이 자신들의 서비스 상태만 집중해서 볼 수 있다.
- 대응 시간이 단축된다. 알림 배경음악 속에 묻혀있을 때보다 훨씬 빠르게 감지하고 행동한다.
- 확장성이 생긴다. 다른 서비스도 비슷한 분리가 필요하면 이미 만든 패턴을 따르면 된다.
나머지 팀 입장에서도 자신들의 채널이 더 깔끔해진다.
비슷한 상황에서 고려할 점
이런 작업을 할 때 흔히 고민하는 부분:
- 시점: "정확히 언제 분리할까?" 보통 한두 개 추가 알림으로 과포화가 증상으로 나타날 때면 이미 늦다. 설계 단계에서 "이 서비스는 독립적인 처리 흐름을 가지나" 판단해 미리 분리하는 게 좋다.
- 일관성: 한 파일에서만 라우팅 로직을 관리하기 vs. 여러 파일에 흩어진 조건문. 이 경우 slecs_notify.py로 중앙화하면 나중에 규칙 변경도 쉽다.
- 모니터링: 분리된 채널 자체도 모니터해야 한다. "알림이 제대로 가고 있나?"를 확인하는 메타 알림도 필요할 수 있다.
작은 분리지만, 시스템이 자라면서 쌓이는 작은 개선들이 모니터링 체험의 질을 결정한다.
🛒 이 글과 어울리는 추천 상품
*위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.
댓글 0
첫 댓글 달아줘.