关联
每个关联都配置了以下选项
- 标签
- 链接标签,显示在可视化中
- 描述
- 可选描述
- 源数据源
- 显示链接结果的来源
- 结果字段
- 定义链接在可视化中的显示位置
- 目标查询
- 单击链接时运行的目标查询
- 转换
- 传递给目标查询的包含在源数据中的可选操作
了解如何使用管理页面或通过provisioning创建关联。
源数据源和结果字段
Explore 可视化中会显示来自关联源数据源的结果的链接。链接分配给关联配置中提供的结果的其中一个字段(即结果字段)。每种可视化以不同的方式显示带有链接的字段(参见日志面板中的关联和表格中的关联)。
目标查询
单击可视化中的链接时会运行目标查询。您可以使用所选目标数据源的查询编辑器指定目标查询。源数据结果可以通过变量在目标查询中访问。
关联变量
您可以在目标查询中使用变量来访问与查询相关的源数据。关联使用 Grafana 变量语法。单击链接时,变量会填充来自源结果的值。您可以使用以下两种类型的变量
- 字段变量(允许访问字段值和标签)
- 关联变量(允许访问字段值和转换)
示例:如果源结果包含一个名为“employee”的字段,可以通过以下方式访问该字段的值
- 一个字段变量 ${__data.fields.employee}
- 一个关联变量,将上述字段值映射到 ${employee}
除了将字段值映射到较短的变量名外,还可以通过对现有字段应用转换来创建更多关联变量
有关更多详细信息,请参阅在关联中使用变量和转换中的示例。
关联仅在选定的数据行中所有变量都有值时创建数据链接。全局变量是此规则的例外,不需要从返回的数据中填充。这些变量由数据源自动插值。
关联转换
关联提供了一种从字段值中提取更多变量的方法。转换的输出是一组新变量,可以像任何其他变量一样访问这些变量。
有两种类型的转换:logfmt 和正则表达式。
每个转换都使用选定的字段值作为输入。转换的输出是一组新变量,基于转换的类型和选项。
有关更多详细信息,请参阅在关联中使用变量和转换中的示例。
Logfmt 转换
logfmt 转换解构包含使用 logfmt 键值对格式化文本的字段值。每对键值对成为一个变量,其中键即为变量名。
logfmt 转换仅在您希望转换应用于结果字段之外的其他字段时,才需要指定输入字段名。示例输出变量(对于字段 = “host=srv001 endpoint=/test app=foo”)
名称 | 值 |
---|---|
host | srv001 |
endpoint | /test |
app | foo |
正则表达式转换
正则表达式转换根据提供的正则表达式解构字段值。
正则表达式转换选项
- 字段
- 输入字段名
- 正则表达式。命名捕获组映射到与组名匹配的变量。如果使用非命名匹配组,则从第一次匹配创建一个变量。如果提供了 mapValue,则该值会覆盖与输入字段匹配的变量,或者创建一个新变量(请查看下面的示例)
- mapValue
- 与没有命名匹配组的简单正则表达式组一起使用。默认情况下,第一次匹配会覆盖使用作输入的字段名变量。要更改此默认行为,可以指定 mapValue 属性。提供的名称用于创建新变量。如果您的目标查询既需要精确值,又需要通过转换提取的部分值,这会很有用。
- 示例:假设选定的字段名为“employee”,字段值为“John Doe”。
基于表达式和 mapValue 选项的各种输出变量
输出变量
正则表达式。命名捕获组映射到与组名匹配的变量。如果使用非命名匹配组,则从第一次匹配创建一个变量。如果提供了 mapValue,则该值会覆盖与输入字段匹配的变量,或者创建一个新变量(请查看下面的示例) | 与没有命名匹配组的简单正则表达式组一起使用。默认情况下,第一次匹配会覆盖使用作输入的字段名变量。要更改此默认行为,可以指定 mapValue 属性。提供的名称用于创建新变量。如果您的目标查询既需要精确值,又需要通过转换提取的部分值,这会很有用。 | 注释 | /\w+ (\w+)/ |
---|---|---|---|
employee=Doe | - | 未提供 mapValue。第一次匹配映射到现有字段名变量 (employee) | /(\w+) (\w+)/ |
name=John | 名称 | 第一次匹配映射到一个名为“name”的新变量 | /(? |
firstName=John, lastName=Doe | - | 使用命名组时,它们是输出变量的名称,且 mapValue 被忽略。 | 同上 |
firstName=John, lastName=Doe | 名称 | 使用命名组时,它们是输出变量的名称,且 mapValue 被忽略。 | 本页是否有帮助? |