本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
本文档主题专为支持 Grafana 10.x 版本的 Grafana 工作区而设计。
对于支持 Grafana 9.x 版本的 Grafana 工作区,请参阅使用 Grafana 版本 9。
对于支持 Grafana 8.x 版本的 Grafana 工作区,请参阅使用 Grafana 版本 8。
每个关联都配置了以下选项:
- 标签
-
可视化显示的链接标签。
- 描述
-
可选描述。
- 源数据来源
-
显示链接的结果来源。
- 结果字段
-
定义链接在可视化中的显示位置。
- 目标查询
-
单击链接时运行目标查询。
- 转换
-
对传递给目标查询的源数据执行的可选操作。
有关创建关联的详细信息,请参阅创建关联。
源数据来源和结果字段
链接显示在 Explore 可视化中,用于查看关联源数据来源的结果。为关联配置提供的结果中的某个字段(结果字段)分配链接。每种可视化都以不同的方式显示带有链接的字段。
目标查询
在可视化中单击某个链接时,将运行目标查询。您可以使用所选目标数据来源的查询编辑器来指定目标查询。可在包含变量的目标查询中访问源数据结果。
关联变量
您可以在目标查询中使用变量来访问与查询相关的源数据。关联使用 Grafana 变量语法。选择链接时,变量将填充源结果中的值。您可以使用两种类型的变量:
-
字段变量(访问字段值和标签)。
-
关联变量(访问字段值和转换)。
示例:如果源结果包含一个名为 employee
的字段,则可以通过以下方式访问该字段的值:
-
字段变量
${__data.fields.employee}
。 -
一个关联变量,可将上面的字段值映射到
${employee}
。
除了将字段值映射到较短的变量名之外,还可以对现有字段应用转换来创建更多的关联变量。
仅当所有变量在选定的数据行中都有值时,关联才会创建数据链接。全局变量是该规则的例外,不需要从返回的数据中填充。这些变量由数据来源自动插值。
关联转换
转换提供了一种从字段值中提取更多变量的方法。转换的输出是一组新变量,可以像任何其他变量一样访问。
有两种类型的转换:logfmt 和正则表达式。
每种转换都使用选定的字段值作为输入。转换的输出是一组基于转换类型和选项的新变量。
Logfmt 转换
logfmt 转换解构一个字段值,其中包含使用 logfmt 键/值对
如果您希望将转换应用于与结果字段不同的字段,则 logfmt 转换仅需要指定输入字段名称。field = "host=srv001 endpoint=/test
app=foo"
示例输出变量:
名称 | 值 |
---|---|
host | srv001 |
端点 | /test |
应用程序 | foo |
正则表达式转换
正则表达式转换基于提供的正则表达式解构字段值。
正则表达式转换选项:
- field
输入字段名称
- expression
-
正则表达式。命名捕获组将映射到与组名称匹配的变量。如果使用未命名的匹配组,则会根据第一个匹配项创建变量。该值将覆盖与输入字段匹配的变量,或者如果提供了 mapValue,则会创建一个新变量(参见下表中的示例)。
- mapValue
-
与未命名匹配组的简单正则表达式组一起使用。默认情况下,第一个匹配项会用作为输入的字段名称覆盖变量。要更改默认行为,您可以指定 mapValue 属性。提供的名称用于创建新变量。如果您的目标查询既需要精确值,又需要通过转换提取的部分值,那么这将非常有用。
示例:假设所选字段名称为 employee
,字段值为 John Doe
。
基于表达式和 mapValue 选项的各种输出变量:
expression | mapValue | 输出变量 | comment |
---|---|---|---|
/\w+ (\w+)/ |
- | employee=Doe |
未提供 mapValue。第一个匹配项映射到现有的字段名变量(employee )。 |
/(\w+) (\w+)/ |
名称 | name=John |
第一个匹配项映射到名为 name 的新变量。 |
/(?\w+) (?\w+)/ |
- | firstName=John , lastName=Doe |
使用命名组时,它们是输出变量的名称,而 mapValue 会被忽略。 |
/(?\w+) (?\w+)/ |
名称 | firstName=John , lastName=Doe |
同上 |