本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建 Grafana 托管警报规则
本文档主题专为支持 Grafana 9.x 版本的 Grafana 工作空间而设计。
有关支持 Grafana 8.x 版本的 Grafana 工作空间,请参阅。在 Grafana 版本 8 中工作
Grafana 允许您创建警报规则,用于查询一个或多个数据源,减少或转换结果,并将它们相互比较或与固定阈值进行比较。当它们运行时,Grafana 会向联络点发送通知。
添加 Grafana 托管规则
-
在 Grafana 控制台的 Grafana 菜单中,选择警报(铃铛)图标以打开列出现有警报的警报页面。
-
选择 “新建警报规则”。
-
在步骤 1 中,添加规则名称、类型和存储位置,如下所示:
-
在规则名称中,添加描述性名称。此名称显示在警报规则列表中。它也是根据此规则创建的每个警报实例的
alertname
标签。 -
从规则类型下拉列表中,选择 Grafana 管理的警报。
-
从 “文件夹” 下拉列表中,选择要存储规则的文件夹。如果未选择文件夹,则规则将存储在该
General
文件夹中。要创建文件夹,请选择下拉列表并输入新的文件夹名称。
-
-
在步骤 2 中,添加要计算的查询和表达式。
-
在步骤 3 中,添加条件。
-
从 “条件” 下拉列表中,选择要启动警报规则的查询或表达式。
-
在 “评估频率” 中,指定评估频率。必须是 10 秒的倍数。例如
1m
、30s
。 -
在评估期限中,指定在启动警报之前条件必须为真的时长。
注意
违反条件后,警报将进入
Pending
状态。如果在指定的持续时间内仍未达到该条件,则警报将转换为Firing
状态。如果不再满足,它将恢复到Normal
状态。 -
在 “不配置数据和错误处理” 中,配置缺少数据时的警报行为。使用中的指南。不处理任何数据或错误案例
-
选择 “预览警报”,查看此时运行查询的结果。预览不包括任何数据和错误处理条件。
-
-
在步骤 4 中,添加与规则关联的其他元数据。
-
添加描述和摘要以自定义警报消息。请使用中的指南标签和注释。
-
添加 Runbook 网址、面板、仪表板和警报 ID。
-
添加自定义标签。
-
-
选择 “保存” 以保存规则,或者选择 “保存并退出” 以保存规则并返回 “警报” 页面。
创建规则后,您可以为规则创建通知。有关通知的更多信息,请参阅 管理您的警报通知。
单一规则和多维规则
对于 Grafana 托管警报规则,您可以创建具有经典条件的规则,也可以创建多维规则。
单维规则(经典条件)
使用经典条件表达式创建规则,该规则在满足条件时启动单个警报。对于返回多个系列的查询,Grafana 不会跟踪每个系列的警报状态。因此,即使满足多个系列的警报条件,Grafana 也只发送一个警报。
有关如何设置表达式格式的更多信息,请参阅 Grafana 文档中的表达式
多维规则
要为查询中返回的每个系列生成单独的警报实例,请创建多维规则。
注意
由多维规则生成的每个警报实例都计入您的警报总配额。当您达到警报配额时,不会对规则进行评估。有关多维规则配额的更多信息,请参阅已达到配额错误。
要根据单个规则创建多个实例,请使用Math
Reduce
、或Resample
表达式来创建多维规则。例如,您可以:
-
为每个查询添加一个
Reduce
表达式,将所选时间范围内的值聚合为单个值。(使用数字数据的规则不需要)。 -
添加包含规则条件的
Math
表达式。如果规则不应启动警报,则查询或 reduce 表达式已经返回 0,如果规则不应启动警报,则无需返回正数。一些示例:
-
$B > 70
如果它应该在 B 查询/表达式的值大于 70 时启动警报。 -
$B < $C * 100
以防如果 B 的值小于 C 的值乘以 100,则应启动警报。如果要比较的查询的结果中有多个系列,则如果不同查询的系列具有相同的标签,或者一个是另一个系列的子集,则会匹配来自不同查询的序列。
-
注意
Grafana 不支持使用模板变量的警报查询。有关更多信息,请访问社区页面。设置警报时,警报查询中不支持模板变量
多维规则的性能注意事项
每个警报实例都计入警报配额。创建的实例数超过警报配额所能容纳的实例数的多维规则不会被评估并返回配额错误。有关更多信息,请参阅已达到配额错误。
多维警报可能会对 Grafana 工作空间的性能以及数据源的性能产生重大影响,因为 Grafana 会查询这些警报以评估您的警报规则。在您尝试优化监控系统的性能时,以下注意事项可能会有所帮助。
-
规则评估频率 -警报规则的 Ev aluate Every 属性控制规则评估的频率。我们建议使用可接受的最低评估频率。
-
结果集基数-使用规则创建的警报实例的数量会影响其性能。假设您正在监控队列中每个 VM 上每个 API 路径的 API 响应错误。该集合的基数是路径数乘以虚拟机数。例如,您可以通过监控每台虚拟机而不是每个 VM 的每条路径的错误总数来降低结果集的基数。
-
查询的复杂性-数据源可以快速处理和响应的查询消耗的资源更少。尽管这一考虑因素不如上面列出的其他注意事项那么重要,但如果您尽可能减少了这些注意事项,那么查看单个查询的性能可能会有所不同。您还应该意识到评估这些规则会对您的数据源产生性能影响。警报查询通常是监控数据库处理的绝大多数查询,因此影响 Grafana 实例的相同负载因素也会影响它们。
已达到配额错误
在一个工作空间内可以拥有的警报实例数量有配额。当达到该数字时,您将无法再在该工作区中创建新的警报规则。使用多维警报,警报实例的数量可能会随着时间的推移而变化。
在处理警报实例时,请务必记住以下几点。
-
如果您只创建单维规则,则每条规则都是一个警报实例。您可以在单个工作空间中创建与警报实例配额相同数量的规则,仅此而已。
-
多维规则会创建多个警报实例,但是,在对警报实例进行评估之前,其数量是未知的。例如,如果您创建了跟踪 Amazon EC2 实例的 CPU 使用率的警报规则,则创建时可能有 50 个 EC2 实例(因此还有 50 个警报实例),但是如果您在一周后再添加 10 个 EC2 实例,则下一次评估将有 60 个警报实例。
警报实例的数量是在您创建多维警报时评估的,您无法创建会立即超过警报实例配额的警报实例。由于警报实例的数量可能会发生变化,因此每次评估您的规则时都会检查您的配额。
-
在规则评估时,如果某条规则导致您超出警报实例的配额,则只有在对警报规则进行更新,使警报实例总数低于服务配额后,才会评估该规则。发生这种情况时,您会收到一条警报通知,告知您已达到配额(该通知使用正在评估的规则的通知策略)。通知中包含带有值的
Error
注释QuotaReachedError
。 -
导致
QuotaReachedError
停止评估的规则。只有在进行更新并且更新后的评估本身不会导致 a 时才会恢复评估QuotaReachedError
。未评估的规则在 Grafana 控制台中显示 “已达到配额” 错误。 -
您可以通过删除警报规则或编辑多维警报来减少警报实例的数量(例如,为每台虚拟机设置一个错误警报,而不是在虚拟机中为每个 API 设置一个错误警报)。
-
要恢复评估,请更新警报并保存。您可以对其进行更新以减少警报实例的数量,或者如果您进行了其他更改以减少警报实例的数量,则可以将其保存,而不做任何更改。如果可以恢复,那就是。如果它导致另一个
QuotaReachedError
,则无法将其保存。 -
当保存警报并在不超过警报配额的情况下恢复评估时,“已达到配额” 错误可能会在一段时间内继续在 Grafana 控制台中显示(直到其评估间隔),但是,警报规则评估确实会开始,如果达到规则阈值,则会发送警报。
-
有关警报配额以及其他配额的详细信息,请参阅亚马逊托管 Grafana 服务配额。
不处理任何数据或错误案例
选择在缺少数据或出现错误时如何处理警报行为的选项。
下表列出了用于不处理任何数据的选项。
“无数据” 选项 | 行为 |
---|---|
没有数据 |
|
提示 |
将警报规则状态设置为 |
OK |
将警报规则状态设置为 |
下表列出了处理错误案例的选项。
错误或超时选项 | 行为 |
---|---|
提示 |
将警报规则状态设置为 |
OK |
将警报规则状态设置为 |
错误 |
|