微盟APM系统告警能力的设计与实现 (下)
发布于 3 年前 作者 xia10 3762 次浏览 来自 分享

上文(链接: https://developers.weixin.qq.com/community/develop/article/doc/0004a885b50838ebc71cf96f951813)中我们说到了微盟APM系统中告警能力的设计与实现,此篇中我们来详细说明一下如何产生一条告警消息。

首先用户可以在APM系统中创建一条告警规则:

可以选择该条规则所监听的服务,产生的告警级别,告警的间隔,发送告警的渠道以及最为重要的告警接受者。

然后就需要编写具体的告警策略了,何为__告警策略__?顾名思义就是告警规则的判断依据,只有满足了所有或者任一策略,该条告警规则才会真正对接受人发起告警。

告警策略的主要由以下三部分组成:

  • 时间间隔
  • 阀值
  • 过滤条件

此三者即约束了在固定__时间间隔__内满足__过滤条件__超过__阀值__的数据,即会触发此条告警策略。

举个例子,让我们来新建一条策略:

此条策略约束了若__5分钟__内满足__过滤器__条件的数据出现的平均值超过10条,即满足此条策略。此处的过滤器中的值为用户上报数据中的部分字段,方便用户自定义监听维度。由于该字段的高度自由化,故可以定义出各种满足用户需求的告警维度,例如:

  • 报错频次
  • 卡顿频次
  • 页面数据访问频次
  • 某些接口的调用频次

而在整个告警规则中,基于一个或若干策略策略的触发,才会正真产生一条告警数据。

回到顶部