创建监视器时如何正确使用#is_match和eval(...)?

问题描述 投票:0回答:1

我正在尝试在 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”) "

enter image description here

我的计划是在

is_match
标签内将消息写入 @my_slack_team,但我似乎无法使其工作 - 我使用了双引号、转义符并进行了其他尝试,但没有成功。

最后,我决定制作两个单独的监视器,一个向我的邮件发送警报,另一个向 Slack 发送警报,并为第二个配置一个 Downtime,但我很好奇是否有一种方法可以使用

创建 Datadog 监视器时,请参阅“配置通知和自动化”部分中的 #is_match
eval
,并以这种方式仅使用一个监视器。

我想知道: 创建 Datadog 监视器时,向我的邮件发送警报,我可以使用包含

#is_match
eval
的表达式向 slack 团队发送消息,但前提是警报在一天中的特定时间内触发? 或者,有没有办法通过仅创建一个监视器来做到这一点?

提前致谢。

notifications alert datadog
1个回答
0
投票

忽略 UI 警告

尽管有 UI 警告,但记录的示例确实有效。

我使用此监视器定义验证了这一点:

Datadog Monitor-edit screen showing a warning

比赛时间发生变化,以在撰写本文时发出提醒

收到此通知:

Email received including the is_match text

这似乎是 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}}
© www.soinside.com 2019 - 2024. All rights reserved.