2017-02-28 22 views
1

我們有一個通知,它將使用應用程序端點將數據發佈到應用程序。Bosun:使用post 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。所以我們得到空的結果。

是否有辦法解決競爭條件。

回答

0

Bosun的通知系統被設計成非常基本的。如果您想要更高級的東西,則需要使用單獨的系統來生成通知詳細信息和/或處理警報工作流程。有些人使用pagerduty或其他監控系統(如Shinken)來執行更高級的通知或警報管理。

最好的辦法是跳過內置通知,並在外部系統中執行所有操作。您仍然可以使用http://bosun.org/api與各種警報狀態(暴擊/警告/確認/關閉/等)集成,或者您可以更改警報以使用log = true繞過所有內置狀態並創建自己的工作流程。