物联网场景联动》告警配置复盘

基础模块

设计模块:规则、触发条件、执行动作,其中执行动作根据不同的输出途径会再有不通的分表
在这里插入图片描述

规则类型

从大的方面考虑,触发条件配置可以分为:产品级、单设备、多设备

  • 产品级
    就是从抽象的产品层面配置,在所有的设备数据都生效。比如在当前项目中监测温度超过50℃就会产生高温告警。
    在这里插入图片描述

  • 设备级
    按单个或多个指定设备配置,如果是多个条件,那么只有多个条件都满足或者任意条件满足的情况下才会触发
    在这里插入图片描述

数据上传触发流程

在这里插入图片描述
在多设备、多测点数据综合判断的情况下,不能仅仅根据当前上传触发的设备数据得出结果,所以就需要考虑结合同级条件中的其它设备存储的最新数据进行判断
在这种情况下,会面临新的问题:

  1. 时间范围
    一般综合判断的场景都是希望用来判断的数据几乎是在相同的时间,如果没有这个判断,可能会出现过时的数据加入判断,而得到非预期的判断结果。
    解决办法就是增加scopeSeconds属性,以当前时间点进行判断同级条件的设备数据
// 这里还要判断当前数据的时间和传入的时间相差是否大于指定秒数
LocalDateTime prTime = pData.getReceivedTime();
Duration d = Duration.between(measurements.getReceivedTime(), prTime);
long dL = d.toMillis();
if (dL < 0) {
	dL = Math.abs(dL);
}
if (dL > scopeSeconds) { // 如果数据时间差大于设定时间差,那么不通过
	log.debug("时间差大于设定时间差" + dkey);
 			return;
}
  1. 重复触发
    这个问题主要是因为多线程的执行时机问题导致的
    比如,如果设备A先存储数据再进行联动条件判断,那么就有可能在这个组合步骤的中间环节时,设备B的数据入库,而导致设备A和设备B生成两条告警
    在这里插入图片描述
    一种简单的做法就是直接在这里加入同步锁控制,使相关存储与判断串行化
    在这里插入图片描述
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值