

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 创建 Grafana Mimir 或 Loki 管理的记录规则
<a name="v9-alerting-managerules-mimir-loki-recording"></a>

****  
本文档主题专为支持 **Grafana 9.x 版本**的 Grafana 工作区而设计。  
对于支持 Grafana 10.x 版本的 Grafana 工作区，请参阅[使用 Grafana 版本 10](using-grafana-v10.md)。  
对于支持 Grafana 8.x 版本的 Grafana 工作区，请参阅[使用 Grafana 版本 8](using-grafana-v8.md)。

您可以为外部 Grafana Mimir 或 Loki 实例创建和管理记录规则。记录规则会预先计算经常需要的表达式或计算成本高昂的表达式，并将结果保存为一组新的时间序列。查询这个新时间序列的速度更快，特别是对于控制面板而言，因为控制面板每次刷新时都会查询相同的表达式。

**先决条件**

对于 Grafana Mimir 和 Loki 数据来源，通过配置其各自的服务启用 ruler API。
+ **Loki**：`local` 规则存储类型是 Loki 数据来源的默认设置，仅支持查看规则。要编辑规则，请配置其他存储类型之一。
+ **Grafana Mimir**：将数据来源配置为指向 Grafana Mimir 时，请使用旧前缀 `/api/prom`，而不是 `/prometheus`。Prometheus 数据来源同时支持 Grafana Mimir 和 Prometheus，并且 Grafana 预期 Query API 和 Ruler API 使用相同的 URL。您不能为 Ruler API 提供单独的 URL。

**注意**  
如果您不想管理特定 Loki 或 Prometheus 数据来源的警报规则，请转到其设置，并清除**通过警报用户界面管理警报**复选框。

**添加 Grafana Mimir 或 Loki 管理的记录规则**

1. 在 Grafana 控制台的 Grafana 菜单中，选择**警报**（铃铛）图标，打开列出现有警报的**警报**页面。

1. 选择**创建警报规则**。

1. 在**步骤 1** 中，添加规则类型、规则名称和存储位置，如下所示：
   + 选择 **Mimir 或 Loki 记录规则**选项。
   + 在**规则名称**中，添加描述性名称。此名称将显示在警报规则列表中。这也是根据此规则创建的每个警报实例的 `alertname` 标签。
   + 从**选择数据来源**下拉列表中，选择 Prometheus 或 Loki 数据来源。
   + 从**命名空间**下拉列表中，选择现有的规则命名空间。否则，选择**新增**，然后输入名称以新建。命名空间可以包含一个或多个规则组，并且只能用于组织目的。有关更多信息，请参阅 [Cortex 或 Loki 规则组和命名空间](alert-rules.md#alert-rule-groups)。
   + 从**组**下拉列表中，选择所选命名空间内的现有群组。否则，选择**新增**，然后输入名称以新建。新创建的规则会附加到该组的末尾。组内的规则以固定时间间隔按顺序运行，评估时间相同。

1. 在**步骤 2** 中，添加要评估的查询。

   该值可以是 PromQL 或 LogQL 表达式。如果评估结果中至少有一个序列的值大于 0，则规则会启动警报。会为每个序列创建一个警报。

1. 在**步骤 3** 中，添加与规则相关联的其他元数据。
   + 添加描述和摘要以自定义警报消息。使用 [警报规则的注释和标签](alert-rules.md#alert-rule-labels) 中的指南。
   + 添加 Runbook 网址、面板、仪表板和警报 IDs。
   + 添加自定义标签。

1. 选择**保存**以保存规则，或者选择**保存并退出**，以保存规则并返回**警报**页面。