告警與恢復告警原理及實現

KaiwuDB發表於2023-03-14


一、背景

自“雙碳” 政策提出 以來, KaiwuDB 聚焦“數字能 源”領域,為使用者打造 數字能源管理平臺 ,旨在提升綜合能源和碳資產管理能力。


數字能源管理平臺 是以  KaiwuDB 為核心建設的雲-邊-端一體化資料服務平臺,致力於為 IoT、工業網際網路、數字能源、交通車聯網、等行業提供從資料產生、採集、匯聚到資料分析、應用、歸檔的全生命週期的資料服務。


數字能源是物聯網技術與能源產業的深度融合,透過能源設施的物聯接入,並依託大資料及人工智慧,打通物理世界與數字世界,資訊流與能量流互動,實現能源品類的跨越和邊界的突破,放大設施效用,品類協同最佳化。


二、規則使用元件介紹

A、DAG 介紹

DAG(Directed Acyclic Graph,有向無環圖)是一種資料結構,表示的是一張有向圖,並且在這個圖中,從任意頂點出發都無法回到該點(無環),如圖所示



B、go-streams 簡介

go-streams 是一個流式處理庫,它提供一種簡單、簡潔的方式構建資料處理的管道。



在計算中,管道也稱為資料管道,是一組串聯連線的資料處理元件,其中一個元件的輸出是下一個元件的輸入。管道的元素通常以並行或時間切片的方式執行,通常在元素之間插入一定量的緩衝儲存器。


C、告警規則與恢復告警規則介紹

在當前的數字能源平臺中,可能會存在各種偶然情況,所以我們在指定時間視窗內,當異常資料個數達到總資料的指定百分比時才被判定為告警情況。


比如說,使用者設定 endpoint1 採集點,設定異常資料佔比總數量的 60% 時觸發一級告警,設定告警視窗為 5 秒。


假設在這 5 秒內 endpoint1 傳過來的資料有 100 條,此時當異常資料的數量達到或超過 100*60%=60 時,觸發一級告警;如果異常資料的數量沒有達到 100*60%=60 條,則不觸發一級告警。


這裡的 60% 是人為設定的,由使用者來判斷在一段時間視窗內,異常資料達到總資料的百分比數,從而來確定是否觸發告警等級。


D、告警與恢復告警規則設定值介紹

使用者定義對目標採集點的監控,設定的值包含:

  • 該目標採集點的 id

  • 該目標採集點的告警規則列表,也意味著同一個採集點可以有多個不同級別的告警


規則列表中單個規則包含的值有:

  • 告警等級

  • 告警取值範圍

  • 告警資料數量佔比的百分數

  • 告警視窗大小

  • 恢復告警視窗大小

  • 告警重複傳送的時間


E、告警與恢復告警規則返回值引數介紹

若觸發告警與恢復告警規則,使用者和管理人員拿到的告警資訊,包含的值為:

  • 觸發告警與恢復告警規則的目標採集點 id

  • 該目標採集點觸發或恢復到的告警等級

  • 告警型別(告警、恢復告警、重複告警)

  • 觸發該次告警或恢復告警的時間

  • 告警資料


三、  規則原理及流程說明

A、告警與恢復告警規則流程說明



  • 數字能源平臺從 Kafka source 中獲取批次的所有資料資訊(圖內標題 1)

  • 數字能源平臺將所有資料資訊分成單點資料(圖內標題 2)

  • 將單點資料同時全部發給分割槽流程(圖內標題 3)

  • 分割槽流程過濾掉沒被監控的資料,並按照時間視窗的大小將資料進行分割槽(圖內標題 4、14,4 為告警流程,14 為恢復告警流程)

  • 按照分割槽流程的時間視窗建立時間視窗(圖內標題 5、8、11、15、18、21)

  • 在時間視窗內將滿足告警條件資料進行包裝(圖內標題 6、9、12、16、19、22)

  • 將包裝起來的資料設定為告警流程發過來的資料或恢復告警流程發過來的資料(圖內標題 7、10、13 為告警流程發過來的資料,17、20、23 為恢復告警流程發過來的資料)

  • 將所有包裝好的資料傳送到同一節點(圖內標題 24)

  • 判斷告警等級流程將傳過來的資料判斷每個採集點當前的告警等級(圖內標題 25)

  • 將每個採集點對應的告警等級資訊包裝成返回值的格式(圖內標題 26)

  • 將包裝好的資料發給資料目標(圖內標題 27)


B、告警等級設定說明

每一個被檢測的採集點都會設定一個或多個告警等級,比如我們在 endpoint1 採集點上設定正常情況、1 級告警、2 級告警、3 級告警、4 級告警、5 級告警,數字越大代表越嚴重。


通常情況下,我們對每一個採集點都透過維護一個棧來儲存這個採集點的告警資訊,這個採集點當前的告警等級,即是棧頂儲存的告警等級。若當前告警等級大於棧頂元素,則該告警等級進棧,代表當前告警等級提高;若當前告警等級小於等於棧頂元素,則不做任何處理。




C、恢復告警等級設定說明

我們對當前恢復告警等級對棧內元素進行比較,從棧頂開始,若棧頂元素大於當前恢復告警等級,則棧頂元素出棧,繼續比較新棧頂元素與當前恢復告警等級,直至棧頂元素小於等於當前告警等級。




若在比較的過程中,已有棧頂元素被彈出,新棧頂元素小於當前恢復告警等級,則將當前恢復告警等級進棧,併傳送一條設定告警的記錄。



若在比較的過程中,沒有棧頂元素被彈出,最開始的棧頂元素小於當前恢復告警等級,則不作處理。



D、重複傳送告警等級設定說明

當一個採集點的告警等級棧長時間沒有更改,也就是沒有進棧操作也沒有出棧操作,將對使用者重新傳送一個當前棧頂元素的告警資訊。意為長時間沒有對當前告警做出處理,重複提醒。


四、總結

透過告警規則及恢復告警規則,可以減少人力監控,也是自動化運維的一種手段。對於數字能源平臺來說,一個採集點出現的問題,首先平臺要第一時間知曉而不是等待使用者反饋。透過告警規則與恢復告警規則,也大幅減少了運維人員去檢視日誌的時間。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70027415/viewspace-2939540/,如需轉載,請註明出處,否則將追究法律責任。

相關文章