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