

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

# 已记录查询
<a name="recorded-queries"></a>

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

您可以通过使用已记录查询按设定的间隔拍摄数据点的快照，从而查看一段时间内的趋势。这可以让您深入了解历史趋势。

对于不返回时间序列的插件，绘制历史数据可能会很有用。例如，您可能想通过查询**ServiceNow**来查看请求响应时间的历史记录，但它只能返回当前的时间点指标。

## 已记录查询是如何运作的
<a name="how-recorded-queries-work"></a>

已记录查询仅适用于后端数据来源插件。有关详细信息，请参阅[后端数据来源插件](https://grafana.com/tutorials/build-a-data-source-backend-plugin/)。您可以记录三种类型的查询：
+ 单行和列：返回单行和单列的查询。
+ 行计数：返回有意义的行计数的查询。
+ 表达式：任意表达式。要了解有关创建和使用表达式的更多信息，请参阅 [Expressions](https://grafana.com/docs/grafana/next/panels-visualizations/query-transform-data/expression-queries/)。

创建或启用已记录查询后，它会立即创建快照并继续按设定的时间间隔创建快照。当已记录查询被禁用、删除或 Grafana 未运行时，该查询会停止拍摄快照。通过运行已记录查询并将每个结果转发到启用了远程写入功能的 Prometheus 实例，在后端收集数据点。

**注意**  
必须先配置 Prometheus 数据来源并将其与远程写入目标相关联，然后才能使用已记录查询。

## 创建已记录查询
<a name="create-a-recorded-query"></a>

要创建已记录查询，请完成以下步骤：

1. 在编辑面板中查找或创建要在控制面板上记录的查询。该查询只能返回一行和一列。如果返回的结果更多，您仍然可以使用*计数*选项记录返回的结果数。查询的数据来源必须是后端数据来源。表达式可用于聚合来自时间序列查询的数据。要了解有关创建和使用表达式的更多信息，请参阅[表达式](https://grafana.com/docs/grafana/next/panels-visualizations/query-transform-data/expression-queries/)。

1. 选择位于查询编辑器中的**记录查询**菜单。

1. 输入已记录查询信息。除非另有说明，否则所有字段均为必填字段。
   + 名称：已记录查询的名称。
   + 描述：（可选）描述您希望已记录查询在已记录查询列表中的显示方式。
   + 间隔：拍摄快照的时间间隔。该间隔从您创建已记录查询时开始，如果您暂停或删除已记录查询，则间隔停止。有关暂停和删除已记录查询的更多信息，请参阅[管理已记录查询](https://grafana.com/docs/grafana/latest/enterprise/recorded-queries/#manage-recorded-queries)。
   + 范围：查询的相对时间范围。如果您选择的范围为 30m，间隔为 1h，则查询将在过去 30 分钟内每小时拍摄一次快照。
   + 对查询结果计数：如果您想对查询返回的行数进行计数，请启用此选项。如果此选项处于关闭状态，则您的查询必须返回一行，其中包含一个值。

1. 选择测试已记录查询按钮，测试您的已记录查询。

1. 选择**开始记录查询**。

## 添加已记录查询
<a name="Adding-a-recorded-query"></a>

您可以将现有的已记录查询添加到控制面板中的面板。对于您添加的每个已记录查询，都会创建一个 Prometheus 查询：`generated_recorded_query_name{id="generated_id", name="recorded query name"}`。从 Prometheus 创建的查询会返回所有已记录查询中收集的快照。

1. 在控制面板中导航到要在其中添加已记录查询的面板。

1. 选择 **\+ 已记录查询**菜单。

1. 如果要按数据来源筛选已记录查询，请从“按数据来源筛选”下拉菜单中选择一个数据来源。

1. 在已记录查询上选择**添加**菜单，将其添加到面板中。

在将已记录查询添加到面板后，面板数据来源将变为 `-- Mixed --`。您的已记录查询由 `Prometheus` 查询表示，其中名称标签与已记录查询名称相匹配。要了解有关 Prometheus 数据来源的更多信息，请参阅 [Prometheus](https://grafana.com/docs/grafana/latest/datasources/prometheus/)。

如果在添加已记录查询后，出现了包含 `-- Mixed --` 数据来源而不是 Prometheus 数据来源的查询，则可能意味着没有为已记录查询设置 `Prometheus ` 远程写入目标。要设置远程写入点，请参阅[远程写入目标](https://grafana.com/docs/grafana/latest/enterprise/recorded-queries/#remote-write-target)。

## 使用已记录查询
<a name="using-a-recorded-query"></a>

要使用已记录查询，请创建一个查询并将其添加到控制面板中。之后，可以在**已记录查询**选项卡的**首选项**中对其进行管理。

## 管理已记录查询
<a name="managing-recorded-queries"></a>

可以从“首选项”的“已记录查询”选项卡中暂停或激活已记录查询，也可以删除已记录查询。删除已记录查询会将其从 Grafana 中移除，但在 Prometheus 中收集的信息仍然存在。在恢复已记录查询之前，暂停已记录查询将不再收集新的数据点。

## 远程写入目标
<a name="remote_write_target"></a>

远程写入目标是写入已记录查询数据点的 **Prometheus** 数据来源。您需要启用了远程写入功能的 Prometheus，而且您需要为该 Prometheus 创建一个数据来源。

要编辑远程写入目标，请在**首选项**的**已记录查询**选项卡的控制台菜单中选择**编辑远程写入目标**。选择已启用远程写入功能 **Prometheus** 数据来源，然后输入远程写入路径。