Prometheus告警發送時間詳解


Promethues配置文件中的時間相關參數

1. scrape_interval:Promethues抓取數據的間隔,默認為1分鍾

2. evaluation_interval:評估間隔,Promethues跑一遍所有的定義好的alerting rules,並更新alerting的狀態
3. alert status:

    inactive: 未達到告警的條件

    pending: 達到了告警的條件,但是持續時間小於設定的閾值時間(取決於有沒有for語句,如果沒有將直接從inactive跳到firing狀態)

   firing: 達到了告警的條件,且持續時間大於設定的時間閾值

4. alert sending:
    group_wait: 等待該時間,目的是將該時間段內所有的屬於同一個組的alert打包一起發送告警通知
    group_interval:下一次評估過程中,同一個組的alert生效,則會等待該時長發送告警通知,此時不會等待group_wait設置的時間
 

Alertmanager內部架構圖

 
  1. 從左上開始,Prometheus 發送的警報到 Alertmanager;
  2. 警報會被存儲到 AlertProvider 中,Alertmanager 的內置實現就是包了一個 map,也就是存放在本機內存中,這里可以很容易地擴展其它 Provider;
  3. Dispatcher 是一個單獨的 goroutine,它會不斷到 AlertProvider 拉新的警報,並且根據 YAML 配置的 Routing Tree 將警報路由到一個分組中;
  4. 分組會定時進行 flush (間隔為配置參數中的 group_interval), flush 后這組警報會走一個 Notification Pipeline 鏈式處理;
  5. Notification Pipeline 為這組警報確定發送目標,並執行抑制邏輯,靜默邏輯,去重邏輯,發送與重試邏輯,實現警報的最終投遞;

參考資料


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM