Bosun: сохраняйте информацию с помощью почтового URL и получайте ту же информацию и используйте ее в шаблоне

У нас есть уведомление, которое будет публиковать данные в приложении, используя конечную точку приложения.

notification ABC{
    post = savedetailsurl
    body = {{.|json}}  
    useBody = true
}

Таким образом, конечная точка сохранит все детали в базе данных mysql.

Теперь в нашем шаблоне мы вызываем другую конечную точку, чтобы получить детали, которые мы сохранили, используя webhook в уведомлении.

template ABC {
    use the " getDetailsUrl" and use the details in forming the email
}

Теперь проблема в состоянии гонки. Иногда детали еще не сохраняются в бэкэнде (mysql), и вызывается getDetailsUrl. Таким образом, мы получаем пустой результат.

Есть ли способ решить условия гонки.

1 ответ

Система уведомлений Bosun разработана, чтобы быть очень простой. Если вы хотите что-то более продвинутое, вам нужно будет использовать отдельную систему для генерации деталей уведомления и / или обработки рабочего процесса оповещения. Некоторые люди используют pagerduty или другие системы мониторинга, такие как Shinken, для более сложных уведомлений или управления оповещениями.

Лучше всего, чтобы пропустить встроенные уведомления и делать все во внешней системе. Вы по-прежнему можете использовать http://bosun.org/api для интеграции с различными состояниями предупреждений (crit/warn/ack/close/ и т. Д.) Или изменить свои предупреждения на использование log = true, чтобы обойти все встроенные состояния и создайте свой собственный рабочий процесс.

Другие вопросы по тегам