

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

# 关联配置
<a name="v10-correlations-config"></a>

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

 每个关联都配置了以下选项：

**标签**  
可视化显示的链接标签。

**描述**  
可选描述。

**源数据来源**  
显示链接的结果来源。

**结果字段**  
定义链接在可视化中的显示位置。

**目标查询**  
单击链接时运行目标查询。

**转换**  
对传递给目标查询的源数据执行的可选操作。

有关创建关联的详细信息，请参阅[创建关联](v10-correlations-create.md)。

## 源数据来源和结果字段
<a name="v10-correlations-config-source-and-result"></a>

链接显示在 Explore 可视化中，用于查看关联源数据来源的结果。为关联配置提供的结果中的某个字段（结果字段）分配链接。每种可视化都以不同的方式显示带有链接的字段。

## 目标查询
<a name="v10-correlations-config-target-query"></a>

在可视化中单击某个链接时，将运行目标查询。您可以使用所选目标数据来源的查询编辑器来指定目标查询。可在包含变量的目标查询中访问源数据结果。

### 关联变量
<a name="v10-correlations-config-variables"></a>

您可以在目标查询中使用变量来访问与查询相关的源数据。关联使用 [Grafana 变量语法](v10-dash-variable-syntax.md)。选择链接时，变量将填充源结果中的值。您可以使用两种类型的变量：
+ [字段变量](v10-panels-configure-data-links.md#v10-panels-data-link-variables)（访问字段值和标签）。
+ 关联变量（访问字段值和转换）。

示例：如果源结果包含一个名为 `employee` 的字段，则可以通过以下方式访问该字段的值：
+ 字段变量 `${__data.fields.employee}`。
+ 一个关联变量，可将上面的字段值映射到 `${employee}`。

除了将字段值映射到较短的变量名之外，还可以对现有字段应用转换来创建更多的关联变量。

仅当所有变量在选定的数据行中都有值时，关联才会创建数据链接。[全局变量](v10-dash-variable-add.md#v10-dash-variable-add-global)是该规则的例外，不需要从返回的数据中填充。这些变量由数据来源自动插值。

### 关联转换
<a name="v10-correlations-config-transformations"></a>

转换提供了一种从字段值中提取更多变量的方法。转换的输出是一组新变量，可以像任何其他变量一样访问。

有两种类型的转换：logfmt 和正则表达式。

每种转换都使用选定的字段值作为输入。转换的输出是一组基于转换类型和选项的新变量。

### Logfmt 转换
<a name="v10-correlations-config-logfmt-transformation"></a>

logfmt 转换解构一个字段值，其中包含使用 [logfmt 键/值对](https://brandur.org/logfmt)格式化的文本。每对成为一个变量，键是变量的名称。

如果您希望将转换应用于与结果字段不同的字段，则 logfmt 转换仅需要指定输入字段名称。`field = "host=srv001 endpoint=/test app=foo"` 示例输出变量：


| name | 值 | 
| --- | --- | 
| host | srv001 | 
| 端点 | /test | 
| 应用程序 | foo | 

### 正则表达式转换
<a name="v10-correlations-config-regular-expression-transformation"></a>

正则表达式转换基于提供的正则表达式解构字段值。

正则表达式转换选项：

**field**  
输入字段名称

**expression**  
正则表达式。命名捕获组将映射到与组名称匹配的变量。如果使用未命名的匹配组，则会根据第一个匹配项创建变量。该值将覆盖与输入字段匹配的变量，或者如果提供了 mapValue，则会创建一个新变量（参见下表中的示例）。

**mapValue**  
与未命名匹配组的简单正则表达式组一起使用。默认情况下，第一个匹配项会用作为输入的字段名称覆盖变量。要更改默认行为，您可以指定 mapValue 属性。提供的名称用于创建新变量。如果您的目标查询既需要精确值，又需要通过转换提取的部分值，那么这将非常有用。

示例：假设所选字段名称为 `employee`，字段值为 `John Doe`。

基于表达式和 mapValue 选项的各种输出变量：


| expression | mapValue | 输出变量 | comment | 
| --- | --- | --- | --- | 
| /\$1w\$1 (\$1w\$1)/ | - | employee=Doe | 未提供 mapValue。第一个匹配项映射到现有的字段名变量（employee）。 | 
| /(\$1w\$1) (\$1w\$1)/ | name | name=John | 第一个匹配项映射到名为 name 的新变量。 | 
| /(?\$1w\$1) (?\$1w\$1)/ | - | firstName=John, lastName=Doe | 使用命名组时，它们是输出变量的名称，而 mapValue 会被忽略。 | 
| /(?\$1w\$1) (?\$1w\$1)/ | name | firstName=John, lastName=Doe | 同上 | 