告警与通知
由于 DOG Stack 集成了 Grafana,你可以在 Grafana 中创建和管理告警。本文介绍最常用的告警操作,更丰富的告警功能请参考 Grafana Alerting 文档。
如图所示,Grafana Alert 的核心机制如下:
- 用户定义好告警规则,包括对应的查询和触发条件。
- 系统定期执行告警规则中的查询,检查是否满足触发条件。
- 如果满足触发条件,生成告警实例。
- 发送告警,可以直接发送到联系方式或者经过通知策略进行灵活的路由。

一个典型的告警规则创建和管理如下:
1.进入 Grafana Alerting 的 Alert rules 子页面,点击创建 Alert

2.定义告警的查询和触发条件
首先选择数据源比如 Doris,Builder 模式下可以用可视化方式点选生成简单的查询,Code 模式下可以输入 SQL 构建复杂的查询。示例中在 Code 模式下查询最近10分钟内 otel.otel_logs 表中 body 字段匹配到关键词 'error' 的行数。
然后在 Expression 部分选择对上面查询的结果进行进一步聚合(可选)和设置触发告警的阈值,比如示例中设置 Threshold 是上面查询的结果大于 10,而进一步聚合没有作用。
最后点击 Preview 按钮可以预览查询的结果和是否触发告警条件。比如示例中查询结果是 882,触发了告警条件(大于阈值 10),因此显示状态 1 Firing。
更多详细介绍请参考 Grafana 文档。

3.配置告警检查周期和组织方式
首先选择一个目录方便组织管理告警,然后设置告警的执行间隔,最后选择告警 Pending 时间。示例中创建了一个每个1分钟执行的 evaluation group,选择了告警 Pending 时间 None,也就是告警触发后立即进入 Firing 状态,而不用等持续一段时间比如1分钟后才发出。
更多详细介绍请参考 Grafana 文档。

4.配置告警通知方式
Grafana 支持很多场景的告警通知方式,比如 Email, Slack, Discord, PagerDuty, Webhook 等。你可以选择已有的通知方式或者创建自己的通知方式,你还可以进一步配置灵活的告警通知策略,通过 lable 进行告警通知路由。
更多详细介绍请参考 Grafana 文档。


5.配置告警通知内容
你可以定制告警通知的内容,包括 summary, description 和一个指导告警处理的 runbook URL,让接收告警的人更快理解发生了什么。

6.告警管理
告警规则创建成功后,你还可以对它们进行管理,包括暂停告警、静默通知一段时间、修改告警规则、修改告警通知方式等。
更多详细介绍请参考 Grafana 文档。
