알림 규칙
알림 규칙 (Notification Rules)
모니터 알림 규칙(monitor notification rules)은 태그와 규칙 로직을 기반으로 팀에 경보를 알리는 과정을 자동화하는 미리 정의된 조건 집합이에요. 모든 모니터마다 수신자를 개별적으로 구성하는 대신, 알림 규칙은 한 번 정의하면 알림 태그셋(tagset)이 규칙의 범위와 일치하는 모든 모니터 알림을 자동으로 라우팅해줘요.
{% alert level="info" %} 조직당 기본 규칙 수 제한은 1000개예요. {% /alert %}
출처: 문서
본문
설정 (Setup)
{% alert level="danger" %}
규칙을 만들려면 monitor_config_policy_write 권한이 있어야 해요.
{% /alert %}
Datadog에서 Monitor Notification Rule을 만들려면 다음을 수행하세요:
- Notification Rules로 이동해요.
- New Rule을 클릭해요.
- 범위를 구성해요: 모니터 알림이 이 규칙으로 라우팅되기 위해 필요한 태그를 정의해요.
- 라우팅과 수신자를 구성해요: 알림을 라우팅할 방법을 선택하고 수신자를 지정해요.
- 명확하고 식별 가능한 규칙 이름을 추가해요.
범위 구성하기 (Configure the scope)
모니터 알림이 이 규칙으로 라우팅되기 위해 필요한 태그를 추가해요. 매칭은 알림 태그셋을 평가해요. 자세한 내용은 How matching works(매칭이 작동하는 방식)에서 확인하세요.
{% alert level="info" %} 알림 규칙이 저장된 후 생성되거나 업데이트된 모니터는 규칙의 범위와 일치하면 정의된 수신자로 라우팅돼요. {% /alert %}
{% collapsible-section %}
규칙 범위 구문 (Rule scope syntax)
Notification Rule 범위 쿼리는 불리언 로직을 지원하며, 다른 많은 플랫폼 제품이 지원하는 이벤트 기반 검색 구문 (event-based search syntax)을 따르지고 해요.
| 구문 요소 (Syntax Element) | 설명 (Description) |
|---|---|
| 불리언 연산자 (Boolean operators) | 지원: AND, OR, NOT. 암시적 연산자: AND |
| 와일드카드 (Wildcards) | key:*만 지원돼요(예: env:*). env:prod-* 같은 부분 와일드카드는 지원되지 않아요. key:*는 키가 알림 태그셋 어디에든 존재하면 매칭돼요. |
| 같은 키의 여러 값 (Multiple values for the same key) | env:(prod OR staging) 또는 env:prod OR env:staging을 사용해요. |
| 따옴표 (Quoting) | 공백이나 특수 문자가 포함된 값은 따옴표로 감싸요. 예: team:"data platform". |
{% /collapsible-section %}
{% collapsible-section %}
범위 예시 (Scope examples)
| 알림 규칙 범위 (Notification Rule scope) | 설명 (Explanation) |
|---|---|
service:web-store |
web-store 서비스에 대한 모든 알림을 라우팅해요. |
service:web-store AND env:prod |
prod 환경에서 실행 중인 web-store 서비스에 대한 모든 알림을 라우팅해요. |
service:webstore AND NOT env:staging |
staging 환경에서 실행되지 않는 web-store 서비스에 대한 모든 알림을 라우팅해요. |
env:* |
env:<value> 태그(모니터 태그 또는 그룹에서)를 가진 모든 알림을 라우팅해요. |
{% /collapsible-section %}
{% collapsible-section %}
규칙 범위 제한 (Rule scope limitations)
다음은 지원되지 않아요:
-
키 없는 태그(keyless tags). 예:
prod AND service:(A or B)또는prod는 지원되지 않아요. 태그에는 키가 있어야 해요. 이 경우 예를 들어env:prod처럼요. -
부분 와일드카드(
service:web-*)와 물음표 와일드카드(service:auth?)는 지원되지 않아요. 와일드카드는service:*처럼 단독으로만 사용할 수 있어요. -
범위 길이는 최대 3000자예요.
{% /collapsible-section %}
라우팅과 수신자 구성하기 (Configure the routing and recipients)
모니터 경보가 규칙의 범위와 일치할 때 알림을 라우팅할 방법을 선택해요. 수신자를 수동으로 지정하거나, 동적 라우팅(dynamic routing)을 사용해 팀과 서비스 구성에서 수신자를 자동으로 결정할 수 있어요.
수동 라우팅 (Manual routing)
모니터 알림이 규칙의 범위와 일치할 때 알릴 수신자를 지정해요. 항상 모든 수신자에게 알리거나, 특정 조건이 충족될 때만 알리는 조건부 수신자를 설정할 수 있어요(예: 중요 경보는 on-call 수신자에게 라우팅하고, 경고(warning)는 Slack 채널로 보내기). 조건은 모니터 상태 또는 태그를 기반으로 할 수 있어요:
- 상태 기반 조건 (Status-based conditions): 모니터가 특정 상태(Alert, OK, Warn, 또는 No data)로 전환될 때 수신자에게 알려요.
- 태그 기반 조건 (Tag-based conditions): 특정 태그 키가 주어진 값을 가질 때(예:
env:prod) 수신자에게 알려요. 각 조건은 하나의 태그 키만 지원해요.
알림은 이메일 또는 모든 통합 채널로 보낼 수 있어요. 규칙당 알림 수신자는 50개로 제한돼요. 자세한 내용은 알림 (Notifications)을 참고하세요.
동적 라우팅 (Dynamic routing)
{% alert level="danger" %} 동적 라우팅은 Preview(미리보기) 상태예요. 접근을 요청하려면 Datadog 계정 팀에 연락하거나 Datadog Support에 문의하세요. {% /alert %}
동적 라우팅은 기존 Teams 및 Catalog 구성에 따라 모니터 경보를 올바른 팀으로 자동으로 라우팅해요. 정적 수신자 목록을 유지하는 대신, 동적 라우팅은 경보 모니터의 service 또는 team 태그를 사용해 알림을 보낼 위치를 결정해요.
| 구성 (Configuration) | 설명 (Description) | 요구사항 (Requirements) |
|---|---|---|
| Service-based(서비스 기반) | 모니터의 service 태그 또는 그룹 태그를 확인하고, Catalog에서 해당 서비스를 관리하는 팀을 찾은 다음, 그 팀의 구성된 알림 채널로 경보를 보내요. |
서비스에 Catalog에서 팀이 할당되어 있어야 해요. 팀이 할당되지 않으면 경보는 폴백(fallback) 수신자로 이동해요. |
| Team-based(팀 기반) | 모니터의 team 태그 또는 그룹 태그를 직접 확인한 다음, 그 팀의 구성된 알림 채널로 경보를 보내요. |
모니터에 team 태그가 있어야 해요. |
| Fallback(폴백) | 라우팅을 해결할 수 없으면(예: 서비스에 팀이 할당되지 않았거나 팀에 알림 채널이 구성되지 않은 경우) 경보는 폴백 수신자로 이동해요. 폴백 수신자는 수동 라우팅 수신자와 동일하게 동작해요. | 모든 동적 라우팅 규칙에 필수예요. |
Service-based와 Team-based 라우팅 모두 Slack, 이메일, PagerDuty, Microsoft Teams를 지원해요. 팀은 Teams 설정에서 알림 채널을 구성할 수 있어요.
알림 규칙 관리하기 (Managing notification rules)
모니터 설정에서 (From Monitor Settings)
{% image source="https://docs.dd-static.net/images/monitors/notifications/notification_rules/notification_rules_table.53b67d9cf18528a076ffcaff24644c80.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/monitors/notifications/notification_rules/notification_rules_table.53b67d9cf18528a076ffcaff24644c80.png?auto=format&fit=max&w=850&dpr=2 2x" alt="List of notification rules in Monitor Settings" /%}
Monitor Notification Rules 페이지는 다음 열과 함께 모든 알림 규칙의 테이블을 표시해요:
- Name: 알림 규칙 이름
- Scope: 이 규칙이 적용되는 시점을 정의하는 태그 조합을 표시해요(예:
team:shopist service:web-store env:prod). - Team: 이 알림 규칙과 연결된 팀을 나열해요(범위에 팀 태그가 추가된 경우에만 사용 가능)
- Coverage: 이 규칙의 범위와 일치하는 모니터 수를 표시해요. 규칙 범위를 확인하고 조정이 필요한 규칙을 식별하는 데 사용해요.
- Notifies: 이 규칙이 일치할 때 경보를 받을 알림 채널(예: Slack 또는 이메일)을 나열해요.
또한 알림 규칙의 세로 점 3개 메뉴를 클릭해 Edit 또는 Delete할 수 있어요.
개별 모니터에서 (From an individual monitor)
모니터 구성에서 Recipient Summary는 일치하는 알림 규칙으로 모니터에 적용된 수신자를 보여줘요. Monitor 편집 페이지에서는 새 그룹이 보고될 때(멀티 알림 모니터) 일치 할 수 있는 규칙도 볼 수 있어요. Monitor 상태 페이지에서는 일치하는 규칙을 보여줘요.
{% image source="https://docs.dd-static.net/images/monitors/notifications/notification_rules/monitor_matching_notification_rule.51e895045b42f612d7bb5432aaf7845c.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/monitors/notifications/notification_rules/monitor_matching_notification_rule.51e895045b42f612d7bb5432aaf7845c.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Recipient summary field showing the notification recipients applied by notification rules" /%}
매칭이 작동하는 방식 (How matching works)
- 알림 태그셋은 모니터 태그와(멀티 알림 모니터의 경우) 트리거된 그룹의 태그의 합집합이에요. 키가 모니터/그룹에 걸쳐 여러 값을 가지면 모든 값이 고려돼요.
- 현재 일치(Currently matches): 모니터 태그와 결합된 보고 그룹이 적어도 하나 이상 범위를 충족하거나, 또는 모니터 태그만으로 충족하면 규칙이 일치해요. NOT은 후보 태그셋별로 평가되므로 거부된 값을 가진 그룹은 일치하지 않아요.
- 새 그룹이 보고될 때 일치 가능(Could match when new groups report)(멀티 알림 모니터, Monitor 편집 화면): 각 그룹별 키를 모니터 쿼리의 allow/deny 필터로 제약된 임의의 값과 함께 존재하는 것으로 간주해요.
- 단일 알림에 여러 규칙이 일치하면 모든 일치 규칙의 수신자가 병합되고 중복이 제거돼요.
{% image source="https://docs.dd-static.net/images/monitors/notifications/notification_rules/diagram_notification-rules.648446529fa45346c6cc05eb7ba9d31e.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/monitors/notifications/notification_rules/diagram_notification-rules.648446529fa45346c6cc05eb7ba9d31e.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Flowchart showing how Monitor notification rules match tags, combine recipients from monitors and rules, and remove duplicates before sending alerts" /%}
{% collapsible-section %}
예시: 알림 규칙 매칭 (Example: Notification Rule Matching)
다음 테이블은 서로 다른 태그 조합을 가진 모니터가 알림 규칙과 매칭되고 결과 알림이 생성되는 방식을 보여줘요. 이 테이블은 다음을 보여줘요:
- 여러 알림 규칙이 태그를 기반으로 단일 모니터 알림과 매칭될 수 있음.
- 규칙 내 여러 태그에 대해 AND 로직이 작동함.
- 모든 일치 알림 규칙이 최종 알림 목록에 수신자를 기여함.
- 수신자가 최종 알림 목록에서 중복 제거됨.
| 알림 규칙 (Notification Rules) |
|---|
team:shopist, service:web-store |
| 모니터 경보 태그와 알림 (MONITOR ALERT TAGS AND NOTIFICATIONS) |
team:shopist, service:web-store @[email protected] |
team:shopist |
service:web-store |
service:web-store, env:prod |
service:web-store, env:dev |
team:shopist and service:web-store, env:prod @slack-service1 @jira-project @[email protected] |
{% /collapsible-section %}