运维涉及到监控软件的设计和搭建,笔者在各个机房部署完传感器后,实现信号连通和测试,开发调试,最后部署成功。在长时间的运行中,笔者发现各个传感器传递的数据偶尔存在很大的偏差,会导致超过门限引发告警。
具体的开发流程和传感器如下,温湿度传感器时模拟量,存在误告警问题。传感器因为型号、稳定度等问题,可能会导致某次输出数据漂变。那么程序设计时数据采集判断怎样才能有效避免数据漂变/波动呢,那么应该在传感器固定的情况下,怎么来解决这个问题呢,给下次程序设计提供一个思路。
![](https://img.haomeiwen.com/i24447700/c17bd5ecce6bd847.png)
1、持续周期或者持续时间
笔者想到了what‘s up这个网络监控软件,基于ping来做设备在线/不在线检测,当出现ping中断时,此时软件默认只是颜色上的变化,然后第二、三次再检测中断时颜色变化加深,第四次才是告警声音。在存在网络波动、网络延时时,此方法多次判断确认,可以有效的解决监控软件误告警问题,避免频繁无效的告警提示。在传感器场景中,用于控制持续几个点异常才会发出告警,持续 1 个周期表示需要连续 2 个点异常,才会触发告警。或者按照业务逻辑,将周期数转为时间来进行判断。笔者觉得此方法是简单有效的。
2、动态阈值
那么如果数据在边界波动呢?静态阈值告警是指用户根据业务经验和曲线形态,配置固定的阈值,此固定值存在本身检测场景的局限,需要人工根据业务经验不时调整告警阈值设置等。结合业务特性来学习指标数据的历史变化规律,在不需要用户设定阈值的情况下,智能地检测指标异常并发送告警。此方法较为复杂,笔者还没有想到怎么实施。
3、相对值和绝对值
设置相对值(静态阈值)和绝对值(偏差),超过相对值时经过周期确认告警,然后再次告警是基于绝对值来判断,超过相对值绝对值时才考虑告警,此方法可以避免数据在边界波动,而且难度很比动态阈值要小。
网友评论