基本概念
元素 (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 引入元素模板。对于同一类型的元素,先创建模板,然后基于模板再创建具体的元素,这样便于数据的标准化,并且能大幅提高配置的效率。元素模板里包含了属性模板、分析模板、面板模板、看板模板以及通知规则模板。