1

我们有一个通知,它将使用应用程序端点将数据发布到应用程序。

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

所以端点会将所有细节保存在 mysql DB 中。

现在在我们的模板中,我们调用另一个端点来获取我们使用通知中的 webhook 保存的详细信息。

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

现在的问题是竞争条件。有时详细信息尚未保存在后端(mysql)中,并调用 getDetailsUrl。所以我们得到空结果。

有没有办法解决比赛条件。

4

1 回答 1

0

Bosun 的通知系统设计得非常基础。如果您想要更高级的东西,您将需要使用单独的系统来生成通知详细信息和/或处理警报工作流程。有些人使用 pagerduty 或Shinken等其他监控系统来进行更高级的通知或警报管理。

您最好的选择是跳过内置通知并在外部系统中执行所有操作。您仍然可以使用http://bosun.org/api与各种警报状态(crit/warn/ack/close/etc)集成,或者您可以更改警报以使用log = true绕过所有内置状态并创建自己的工作流程。

于 2017-03-15T18:12:46.690 回答