您可以对数据狗中的消息模板变量执行相等匹配吗?

时间:2019-05-16 16:07:50

标签: alert datadog

我正在设置datadog监视器/警报,并且希望根据问题是否在我们的生产环境中将警报路由到松弛或传呼状态。我已经创建了多警报监视器,可以正确地发出警报,但是我无法弄清楚如何仅将environment.name等于prod的监视器发送给pagerduty警报,并始终将其发送到Slack

我希望能够在警报消息中执行以下操作,但是还无法找出有效的语法:

[...alert message...]

{{#environment.name==prod}}@pagerduty{{/environment.name}}
@slack

就目前而言,我找到了一种解决方法,即有两个监视器是彼此重复的,其中一个监视器仅适用于生产并且仅警告pagerduty,第二个监视器仅适用于所有环境,并且仅针对警报松弛。但是,我知道随着我们的成长,这将成为维护的噩梦,我想知道是否有更好的解决方案。

1 个答案:

答案 0 :(得分:1)

您想要的是is_matchis_exact_match条件变量,它们是documented here(带有示例)。

这个想法是,您可以将消息和通知嵌套在条件逻辑参数中,以便仅在监视器发出警报/警告/解决时,或者仅当评估的标记范围与某些条件匹配时,才会确定消息或通知通道是警报的一部分。

因此,在您的情况下,您希望您的消息中包含以下内容:

  

{{## is_exact_match“ environment.name”“产品”}}

     

在此处添加特殊产品消息

     

和@pagerduty或@ pagerduty-foo

     

{{/ is_exact_match}}

     

添加应始终显示在此处的消息

     

和@ slack-bar

在这种情况下,仅当“ environment”标签的值为“ prod”时,方括号中的内容才被包括在内(包括传呼通知)。非括号部分将始终包括在内(包括松弛通知)。