基本概念
元素 (Element)
IDMP 通過樹狀層次結構來組織數據,樹狀結構里的每個節點被稱之為元素 (Element)。元素是一個物理的或邏輯的實體。它可以是具體的物理設備(比如一臺汽車),物理設備的一個子系統(比如一臺汽車的剎車),甚至到一個傳感器。它也可以是邏輯的,比如一座工廠、一個集團、一個城市等。
每個元素都有自己的通用描述信息、屬性、實時分析、面板、通知等。因為是用樹來描述元素之間的關系,因此一個元素還會有父元素和子元素。一個元素可以有 0 到多個子元素、0 到多個父元素,0 到多個屬性、0 到多個分析、0 到多個面板、0 到多個看板、一個通知模板。
子元素、父元素 (Child Element/Parent Element)
一個元素可以有 0 到多個子元素。比如一臺發電的風機有風輪系統、傳動系統、發電系統、偏航系統、控制系統、塔架與基礎系統,以及輔助系統。風機的這些系統都是風機的子元素。子元素還可以有子元素,比如風機的發電系統還有發電機、變頻器等子元素。一個風力發電廠擁有多臺風機,這些風機又都是風力發電廠這個元素的子元素。
除了根節點的元素之外,元素都有父元素。比如風力發電廠是風機的父元素,而風機又是發電系統的父元素。由于元素還可以定義引用,一個元素可以有一到多個父元素。元素引用在高級話題上將被介紹。
屬性 (Attribute)
一個元素擁有 0 到多個屬性。這些屬性可以是配置項、靜態標簽值,也可以是動態的時序數據,還可以是分析產生的結果數據。在 IDMP 的設計里,一個元素屬性的具體值可以直接保存在 IDMP 系統里,也可以通過數據引用不保存在 IDMP 里,而是動態地獲得。
對于指標類的屬性,用戶可以設置極限值、目標值,可以設置顯示的物理單位,存儲的物理單位,顯示的小數點位數,設置它的預測配置。
實時分析 (Analysis)
一個元素有 0 到多個實時分析。實時分析是完全基于 TDengine 的流式計算實現的。流式計算的觸發方式包括滑動窗口、事件窗口、狀態窗口、計數窗口以及會話窗口,而且一個新寫入的數據點也可以觸發計算。這些觸發是基于該元素的一個或多個屬性,并且必須配置為數據引用,類型為 TDengine Metric。具體的計算可以是表達式、時間窗口的聚合計算,或多個元素的聚合計算。計算結果可以寫入到元素的一個屬性保存起來,還可以產生事件。
事件 (Event)
任何一個元素都有關聯的事件,事件是由該元素的分析生成的。事件有開始和結束時間,還包含用戶想記錄的屬性值或流式計算生成的計算結果,便于做事件的分析。事件可以指定嚴重程度,可以指定是否需要確認。根據通知模板的配置,基于嚴重程度,還可以發送消息給相應的負責人。
面板、看板 (Panel/Dashboard)
一個元素都可以有 0 到多個看板,一個看板里有一到多個 Panel (面板)。面板也可以獨立于看板存在。每個面板是基于一個元素或它的子元素的屬性的可視化,包括趨勢圖 (Trend Chart)、柱狀圖 (Bar Chart)、餅圖 (Pie Chart)、報表 (Table)、統計量 (Stat)、儀表盤 (Gauge)、富文本 (Rich Text) 等。
通知規則 (Notification Rule)
對于事件,可以發送通知提醒用戶。通知的內容可以定制,包含用戶想包含的任何內容。對于一個元素,通知模板只有一個。但對于不同的事件類型,可以指定發送通知的嚴重級別。
元素模版 (Element Template)
真實世界里,同一類型的設備或實體有多個,它們有同樣的屬性、需要做同樣的分析、建同樣的看板、面板,因此 IDMP 引入元素模板。對于同一類型的元素,先創建模板,然后基于模板再創建具體的元素,這樣便于數據的標準化,并且能大幅提高配置的效率。元素模板里包含了屬性模板、分析模板、面板模板、看板模板以及通知規則模板。