我正在尝试在 Datadog 中创建一个监视器,当触发时,它会向 Slack 通道和我的电子邮件发送警报消息。但是,该消息只能在工作时间发送到 Slack。 在 datadog 文档的此页面,在标题“根据一天中的时间将通知路由到不同的团队”下,我看到可以使用以下表达式:
{{#is_match (eval "int(last_triggered_at_epoch / 3600000 % 24)") "14" "15" "16"}} @my_Slack_team Handle that should receive notification if time is between 2PM and 5PM UTC {{/is_match}}
但是,当我尝试在 Datadog 中使用它时,我看到以下警告: " 在消息中: is_match 参数
(eval
应加引号(即“(eval”) "
我的计划是在
is_match
标签内将消息写入 @my_slack_team,但我似乎无法使其工作 - 我使用了双引号、转义符并进行了其他尝试,但没有成功。
最后,我决定制作两个单独的监视器,一个向我的邮件发送警报,另一个向 Slack 发送警报,并为第二个配置一个 Downtime,但我很好奇是否有一种方法可以使用
创建 Datadog 监视器时,请参阅“配置通知和自动化”部分中的 #is_match
和 eval
,并以这种方式仅使用一个监视器。
我想知道: 创建 Datadog 监视器时,向我的邮件发送警报,我可以使用包含
#is_match
和 eval
的表达式向 slack 团队发送消息,但前提是警报在一天中的特定时间内触发?
或者,有没有办法通过仅创建一个监视器来做到这一点?
提前致谢。
尽管有 UI 警告,但记录的示例确实有效。
我使用此监视器定义验证了这一点:
比赛时间发生变化,以在撰写本文时发出提醒。
收到此通知:
这似乎是 UI 解析/验证逻辑(不会阻止提交编辑)与实际服务器端逻辑(如果实际上无效,则会阻止编辑/更新)不同的情况之一。您可能希望向 DD 提交票证以修复误报的 UI 警告,但最终是否会发生这种情况还不得而知。无论如何,问题中的结构应该符合您的需求,即:
@handle to ping unconditionally
{{#is_match (eval "int(last_triggered_at_epoch / 3600000 % 24)") "14" "15" "16"}}
Handle/text to only be included in the alert body between 14:00 and 16:59 UTC
{{/is_match}}