发现在配置了最小值为0的告警的情况下,重启节点,会出现告警误报的情况,cat获取值都是0,感觉是因为没有取到数据(因为节点已经关闭)
[CAT Event告警] [项目: domain] [监控项: type-All-count] [CAT Event告警: domain type cat-home] : [实际值:0 0 0 0 0 ] [实际值总和:0] [总和最小阈值: 0 ][告警时间:] [时间: ] [告警间隔时间]240分钟
w8f9ii691#
告警和处理消息的是两个独立的服务吗,处理消息的服务重启了,告警的服务正常运行吗?
vof42yt12#
是的,是两个不同的节点,告警节点正常运行,关闭的是一个处理消息的一个节点
p5cysglq3#
理论上是不会的,从目前的代码来看,告警会从目前所有处理消息(Consumer)的节点获取告警规则对应的数据,如果有Consumer节点挂了,则此时告警规则不会被触发的
下面是EventAlert告警检测中的获取报表数据的代码,从请求参数(requireAll=true)来看,必须所有请求所有Consumer节点成功才会检测告警规则https://github.com/dianping/cat/blob/master/cat-home/src/main/java/com/dianping/cat/report/alert/event/EventAlert.java#L203
因此感觉,是告警规则的数据在检测的时候的真实值就是0
3条答案
按热度按时间w8f9ii691#
告警和处理消息的是两个独立的服务吗,处理消息的服务重启了,告警的服务正常运行吗?
vof42yt12#
是的,是两个不同的节点,告警节点正常运行,关闭的是一个处理消息的一个节点
p5cysglq3#
理论上是不会的,从目前的代码来看,告警会从目前所有处理消息(Consumer)的节点获取告警规则对应的数据,如果有Consumer节点挂了,则此时告警规则不会被触发的
下面是EventAlert告警检测中的获取报表数据的代码,从请求参数(requireAll=true)来看,必须所有请求所有Consumer节点成功才会检测告警规则
https://github.com/dianping/cat/blob/master/cat-home/src/main/java/com/dianping/cat/report/alert/event/EventAlert.java#L203
因此感觉,是告警规则的数据在检测的时候的真实值就是0