경보 집계
경보 집계 (Alert aggregation)
시스템 상태와 성능을 보장하려면 시기적절하고 실행 가능한 알림이 필요해요. 하지만 효과적인 경보는 타이밍뿐 아니라 생성되는 경보의 개수에도 좌우돼요. 경보 집계(alert aggregation)는 이 균형을 관리하는 데 핵심적인 요소예요.
예를 들어 이커머스 사이트를 운영하는데 문제가 발생한다면, 요약된 경보 하나가 좋을까요, 아니면 실패의 각 측면을 상세히 기술하는 여러 개의 개별 경보가 좋을까요? 정답은 시스템 아키텍처, 문제의 성격, 팀의 작업 방식에 따라 달라져요. 경보 집계를 이해하면 팀이 과도한 알림 없이도 문제를 인지하도록 할 수 있어요.
이 가이드에서는 다양한 시나리오에 맞는 경보 집계 기능과 전략을 살펴볼게요.
출처: 문서
본문
경보 집계의 유형 (Types of alert aggregation)
기본적으로 Datadog는 모니터링하는 각 그룹에 대해 경보를 하나씩 보내요. 하지만 임계값을 위반한 모니터링 그룹이 몇 개든, 단일 알림 하나만 받도록 선택할 수도 있어요.
이런 예를 생각해볼게요. 여러 속성으로 그룹화된 모니터 쿼리가 있는데, 이 경우 쿼리는 topic과 partition으로 그룹화되어 있어요.
{% image source="https://docs.dd-static.net/images/monitors/guide/alert_aggregation/monitor_query_multi_alert.5cf38ba17e8fcd3bc3c264f60263fb34.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/monitors/guide/alert_aggregation/monitor_query_multi_alert.5cf38ba17e8fcd3bc3c264f60263fb34.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Example monitor query grouped by topic and partition" /%}
Simple alert (단순 경보)
Simple alert 모니터는 경보를 하나의 고유한 알림으로 집계해요.
{% image source="https://docs.dd-static.net/images/monitors/guide/alert_aggregation/simple_alert_notification.3c40a9e04eaa46a0886b79704aee4720.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/monitors/guide/alert_aggregation/simple_alert_notification.3c40a9e04eaa46a0886b79704aee4720.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Notification configuration for a simple alert monitor" /%}
예제를 보면 어떤 topic이나 partition이 임계값을 위반하든 모니터는 단일 경보 하나만 보내요. 모든 알림이 하나의 경보로 집계되는 거예요.
자세한 내용은 모니터 구성 - Simple alert 문서를 참고해요.
Multi alert (다중 경보)
Multi alert 모니터는 그룹의 각 고유한 조합에 대해 알림을 하나씩 보내요.
{% image source="https://docs.dd-static.net/images/monitors/guide/alert_aggregation/multi_alert_notification.8f06b430b748aff4106c4ab0971af34d.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/monitors/guide/alert_aggregation/multi_alert_notification.8f06b430b748aff4106c4ab0971af34d.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Notification configuration for a multi alert monitor" /%}
예제에서 모니터는 topic과 partition의 조합이 임계값을 위반할 때마다 알림을 하나씩 보내요. Multi alert 모니터에서는 변수(variables)를 사용하면 알림을 더 세밀하게 만들 수 있어요. 경보를 발생시킨 특정 그룹에 맞춰 메시지를 커스터마이즈하는 데 도움이 되지요.
자세한 내용은 모니터 구성 - Multi alert 문서를 참고해요.
사용 사례 (Use cases)
{% collapsible-section %}
Simple Alert
시나리오 (Scenario)
Kafka 기반 로깅 시스템을 error-logs와 user-events로 그룹화해 모니터링하고 있다고 해볼게요. 어떤 파티션에서든 메시지 랙(lag)이 500을 초과하면 알려줬으면 하는데, 여러 파티션이 랙 상태여도 경보를 여러 개 받을 필요는 없어요.
집계의 이점 (Benefits of aggregation)
Simple alert는 과도한 알림을 원하지 않지만 문제 발생 시 조치는 취해야 하는 팀에게 유용해요. 다만 여러 파티션이 랙 상태라면 단일 알림 하나에서 영향을 받는 모든 파티션을 볼 수 없을 수도 있어요. {% /collapsible-section %}
{% collapsible-section %}
Multi Alert
Multi alert는 서비스를 여러 팀이 소유할 때(각 팀이 전담 컴포넌트를 책임질 때) 아주 유용해요. 문제를 일으키는 컴포넌트에 따라 다른 팀에 알려야 할 수 있기 때문이에요.
시나리오 (Scenario)
이커머스 주문 처리 시스템을 운영하는데, 메시지가 "order-events" 토픽으로 전송되고 있다고 해볼게요.
집계의 이점 (Benefits of aggregation)
여러 파티션이 랙 상태라면(예를 들어 파티션 1과 파티션 3) 별도의 경보가 필요해요. 서로 다른 파티션이 다른 유형의 주문(예: 국내 vs. 국제)에 대응할 수 있기 때문이에요.
이런 수준의 상세 정보 덕분에 엔지니어가 빠르고 정밀하게 대응할 수 있어요. {% /collapsible-section %}
API로 이렇게 하기 (How to do this with the API)
API로 모니터를 관리한다면 notify_by 변수를 사용해 모니터를 Simple alert 또는 Multi alert로 만들 수 있어요.
| 경보 유형 (Type of Alert) | 구성 예시 (Configuration Example) |
|---|---|
| Simple Alert | "notify_by": ["*"] |
| Multi Alert | "notify_by": [<group>], 예를 들어 "notify_by": ["topic"] |
자세한 내용은 API 문서를 참고해요.