标签
标签可以用来标记产品、设备及其内的多种要素,也会自动被标记到相关的事件、告警上,从而方便各要素的查询与统计分析。
标签可以由用户主动标记在:
产品;
设备;
产品和设备上的属性;
产品和设备上的事件;
产品和设备上的告警规则。
除了上述主动添加的标记之外,平台默认还有以下的标签:产品、设备、经度、纬度、地址。
重要
产品属性、设备属性上的标签有如下关系:
在创建设备时,产品属性上的标签,会自动应用在设备的属性上。
设备属性上的标签可以任意增删改。
在产品的任一属性里,进行标签的新增或编辑操作时,所有该产品的设备里的该属性的标签都会变得与该产品属性内的标签同步,并且丢失所有之前针对该属性下标签的手动调整。
标签与统计
统计功能会受到是否启用 TDengine 的影响:
若启用 TDengine,则平台会将 Zabbix 内的标签和数据都存入其中,并实现强大的统计分析功能。
若不启用 TDengine,则只能使用 Zabbix 的原生接口,统计功能相当有限。当然也可直接查库自行编写 SQL,但编写调试复杂跨表 SQL 过程中要挠掉多少根头发就只有天知道了;而且即使写出来了,查询效率与 TDengine 相比也是天壤之别。
重要
若使用 TDengine,则能实现更强大的统计分析功能;但同时会有轻微的额外限制,具体限制见下面的 TDengine 对标签的限制要求。
若只使用 Zabbix 默认的数据库,则对标签没有上述额外限制。
标签与 TDengine
TDengine 本身提供了针对时序数据的强大功能,包括按时间窗口聚合、降采样、插值、多表聚合等。具体可参考涛思官方文档数据查询。
TDengine 对标签的限制要求
若使用 TDengine,则对标签有如下限制:
标签名最大长度为64;
全平台所有相同数据类型(如小数)属性上不重复的标签名(包含继承自产品、设备的)最多允许128种(包含上面提到的平台默认标签);
一个设备的一个属性里的所有标签值的总长度不超过16k个字符;
标签名不能为涛思的预留关键字,具体请参考涛思官方文档的 TDengine参数限制与保留关键字。
另可参考涛思官方文档 TAOS SQL 边界限制。
在绝大部分业务场景下,上述限制其实都不算问题;而如果确有无法避免的影响,那么可自行定义贴合业务的 TDengine 存储结构。
Zeus-IoT 对标签的赋能
Zeus-IoT 无缝将时序数据、标签存入 TDengine 后,不仅可以实现上述功能,更是通过巧妙构造将业务逻辑与存储结构进行了分离,以实现更通用的聚合分析。简单点说,就是可以跨设备、跨产品来进行聚合分析。具体的内容请见开发指南。
至于跨产品的聚合分析有什么用?试想一下:甲方或产品经理又提出了一点点新需求……