falcon-judge 告警判定组件

发布于 2021-11-24 01:01:27 字数 1434 浏览 1233 评论 0

Judge 是用于判断是否触发报警条件的组件。

Transfer 的数据不但要打到 Graph 来存储并绘图,还要打到 Judge 用于报警判断。Judge先从hbs获取所有策略列表,静等Transfer的数据转发。 每收到一条Transfer转发过来的数据,立即找到这条数据关联的 Strategy、Expression,然后做阈值判断。

如何找到关联的 Strategy push 上来的数据带有一个 endpoint,endpoint 通常都是 hostname,hostname 隶属于多个 HostGroup,HostGroup 可以关联多个 Template,各个 Teamplate 下面就是 Strategy,层层顺藤摸瓜可得。但是,如果endpoint不是hostname,并没有被HostGroup管理,那就找不到了。

如何找到关联的 Expression 这是一种更通用的方案,主要针对endpoint不是hostname的情况。push上来的数据通常带有多个tag,比如project=falcon,module=judge, 假如我们要针对所有打了project=falcon这个tag的数据做qps的阈值判断,那我们可以配置一个这样的表达式:

each(metric=qps project=falcon)

如上配置之后,push 上来的数据如果发现 metric=qps,并且带有 project=falcon 这个 tag,那就说明与这个 expression 相关,要做相关阈值判断

Installation

# set $GOPATH and $GOROOT
mkdir -p $GOPATH/src/github.com/open-falcon
cd $GOPATH/src/github.com/open-falcon
git clone https://github.com/open-falcon/judge.git
cd judge
go get ./...
./control build
./control start

Configuration

配置文件中主要是一些连接地址和监听的端口,没啥好说的,看一下 alarm 的配置,judge 报警判断完毕之后会产生报警 event,这些 event 会写入 alarm 的 redis 队列中,不同优先级(配置策略的时候每个策略会配置一个优先级,0-5)写入不同队列,alarm 中除了 redis 地址需要修改,其他 的建议维持默认。

alarm 中有一个 minInterval 的配置,单位是秒,默认是300秒,表示同一个 event,如果配置报警多次,那么两个报警之间至少间隔300秒。 这是个经验值,我们觉得报警太频繁没有意义,对工程师来说是干扰。收到报警之后拿出电脑、开机、连上vpn就差不多要3分钟了。

项目地址:https://github.com/open-falcon-archive/judge

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84960 人气
更多

推荐作者

lorenzathorton8

文章 0 评论 0

Zero

文章 0 评论 0

萧瑟寒风

文章 0 评论 0

mylayout

文章 0 评论 0

tkewei

文章 0 评论 0

17818769742

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文