Можете ли вы выполнить сопоставление равенства для переменных шаблона сообщения в data dog? - PullRequest
0 голосов
/ 16 мая 2019

Я настраиваю мониторы / оповещения datadog и хочу, чтобы оповещения перенаправлялись на провал или пейджер в зависимости от того, есть проблема в нашей производственной среде или нет. Я создал мониторы с несколькими предупреждениями, которые предупреждают правильно, но я не могу понять, как сделать так, чтобы только те, где environment.name равно prod, отправляли предупреждение в pagerduty и всегда отправляли его в Slack.

Я надеялся, что смогу сделать что-то подобное в сообщении с предупреждением, но не смог выяснить синтаксис, который работает:

[...alert message...]

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

На данный момент я нашел обходной путь создания двух мониторов, которые являются дубликатами друг друга, при этом один из них предназначен только для производства и оповещает только о pagerduty, а второй - для всех сред и только для слабых оповещений. Тем не менее, я знаю, что по мере нашего роста это станет кошмаром технического обслуживания, и я хотел бы знать, есть ли лучшее решение.

1 Ответ

1 голос
/ 16 мая 2019

Вам нужна условная переменная is_match или is_exact_match, которые задокументированы здесь (с примерами).

Идея состоит в том, что вы можете вкладывать свои сообщения и уведомлений в условных логических аргументах, так что только когда монитор предупреждает / предупреждает / разрешает или только когда оцениваемая область тега соответствует определенным условиям, определенные сообщения или каналы уведомлений будут частью предупреждения.

Итак, в вашем случае вы хотите, чтобы ваше сообщение содержало что-то вроде этого:

{{# is_exact_match "environment.name" "prod"}}

Добавитьспециальное продвинутое сообщение здесь

и @pagerduty или @ pagerduty-foo

{{/ is_exact_match}}

Добавить сообщение, которое всегда должно отображаться здесь

и @ slack-bar

В этом случае только в том случае, если значение тега «environment» равно «prod», будет включен контент в квадратных скобках (который включает в себя уведомление pagerduty).Часть без скобок всегда будет включена (включая уведомление о провисании).

...