[ Datadog ] Monitor 설정시 조건에 따라 서로 다른 채널로 알람을 발생 시키고 싶습니다.

Print

Monitor 설정시 Notify Your Team 항목의 내용 부분에 조건부 변수를 이용시 각 조건별로 메세지 및 알람 전파 채널등을 서로 다르게 적용할 수 있습니다.

조건부 변수

다음과 같은 경우 텍스트가 표시됩니다.

{{#is_alert}}

발생한 알람이 ALERT입니다.

{{^is_alert}}

발생한 알람이 ALERT이 아닙니다.

{{#is_match}}

컨텍스트가 제공된 하위 문자열과 일치합니다.

{{^is_match}}

컨텍스트가 제공된 하위 문자열과 일치하지 않습니다.

{{#is_exact_match}}

컨텍스트가 제공된 문자열과 정확히 일치합니다.

{{^is_exact_match}}

컨텍스트가 제공된 문자열과 정확히 일치하지 않습니다.

{{#is_no_data}}

발생한 알람이 NO DATA입니다.

{{^is_no_data}}

발생한 알람이 NO DATA가 아닙니다.

{{#is_warning}}

발생한 알람이 WARNING입니다.

{{^is_warning}}

발생한 알람이 WARNING이 아닙니다.

{{#is_recovery}}

발생한 알람이 ALERT, WARNING또는 NO DATA 에서 복구 알람입니다.

{{^is_recovery}}

발생한 알람이 ALERT, WARNING또는 NO DATA 에서 복구 알람이 아닙니다.

{{#is_warning_recovery}}

발생한 알람이 WARNING복구 알람입니다.

{{^is_warning_recovery}}

발생한 알람이 WARNING복구 알람이 아닙니다.

{{#is_alert_recovery}}

발생한 알람이 ALERT복구 알람입니다.

{{^is_alert_recovery}}

발생한 알람이 ALERT복구 알람이 아닙니다.

{{#is_alert_to_warning}}

발생한 알람이 ALERT에서 WARNING 으로 전환 알람입니다.

{{^is_alert_to_warning}}

발생한 알람이 ALERT에서 WARNING 으로 전환 알람이 아닙니다.

{{#is_no_data_recovery}}

발생한 알람이 NO DATA복구 알람입니다.

{{^is_no_data_recovery}}

발생한 알람이 NO DATA복구 알람이 아닙니다.

{{#is_priority 'value'}}

모니터에 설정된 priority가 value 입니다. ( P1 to P5 )

{{#is_unknown}}

모니터가 알 수 없는 상태입니다.

{{^is_unknown}}

모니터가 알 수 없는 상태가 아닙니다.

{{#is_renotify}}

모니터가 다시 알림 중입니다.

{{^is_renotify}}

모니터가 다시 알리지 않습니다.

특정 Tag값을 기준으로 전파할 채널 및 메세지를 다르게 설정하고자 하는 경우

우선 되도록이면 각 전파 채널별로 Monitor를 새로 만들거나 clone하여 System별로 각각 Monitor를 생성하는 것을 권장합니다.

하나의 모니터에 여러 다른 전파 채널로 전파하는 경우는 서로 다른 담당자가 혹은 관리 채널이 하나의 Monitor를 관리하게 되므로 임계치 등 공통되는 조건에 대해 협의가 이루어져야 하며, 수정이 잘못되어 한번에 여러 채널에 영향을 줄 수 있게 되므로 아래의 방법은 관리적인 문제가 되지 않는 경우, 최소 한도로 사용하길 권장합니다.

Notify your team의 내용에 적용되는 변수를 통해 조건을 걸고자 하는 경우 위 표에 표시된 조건 변수 중 아래의 조건 변수들을 사용할 수 있습니다.

  • {{#is_match "변수" "value1" "value2" }}{{/is_match}}

: 특정 변수의 값에 설정한 value가 포함되어있는 경우에 대해 정의 합니다.

  • {{^is_match "변수" "value1" "value2" }}{{/is_match}}  

: 특정 변수의 값에 설정한 value가 포함되어있지 않은 경우에 대해 정의 합니다.

  • {{#is_exact_match "변수" "value1" "value2" }}{{/is_exact_match}}

: 특정 변수의 값에 설정한 value가 일치 되는 경우에 대해 정의 합니다.

  • {{^is_exact_match "변수" "value1" "value2" }} {{/is_exact_match}}  

: 특정 변수의 값에 설정한 value가 일치 되지 않은 경우에 대해 정의 합니다.


변수 하나에 여러개의 문자열을 정의할수 있습니다 (or 조건으로 적용됩니다. )
예시 : {{#is_match "host.env" "dev" "stg" }} host.env 값이 dev 이거나 stg 인 경우 적용할 message 혹은 채널 등을 정의합니다. {{/is_match}} 프로그램에서 if/else를 사용하듯 조건부 변수를 이용해 사용 가능
(아래 두가지 방법 모두 가능)

{{#is_match  "host.env" "prod"}}
    @채널_prod
{{else}}
    @채널_dev
{{/is_match}}
{{#is_match  "host.service" "zmon" "slack"}}
    @채널_zmon
{{else}}
    {{#is_match  "host.service" "datadog"}}
        @채널_datadog
    {{else}}
        @채널_etc
    {{/is_match}}
{{/is_match}}

이 답변이 유용합니까? 아니오

Send feedback
도움이 되어드리지 못해 죄송합니다. 아티클 개선을 위해 의견을 제공해 주시기 바랍니다.