Monitor 설정시 Notify Your Team 항목의 내용 부분에 조건부 변수를 이용시 각 조건별로 메세지 및 알람 전파 채널등을 서로 다르게 적용할 수 있습니다.
조건부 변수 | 다음과 같은 경우 텍스트가 표시됩니다. |
---|---|
| 발생한 알람이 |
| 발생한 알람이 |
| 컨텍스트가 제공된 하위 문자열과 일치합니다. |
| 컨텍스트가 제공된 하위 문자열과 일치하지 않습니다. |
| 컨텍스트가 제공된 문자열과 정확히 일치합니다. |
| 컨텍스트가 제공된 문자열과 정확히 일치하지 않습니다. |
| 발생한 알람이 |
| 발생한 알람이 |
| 발생한 알람이 |
| 발생한 알람이 |
| 발생한 알람이 |
| 발생한 알람이 |
| 발생한 알람이 |
| 발생한 알람이 |
| 발생한 알람이 |
| 발생한 알람이 |
| 발생한 알람이 |
| 발생한 알람이 |
| 발생한 알람이 |
| 발생한 알람이 |
| 모니터에 설정된 priority가 value 입니다. ( |
| 모니터가 알 수 없는 상태입니다. |
| 모니터가 알 수 없는 상태가 아닙니다. |
| 모니터가 다시 알림 중입니다. |
| 모니터가 다시 알리지 않습니다. |
특정 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}}