dianping / cat

CAT 作为服务端项目基础组件,提供了 Java, C/C++, Node.js, Python, Go 等多语言客户端,已经在美团点评的基础架构中间件框架(MVC框架,RPC框架,数据库框架,缓存框架等,消息队列,配置系统等)深度集成,为美团点评各业务线提供系统丰富的性能指标、健康状况、实时告警等。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

发现在配置了执行次数最小值阈值为0的告警的情况下,重启节点,会出现误报的情况,cat获取值都是0

RekiOwl opened this issue · comments

发现在配置了最小值为0的告警的情况下,重启节点,会出现告警误报的情况,cat获取值都是0,感觉是因为没有取到数据(因为节点已经关闭)

Snipaste_2023-08-10_17-06-40

[CAT Event告警] [项目: domain] [监控项: type-All-count] [CAT Event告警: domain type cat-home] : [实际值:0 0 0 0 0 ] [实际值总和:0] [总和最小阈值: 0 ][告警时间:] [时间: ] [告警间隔时间]240分钟

告警和处理消息的是两个独立的服务吗,处理消息的服务重启了,告警的服务正常运行吗?

是的,是两个不同的节点,告警节点正常运行,关闭的是一个处理消息的一个节点

理论上是不会的,从目前的代码来看,告警会从目前所有处理消息(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