转换函数 - Amazon Managed Grafana

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

转换函数

本文档主题专为支持 Grafana 版本 10.x 的 Grafana 工作空间而设计。

有关支持 Grafana 9.x 版本的 Grafana 工作空间,请参阅。在 Grafana 版本 9 中工作

有关支持 Grafana 8.x 版本的 Grafana 工作空间,请参阅。在 Grafana 版本 8 中工作

您可以对数据执行以下转换。

从计算中添加字段

使用此转换可以添加一个根据其他两个字段计算得出的新字段。每次转换都允许您添加一个新字段。

  • 模式-选择模式:

    • 减少行-对选定字段的每一行分别应用所选计算。

    • 二进制运算-对两个选定字段中单行中的值应用基本的二进制运算(例如,求和或乘法)。

    • 一元运算-对选定字段中单行中的值应用基本的一元运算。可用的操作有:

      • 绝对值 (abs)-返回给定表达式的绝对值。它以正数表示与零的距离。

      • 自然指数 (exp) — 返回 e 提高到给定表达式的次方。

      • 自然对数 (ln)-返回给定表达式的自然对数。

      • Floor(floor)-返回小于或等于给定表达式的最大整数。

      • 上限 (ceil) — 返回大于或等于给定表达式的最小整数。

    • 累积函数-对当前行和前面所有行应用函数。

      • 总计-计算不超过当前行的累积总数。

      • 值-计算当前行之前的均值(包括当前行)。

    • 窗口函数-应用窗口函数。窗口可以是尾随的,也可以是中的。如果是尾随窗口,则当前行将是窗口中的最后一行。如果窗口居中,则窗口将以当前行居中。对于均匀大小的窗口,窗口将在当前行和上一行之间居中。

      • 值-计算移动均值或运行平均值。

      • — 计算移动标准差。

      • 方差-计算移动方差。

    • 行索引-插入带有行索引的字段。

  • 字段名称-选择要在新字段的计算中使用的字段名称。

  • 计算-如果您选择减少行模式,则会出现 “计算” 字段。选择该字段可查看可用于创建新字段的计算选项列表。有关可用计算的信息,请参阅计算类型

  • 操作-如果您选择二进制运算或一元运模式,则会出现 “操作” 字段。这些字段允许您对两个选定字段中的单行值进行基本的数学运算。也可以使用数值进行二进制运算。

  • 作为百分位数-如果选择行索引模式,则会出现 “作为百分位数” 开关。此开关允许您将行索引转换为总行数的百分比。

  • 别名-(可选)输入新字段的名称。如果将此字段留空,则该字段的命名将与计算结果相匹配。

  • 替换所有字段-(可选)如果您想在可视化中隐藏所有其他字段并仅显示您的计算字段,请选择此选项。

注意

累积函数窗口函数是最新发布的公共预览版。Grafana Labs 提供的支持有限,在该功能正式推出之前,可能会发生重大更改。

连接字段

连接字段

使用此变换可将所有帧中的所有字段合并为一个结果。

例如,如果您有单独的查询来检索温度和正常运行时间数据(查询 A)以及空气质量指数和错误信息(查询 b),则应用串联变换会生成一个合并的数据框,其中所有相关信息都在一个视图中。

考虑以下两个。

查询 A:

临时文件 正常运行时间

15.4

1230233

查询 B:

AQI 错误

3.2

5

连接字段后,数据框将是:

临时文件 正常运行时间 AQI 错误

15.4

1230233

3.2

5

这种转换简化了合并来自不同来源的数据的过程,为分析和可视化提供了全面的视图。

来自查询结果的 Config

来自查询结果的 Config

使用此转换可以选择一个查询并提取标准选项,例如最小值、最大值、单位阈值,然后将其应用于其他查询结果。这样可以根据特定查询返回的数据进行动态可视化配置。

Options

  • Config query-选择返回要用作配置的数据的查询。

  • 应用于-选择应应用配置的字段或系列。

  • 应用于选项-根据您在 “应用于” 中的选择,指定字段类型或使用字段名正表达式。

字段映射表

在配置选项下方,您将找到字段映射表。此表列出了在配置查询返回的数据中找到的所有字段,以及 “使用为” 和 “选择” 选项。它可以控制将字段映射到配置属性,对于多行,它允许您选择要选择的值。

以下示例显示了用作字段配置的输入查询和查询。

输入查询

时间

1626178119127

10

1626178119129

30

Config 查询

时间

1626178119127

100

1626178119129

100

输出查询(与输入相同,但现在值字段上有配置)

时间 值(配置:最大值 =100)

1626178119127

10

1626178119129

30

现在,每个字段都设置了最大配置选项。诸如 “最小”、“最大”、“单位” 和 “阈值” 之类的选项是字段配置的一部分。如果设置了这些选项,则可视化将使用它们,而不是在面板编辑器选项窗格中手动配置的任何选项。

值映射

您还可以将查询结果转换为值映射。使用此选项,配置查询结果中的每一行都定义一个值映射行。请参阅以下示例。

Config 查询结果

文本 颜色

L

蓝色

M

绿色

H

red

在字段映射中,指定:

字段 用作 Select

值映射/值

所有值

文本

值映射/文本

所有值

颜色

值映射/颜色

所有值

Grafana 根据您的查询结果构建值映射,并将其应用于真实的数据查询结果。您应该会看到根据配置查询结果映射和着色的值。

转换字段类型

使用此转换来修改指定字段的字段类型。

此转换有以下选项:

  • 字段-从可用字段中选择。

  • as — 选择 FieldType 要转换为的。

    • 数字 — 尝试使值变为数字。

    • 字符串 — 将使值成为字符串。

    • 时间 — 尝试将值解析为时间。

      • 将显示一个选项,用于通过字符串将 a 指定 DateFormat 为输入,例如yyyy-mm-ddDD MM YYYY hh:mm:ss

    • 布尔值 — 将使值变为布尔值。

    • 枚举 — 将使值变为枚举。

      • 将显示一个用于管理枚举的表格。

    • 其他 — 尝试将值解析为 json。

例如,考虑以下查询,通过选择时间字段作为时间和日期格式为,可以对其进行修改YYYY

时间 标记

2017-07-01

以上

25

2018-08-02

下面

22

2019-09-02

下面

29

2020-10-04

以上

22

结果:

时间 标记

2017-01-01 00:00:00

以上

25

2018-01-01 00:00:00

下面

22

2019-01-01 00:00:00

下面

29

2020-01-01 00:00:00

以上

22

这种转换使您可以灵活地调整数据类型,从而确保可视化效果的兼容性和一致性。

提取字段

使用此转换可以选择数据源并从中提取不同格式的内容。此转换包含以下字段:

  • 来源-选择数据源的字段。

  • 格式-选择以下选项之一:

    • JSON-解析来自源代码的 JSON 内容。

    • 键+值对 — 解析格式a=bc:d源内容的内容。

    • 自动-自动发现字段。

  • 替换所有字段-(可选)选择此选项可隐藏所有其他字段,并在可视化中仅显示您的计算字段。

  • Keep Tim e-(可选)仅当 “替换所有字段” 为真时才可用。在输出中保留时间字段。

考虑以下数据集:

数据集示例

Timestamp json_data

163667874000000000000

{“值”: 1}

163667868000000000000

{“值”: 5}

1636678620000000000

{“值”:12}

您可以使用以下配置来准备要由 “时间序列” 面板使用的数据:

  • 来源:json_data

  • 格式:JSON

    • 字段:value

    • 别名:my_value

  • 替换所有字段:true

  • 保持时间:没错

这将生成以下输出:

转换后的数据

Timestamp 我的价值

163667874000000000000

1

163667868000000000000

5

1636678620000000000

12

通过这种转换,您可以通过各种方式提取和格式化数据。您可以根据自己的特定数据需求自定义提取格式。

从资源中查找字段

使用此转换通过从外部源查找其他字段来丰富字段值。

此转换包含以下字段:

  • 字段-从数据集中选择一个文本字段。

  • 查找-从国家美国各州机场中选择。

注意

此转换仅支持空间数据。

例如,如果你有这样的数据:

数据集示例

位置

AL

0

AK

10

亚利桑那州

5

阿肯色州

1

在某个地方

5

使用此配置:

  • 字段:位置

  • 查找:美国各州

你会得到以下输出:

转换后的数据

位置 ID 名称 Lng Lat
AL AL Alabama -80.891064 12.448457 0
AK AK 阿肯色州 -100.891064 24.448457 10
亚利桑那州 5
阿肯色州 1
在某个地方 5

这种转换允许您通过从外部来源获取更多信息来增强数据,从而为分析和可视化提供更全面的数据集。

按查询 RefID 筛选数据

使用此转换可在包含多个查询的面板中隐藏一个或多个查询。

Grafana 以深灰色文本显示查询标识字母。选择要切换筛选的查询标识符。如果查询信是白色的,则会显示结果。如果查询信是深色的,则结果将被隐藏。

注意

这种转换不适用于 Graphite,因为此数据源不支持将返回的数据与查询相关联。

按值筛选数据

使用此转换可以直接在可视化中有选择地筛选数据点。此转换提供了根据应用于选定字段的一个或多个条件来包含或排除数据的选项。

如果您的数据源不按值进行本地筛选,则此转换非常有用。如果您使用的是共享查询,也可以使用它来缩小要显示的值。

所有字段的可用条件为:

  • 正则表达式 — 匹配正则表达式。

  • 为空 — 如果值为空,则匹配。

  • 不为空 — 如果值不为空,则匹配。

  • 等于 — 如果值等于指定值,则匹配。

  • 不同-如果值与指定值不同,则匹配。

数字字段的其他可用条件包括:

  • 大于-如果该值大于指定值,则匹配。

  • L@@ ow er — 如果该值小于指定值,则匹配。

  • 大于或等于 — 如果值大于或等于,则匹配。

  • 小于或等于 — 如果值小于或等于,则匹配。

  • 范围 — 匹配指定的最小值和最大值(包括最小值和最大值)之间的范围。

考虑以下数据集:

时间 Temperature 海拔
2020-07-07 11:34:23 32 101
2020-07-07 11:34:22 28 125
2020-07-07 11:34:21 26 110
2020-07-07 11:34:20 23 98
2020-07-07 10:32:24 31 95
2020-07-07 10:31:22 20 85
2020-07-07 09:30:57 19 101

如果包括温度低于 30°C 的数据点,则配置将如下所示:

  • 过滤器类型:'包含'

  • 条件:“温度” 与 “低于” “30” 匹配的行

您将得到以下结果,其中仅包括低于 30°C 的温度:

转换后的数据

时间 Temperature 海拔
2020-07-07 11:34:22 28 125
2020-07-07 11:34:21 26 110
2020-07-07 11:34:20 23 98
2020-07-07 10:31:22 20 85
2020-07-07 09:30:57 19 101

您可以向筛选器中添加多个条件。例如,您可能只想在海拔高度大于 100 时才包含数据。为此,请将该条件添加到以下配置中:

  • 筛选器类型:“包含” 符合 “全部匹配” 条件的行

  • 条件 1:“温度” 与 “低于” 30 的匹配行

  • 条件 2:“海拔” 与 “大于” 100 的匹配 “大于” 的行

当您有多个条件时,可以选择是否要将操作(包括/排除)应用于匹配所有条件的行还是匹配您添加的任何条件的行。

在上面的示例中,我们之所以选择 Match all,是因为我们想包括温度低于 30°C 海拔高于 100 的行。如果我们想包括温度低于 30°C 海拔高于 100 的行,则可以选择 Match any。这将包括原始数据中的第一行,其温度为32°C(与第一个条件不匹配),但海拔为101(与第二个条件相匹配),因此将其包括在内。

无效或配置不完整的条件将被忽略。

这种多功能的数据筛选转换允许您根据特定条件有选择地包含或排除数据点。自定义标准以定制您的数据呈现方式,以满足您独特的分析需求。

按名称筛选字段

使用此转换可以移除部分查询结果。筛选字段名称的方法有三种:

  • 输入正则表达式。

  • 手动选择包含的字段。

  • 使用仪表板变量。

使用正则表达式

使用正则表达式进行筛选时,会包括与正则表达式匹配的字段名称。例如,使用正则表达式'prod.*'将仅返回以开头的字段 prod

正则表达式可以包含使用语法插值的仪表板变量。${variableName}

手动选择包含的字段

选择或取消选择字段名称以将其从结果中删除。如果还包括正则表达式,则会包括与该表达式匹配的字段,即使这些字段未被选中。

使用仪表板变量

选择 “来自变量” 以允许您选择用于包含字段的仪表板变量。通过设置具有多个选项的仪表板变量,可以在多个可视化中显示相同的字段。

通过这种转换,您可以灵活地定制查询结果,将重点放在进行有效分析和可视化所需的特定字段上。

格式化字符串

使用此转换来自定义字符串字段的输出。此转换包含以下字段:

  • 大@@ -将整个字符串格式化为大写字符。

  • 小@@ -将整个字符串格式化为小写字符。

  • 句子大小写-将字符串的第一个字符格式化为大写。

  • 标题大小写 — 将字符串中每个单词的第一个字符设置为大写格式。

  • Pascal cas e — 将字符串中每个单词的第一个字符格式化为大写,并且不包括单词之间的空格。

  • 驼峰大小写 — 将字符串中每个单词的第一个字符设置为大写格式,但第一个单词除外,并且不包括单词之间的空格。

  • Snake cas e — 将字符串中的所有字符设置为小写格式,并在单词之间使用下划线而不是空格。

  • Kebab case — 将字符串中的所有字符设置为小写格式,并在单词之间使用破折号而不是空格。

  • Trim-从字符串中删除所有前导和尾随空格。

  • Substrin g-使用指定的开始和结束位置返回字符串的子字符串。

这种转换提供了一种便捷的方法来标准化和定制字符串数据的呈现方式,以实现更好的可视化和分析。

注意

此转换目前处于公开预览阶段。Grafana Labs 提供的支持有限,在该功能正式推出之前,可能会发生重大更改。

格式化时间

使用此转换来自定义时间字段的输出。可以使用 Moment.js 格式字符串对输出进行格式化。例如,如果您只想显示时间字段中的年份,则可以使用格式字符串 “YYYY” 来显示日历年(例如,1999 年或 2012 年)。

转型前:

Timestamp 事件
163667874000000000000 系统启动
163667868000000000000 用户登录
1636678620000000000 数据已更新

涂上 'YYYY-MM-DD HH: mm: ss' 之后:

Timestamp 事件
2021-11-12 14:25:40 系统启动
2021-11-12 14:24:40 用户登录
2021-11-12 14:23:40 数据已更新

这种转换允许您在可视化中定制时间表示形式,从而在显示时态数据时提供灵活性和精确度。

注意

这种转换作为 Alpha 功能可在与 Grafana v10 兼容的工作空间中使用。

Group by (分组依据)

此转换按指定的字段(列)值对数据进行分组,并对每个组进行计算。选择以查看计算选项列表。

以下是原始数据的示例。

时间 Server ID CPU 温度 服务器状态

7/7/2020 上午 11:34:20

服务器 1

80

关闭

7/7/2020 上午 11:34:20

服务器 3

62

OK

7/7/2020 上午 10:32:20

服务器 2

90

超载

7/7/2020 上午 10:31:22

服务器 3

55

OK

7/7/2020 上午 9:30:57

服务器 3

62

Rebooting

7/7/2020 上午 9:30:05

服务器 2

88

OK

7/7/2020 上午 9:28:06

服务器 1

80

OK

7/7/2020 上午 9:25:05

服务器 2

88

OK

7/7/2020 上午 9:23:07

服务器 1

86

OK

这种转变分为两个步骤。首先,指定一个或多个字段作为数据分组依据。这会将这些字段的所有相同值组合在一起,就像对它们进行排序一样。例如,如果我们按服务器 ID 字段进行分组,那么它将按以下方式对数据进行分组:

时间 Server ID CPU 温度 服务器状态

7/7/2020 上午 11:34:20

服务器 1

80

关闭

7/7/2020 上午 9:28:06

服务器 1

80

OK

7/7/2020 上午 9:23:07

服务器 1

86

OK

7/7/2020 上午 10:32:20

服务器 2

90

超载

7/7/2020 上午 9:30:05

服务器 2

88

OK

7/7/2020 上午 9:25:05

服务器 2

88

OK

7/7/2020 上午 11:34:20

服务器 3

62

OK

7/7/2020 上午 10:31:22

服务器 3

55

OK

7/7/2020 上午 9:30:57

服务器 3

62

Rebooting

服务器 ID 值相同的所有行都组合在一起。

选择要按哪个字段对数据进行分组后,可以在其他字段上添加各种计算,然后将计算应用于每组行。例如,我们可以计算每台服务器的平均CPU温度。因此,我们可以添加应用于 “CPU 温度” 字段的平均值计算得出以下结果:

Server ID CPU 温度(平均值)

服务器 1

82

服务器 2

88.6

服务器 3

59.6

而且我们可以添加多个计算。例如:

  • 对于时间字段,我们可以计算最后一个值,以了解每台服务器上一个数据点的接收时间

  • 对于 “服务器状态” 字段,我们可以计算最后一个值以了解每台服务器的最后一个状态值是多少

  • 对于现场温度,我们还可以计算上次值以了解每台服务器的最新监控温度是多少

然后我们会得到:

Server ID CPU 温度(平均值) CPU 温度(上次) 时间(上次) 服务器状态(最新)

服务器 1

82

80

7/7/2020 上午 11:34:20

关闭

服务器 2

88.6

90

7/7/2020 上午 10:32:20

超载

服务器 3

59.6

62

7/7/2020 上午 11:34:20

OK

这种转换使您能够从时间序列中提取关键信息并以方便的方式显示这些信息。

分组到矩阵

使用此转换将三个字段(用作查询输出中 “列”、“” 和 “单元格” 值字段的输入)合并并生成矩阵。矩阵的计算方法如下:

原始数据

Server ID CPU 温度 服务器状态
服务器 1 82 OK
服务器 2 88.6 OK
服务器 3 59.6 关闭

我们可以使用Server Status作为列名、值作为行名以及作为每个单元格的内容来生成矩阵。Server ID CPU Temperature每个单元格的内容将出现在现有列 (Server Status) 和行组合 (Server ID) 中。对于其余单元格,您可以选择要在哪个值之间显示:NullTru e、False

输出

服务器 IDServer 状态 OK 关闭
服务器 1 82
服务器 2 88.6
服务器 3 59.6

使用此转换通过指定查询结果中的字段来构造矩阵。矩阵输出反映了这些字段中唯一值之间的关系。这可以帮助您以清晰的结构化矩阵格式呈现复杂的关系。

分组到嵌套表

使用此转换按指定的字段(列)值对数据进行分组,并对每个组进行计算。生成共享相同分组字段值的记录,以显示在嵌套表中。

要计算字段的统计数据,请选中该字段旁边的复选框并选择计算选项。这将添加另一个包含要选择的统计信息的选择框。

下表显示了示例数据。

时间 Server ID CPU 温度 服务器状态

7/7/2020 上午 11:34:20

服务器 1

80

关闭

7/7/2020 上午 11:34:20

服务器 3

62

OK

7/7/2020 上午 10:32:20

服务器 2

90

超载

7/7/2020 上午 10:31:22

服务器 3

55

OK

7/7/2020 上午 9:30:57

服务器 3

62

Rebooting

7/7/2020 上午 9:30:05

服务器 2

88

OK

7/7/2020 上午 9:28:06

服务器 1

80

OK

7/7/2020 上午 9:25:05

服务器 2

88

OK

7/7/2020 上午 9:23:07

服务器 1

86

OK

这种转换分为两个步骤。首先,指定一个或多个用于对数据进行分组的字段。这会将这些字段的所有相同值分组在一起,就像对它们进行排序一样。例如,如果您按Server ID字段分组,Grafana 会按以下方式对数据进行分组:

Server ID 数据

服务器 1

时间 CPU 温度 服务器状态

7/7/2020 上午 11:34:20

80

关闭

7/7/2020 上午 9:28:06

80

OK

7/7/2020 上午 9:23:07

86

OK

服务器 2

时间 CPU 温度 服务器状态

7/7/2020 上午 10:32:20

90

超载

7/7/2020 上午 9:30:05

88

OK

7/7/2020 上午 9:25:05

88

OK

服务器 3

时间 CPU 温度 服务器状态

7/7/2020 上午 11:34:20

62

OK

7/7/2020 上午 10:31:22

55

OK

7/7/2020 上午 9:30:57

62

Rebooting

选择要对数据进行分组的字段后,可以在其他字段上添加各种计算,并将计算应用于每组行。例如,您可能需要计算每台服务器的平均CPU温度。为此,请将应用于 “CPU 温度” 字段的平均值计算结果相加,得出以下结果:

Server ID CPU 温度(平均值)

服务器 1

82

时间 服务器状态

7/7/2020 上午 11:34:20

关闭

7/7/2020 上午 9:28:06

OK

7/7/2020 上午 9:23:07

OK

服务器 2

88.6

时间 服务器状态

7/7/2020 上午 10:32:20

超载

7/7/2020 上午 9:30:05

OK

7/7/2020 上午 9:25:05

OK

服务器 3

59.6

时间 服务器状态

7/7/2020 上午 11:34:20

OK

7/7/2020 上午 10:31:22

OK

7/7/2020 上午 9:30:57

Rebooting

创建热图

使用此转换来准备直方图数据,以便可视化一段时间内的趋势。与热图可视化类似,此转换将直方图指标转换为时态桶。

X 水桶

此设置决定如何将 x 轴拆分为存储桶。

  • 大小-在输入字段中指定时间间隔。例如,时间范围为,会在 x 轴上1h创建一小时宽的像元。

  • 计数-对于 non-time-related系列,使用此选项定义存储桶中的元素数量。

Y 型水桶

此设置决定如何将 y 轴拆分为存储桶。

  • 线性的

  • 对数-在对数基数 2 或对数基数 10 之间进行选择。

  • Symlog — 使用对称的对数刻度。在对数基数 2 或以 10 为基数的对数之间进行选择,允许使用负值。

假设你有以下数据集:

Timestamp
2023-01-01 12:00:00 5
2023-01-01 12:15:00 10
2023-01-01 12:30:00 15
2023-01-01 12:45:00 8
  • 当 X Bucket 设置为Linear,Y Bucket 设置为,直方图将值组织为 x 轴上的 15 分钟和 y 轴上的线性时间间隔。Size: 15m

  • 对于 X Bucket as Count: 2 和 Y Bucket asLogarithmic (base 10),直方图在 x 轴上将值分成两组,在 y 轴上使用对数刻度。

直方图

使用此变换可根据输入数据生成直方图,从而可视化值的分布。

  • 存储桶大小-存储桶中最低和最高物品之间的范围(xMin 到 xMax)。

  • 存储桶偏移量-存储 non-zero-based 桶的偏移量。

  • 合并系列-使用所有可用系列创建统一的直方图。

原始数据

系列 1:

A B C
1 3 5
2 4 6
3 5 7
4 6 8
5 7 9

系列 2:

C
5
6
7
8
9

输出

xMin xMax A B C C
1 2 1 0 0 0
2 3 1 0 0 0
3 4 1 1 0 0
4 5 1 1 0 0
5 6 1 1 1 1
6 7 0 1 1 1
7 8 0 1 1 1
8 9 0 0 1 1
9 10 0 0 1 1

使用生成的直方图可视化值的分布,从而深入了解数据的分布和密度。

按字段加入

使用此转换将多个结果合并到单个表中,从而可以合并来自不同查询的数据。

对于将多个时间序列结果转换为具有共享时间字段的单个宽表特别有用。

内部联接

内联接合并来自多个表的数据,其中所有表共享选定字段中的相同值。这种类型的联接不包括每个结果中值不匹配的数据。

使用此转换将来自多个查询(合并到传递的联接字段或第一个时间列上)的结果合并为一个结果,并删除无法成功联接的行。

在以下示例中,两个查询返回表数据。在应用内部联接转换之前,它被可视化为两个单独的表。

查询 A:

时间 作业 正常运行时间

7/7/2020 上午 11:34:20

node

25260122

7/7/2020 上午 11:24:20

postgr

123001233

7/7/2020 上午 11:14:20

postgr

345001233

查询 B:

时间 Server 错误

7/7/2020 上午 11:34:20

服务器 1

15

7/7/2020 上午 11:24:20

服务器 2

5

7/7/2020 上午 11:04:20

服务器 3

10

应用内部联接变换后的结果如下所示:

时间 作业 正常运行时间 Server 错误

7/7/2020 上午 11:34:20

node

25260122

服务器 1

15

7/7/2020 上午 11:24:20

postgr

123001233

服务器 2

5

外连接

外连接包括来自内部联接的所有数据以及每个输入中值不匹配的行。当内部联接在时间字段上连接查询 A 和查询 B 时,外部联接包括时间字段上所有不匹配的行。

在以下示例中,两个查询返回表数据。在应用外部联接转换之前,它被可视化为两个表。

查询 A:

时间 作业 正常运行时间

7/7/2020 上午 11:34:20

node

25260122

7/7/2020 上午 11:24:20

postgr

123001233

7/7/2020 上午 11:14:20

postgr

345001233

查询 B:

时间 Server 错误

7/7/2020 上午 11:34:20

服务器 1

15

7/7/2020 上午 11:24:20

服务器 2

5

7/7/2020 上午 11:04:20

服务器 3

10

应用外连接变换后的结果如下所示:

时间 作业 正常运行时间 Server 错误

7/7/2020 上午 11:04:20

服务器 3

10

7/7/2020 上午 11:14:20

postgr

345001233

7/7/2020 上午 11:34:20

node

25260122

服务器 1

15

7/7/2020 上午 11:24:20

postgr

123001233

服务器 2

5

按标签加入

使用此转换将多个结果联接到一个表中。

这对于将多个时间序列结果转换为具有共享标签字段的单个宽表特别有用。

  • 联接-在所有时间序列的可用标签或通用标签之间选择要连接的标签。

  • -输出结果的名称。

示例

输入 1:series1{what='Temp', cluster='A', job='J1'}

时间
1 10
2 200

输入 2:series2{what='Temp', cluster='B', job='J1'}

时间
1 10
2 200

输入 3:series3{what='Speed', cluster='B', job='J1'}

时间
22 22
28 77

Config:

value: 'what'

输出:

cluster 作业 临时文件 Speed
A J1 10
A J1 200
B J1 10 22
B J1 200 77

通过这种转换,有效地组合和组织时间序列数据,以获得全面的见解。

字段的标签

使用此转换将带有标签或标签的时间序列结果转换为表格,包括结果中每个标签的键和值。将标签显示为列值或行值,以增强数据可视化。

给定两个时间序列的查询结果:

  • 系列 1 — 标签Server=Server ADatacenter=EU

  • 系列 2 — 标签Server=Server BDatacenter=EU

“列” 模式下,结果如下所示:

时间 Server Datacenter

7/7/2020 上午 11:34:20

服务器 A

EU

1

7/7/2020 上午 11:34:20

服务器 B

EU

2

在 “行” 模式下,每个系列的结果都有一个表格,每个标签值如下所示:

label value

Server

服务器 A

Datacenter

EU

label value

Server

服务器 B

Datacenter

EU

值字段名称

如果您选择 “服务器” 作为 “值” 字段名称,则服务器标签的每个值都将获得一个字段。

时间 Datacenter 服务器 A 服务器 B

7/7/2020 上午 11:34:20

EU

1

2

合并行为

字段转换器的标签在内部是两个独立的转换。第一个作用于单个系列,并将标签提取到字段。第二个是合并转换,它将所有结果合并到一个表中。合并转换会尝试在所有匹配的字段上进行联接。此合并步骤是必需的,无法关闭。

为了说明这一点,这里有一个示例,其中有两个查询返回没有重叠标签的时间序列。

  • 系列 1 — 标签 Server=ServerA

  • 系列 2 — 标签 Datacenter=EU

这将首先生成以下两个表:

时间 Server

7/7/2020 上午 11:34:20

ServerA

10

时间 Datacenter

7/7/2020 上午 11:34:20

EU

20

合并后:

时间 Server Datacenter

7/7/2020 上午 11:34:20

ServerA

10

7/7/2020 上午 11:34:20

20

EU

限制

使用此转换来限制显示的行数,从而提供更集中的数据视图。这在处理大型数据集时特别有用。

以下示例说明了 L im it 转换对来自数据源的响应的影响:

时间 指标

7/7/2020 上午 11:34:20

Temperature

25

7/7/2020 上午 11:34:20

湿度

22

7/7/2020 上午 10:32:20

湿度

29

7/7/2020 上午 10:31:22

Temperature

22

7/7/2020 上午 9:30:57

湿度

33

7/7/2020 上午 9:30:05

Temperature

19

以下是添加值为 '3' 的 Limit 变换后的结果:

时间 指标

7/7/2020 上午 11:34:20

Temperature

25

7/7/2020 上午 11:34:20

湿度

22

7/7/2020 上午 10:32:20

湿度

29

这种转换可帮助您定制数据的可视化呈现方式,以专注于最相关的数据。

合并系列/表格

使用此转换可将多个查询的结果合并为一个结果,这在使用表格面板可视化时特别有用。如果共享字段包含相同的数据,则转换会将值合并到同一行中。

以下是一个示例插图,说明了 Merge 系列/表格转换对两个返回表数据的查询的影响:

查询 A:

时间 作业 正常运行时间

7/7/2020 上午 11:34:20

node

25260122

7/7/2020 上午 11:24:20

postgr

123001233

查询 B:

时间 作业 错误

7/7/2020 上午 11:34:20

node

15

7/7/2020 上午 11:24:20

postgr

5

以下是应用合并转换后的结果:

时间 作业 错误 正常运行时间

7/7/2020 上午 11:34:20

node

15

25260122

7/7/2020 上午 11:24:20

postgr

5

123001233

这种转换将查询 A 和查询 B 中的值合并到一个统一的表中,从而增强了显示效果以获得更好的见解。

按名称整理字段

使用此转换可以重命名、重新排序或隐藏面板中单个查询返回的字段。此转换仅适用于带有单个查询的面板。如果您的面板有多个查询,则必须应用外联接转换或移除多余的查询。

变换字段

Grafana 显示查询返回的字段列表。您可以:

  • 更改字段顺序-将字段拖到列表中的新位置。

  • 隐藏或显示字段-使用字段名称旁边的眼睛图标切换字段的可见性。

  • 重命名字段-在 “重命名” 框中键入新名称。

示例

鉴于这个初始查询结果:

时间 指标
2020-07-07 11:34:20 Temperature 25
2020-07-07 11:34:20 湿度 22
2020-07-07 10:32:20 湿度 29

你可以应用重命名字段覆盖来创建:

时间 传感器 阅读
2020-07-07 11:34:20 Temperature 25
2020-07-07 11:34:20 湿度 22
2020-07-07 10:32:20 湿度 29

通过这种转换,您可以定制查询结果的显示,确保在 Grafana 中以清晰而富有洞察力的方式呈现您的数据。

按值分区

使用此转换可以简化绘制多个系列的图表,而无需使用不同的WHERE子句进行多个查询。

注意

此功能可在与 Grafana 版本 9 及更高版本兼容的工作空间中使用。

这在使用指标 SQL 表时特别有用,如以下示例所示:

时间 区域

2022 年 10 月 20 日下午 12:00:00

美国

1520

2022 年 10 月 20 日下午 12:00:00

EU

2936

2022 年 10 月 20 日凌晨 1:00:00

美国

1327

2022 年 10 月 20 日凌晨 1:00:00

EU

912

使用按值分割转换器,您可以发出单个查询,然后在所选的一个或多个列(字段)中按唯一值拆分结果。下面的示例使用了 Region

SELECT Time, Region, Value FROM metrics WHERE Time > '2022-10-20'
时间 区域

2022 年 10 月 20 日下午 12:00:00

美国

1520

2022 年 10 月 20 日凌晨 1:00:00

美国

1327

时间 区域

2022 年 10 月 20 日下午 12:00:00

EU

2936

2022 年 10 月 20 日凌晨 1:00:00

EU

912

这种转换简化了流程,增强了在同一时间序列可视化中可视化多个序列的灵活性。

准备时间序列

使用此转换可以解决数据源以与所需可视化不兼容的格式返回时间序列数据时出现的问题。这种转换允许您在宽格式和长格式之间转换时间序列数据。

多帧时间序列

使用此选项将时间序列数据框从宽格式转换为长格式。当您的数据源以需要重塑的格式提供时间序列信息以实现与可视化效果的最佳兼容性时,这尤其有用。

示例

这个输入:

Timestamp Value1 Value2

2023-01-01 00:00:00

10

20

2023-01-01 01:00:00

15

25

可以转换为:

Timestamp Variable

2023-01-01 00:00:00

Value1

10

2023-01-01 00:00:00

Value2

20

2023-01-01 01:00:00

Value1

15

2023-01-01 01:00:00

Value2

25

宽时间序列

使用此选项将时间序列数据框从长格式转换为宽格式。当您的数据源以长格式提供时间序列数据并且您的可视化需要宽格式时,这尤其有用。

示例

这个输入:

Timestamp Variable

2023-01-01 00:00:00

Value1

10

2023-01-01 00:00:00

Value2

20

2023-01-01 01:00:00

Value1

15

2023-01-01 01:00:00

Value2

25

可以转换为:

Timestamp Value1 Value2

2023-01-01 00:00:00

10

20

2023-01-01 01:00:00

15

25

减少

使用此转换将计算应用于数据框中的每个字段并返回单个值。这种转换对于将多个时间序列数据整合为更紧凑的汇总格式特别有用。应用此变换时会移除时间字段。

考虑一下输入:

查询 A:

时间 临时文件 正常运行时间

2020-07-07 11:34:20

12.3

256122

2020-07-07 11:24:20

15.4

1230233

查询 B:

时间 AQI 错误

2020-07-07 11:34:20

6.5

15

2020-07-07 11:24:20

3.2

5

还原变压器有两种模式:

  • 序列到行-为每个字段创建一行,为每个计算创建一列。

  • 减少字段-保留现有框架结构,但将每个字段折叠成一个值。

例如,如果您将 “第一个” 和 “最后一个” 计算与 “序列到行” 转换一起使用,则结果将是:

字段 第一个 最后一个

临时文件

12.3

15.4

正常运行时间

256122

1230233

AQI

6.5

3.2

错误

15

5

最后一次计算” 的 “减少” 字段会生成两个帧,每个帧都有一行:

查询 A:

临时文件 正常运行时间

15.4

1230233

查询 B:

AQI 错误

3.2

5

通过正则表达式重命名

使用此转换使用正则表达式和替换模式重命名部分查询结果。

您可以指定仅适用于匹配项的正则表达式以及支持反向引用的替换模式。例如,假设您正在可视化每台主机的 CPU 使用率,并且想要删除域名。你可以将正则表达式设置为,([^\.]+)\..+将替换模式设置为$1web-01.example.com将变成。web-01

通过这种转换,您可以定制数据以满足您的可视化需求,从而使您的仪表板信息更丰富,更便于用户使用。

行到字段

使用此转换将行转换为单独的字段。这可能很有用,因为可以单独设置字段的样式和配置。它还可以使用其他字段作为动态字段配置的来源,或将其映射到字段标签。然后,可以使用其他标签为生成的字段定义更好的显示名称。

此转换包括一个字段表,该表列出了配置查询返回的数据中的所有字段。此表允许您控制应将哪个字段映射到每个配置属性(“使用为” 选项)。如果返回的数据中有多行,您也可以选择要选择的值。

这种转换需要:

  • 一个字段用作字段名称的来源。

    默认情况下,转换使用第一个字符串字段作为源。您可以通过在要改用的字段的 “用作” 列中选择字段名称来覆盖此默认设置。

  • 一个字段用作值的来源。

    默认情况下,转换使用第一个数值字段作为源。但是,您可以通过在要使用的字段的 “用作” 列中选择字段值来覆盖此默认设置。

在以下位置可视化数据时很有用:

  • 计量表

  • Stat

  • 饼图

将多余字段映射到标签

如果字段未映射到配置属性,Grafana 将自动将其用作输出字段上标签的来源。

例如:

名称 DataCenter

ServerA

美国

100

服务器 B

EU

200

输出:

ServerA(标签: DataCenter: 美国) ServerB(标签: DataCenter:欧盟)

100

200

现在,可以在字段显示名称中使用额外的标签来提供更完整的字段名称。

如果要从一个查询中提取配置并将其应用于另一个查询,则应使用查询结果转换中的配置

示例

输入:

名称 最大值

ServerA

10

100

服务器 B

20

200

服务器 C

30

300

输出:

ServerA(配置:max=100) ServerB(配置:max=200) ServerC(配置:max=300)

10

20

30

如您所见,源数据中的每一行都变成了一个单独的字段。现在,每个字段还设置了最大配置选项。诸如最小值、最大值、单位阈值之类的选项都是字段配置的一部分,如果这样设置,则可视化将使用该选项,而不是在面板编辑器选项窗格中手动配置的任何选项。

这种转换允许将行转换为单个字段,便于动态字段配置,并将其他字段映射到标签。

序列到行

使用此转换可将多个时间序列数据查询的结果合并为一个结果。这在使用表格面板可视化时很有用。

此转换的结果将包含三列:时间、指标和值。添加了 “指标” 列,因此您可以轻松查看该指标来自哪个查询。通过在源查询中定义 Label 来自定义此值。

在下面的示例中,我们有两个查询返回时间序列数据。在应用转换之前,它会被可视化为两个单独的表。

查询 A:

时间 Temperature

2020-07-07 11:34:20

25

2020-07-07 10:31:22

22

2020-07-07 09:30:05

19

查询 B:

时间 湿度

2020-07-07 11:34:20

24

2020-07-07 10:32:20

29

2020-07-07 09:30:57

33

以下是将 Series 应用于行变换后的结果。

时间 指标

2020-07-07 11:34:20

Temperature

25

2020-07-07 11:34:20

湿度

22

2020-07-07 10:32:20

湿度

29

2020-07-07 10:31:22

Temperature

22

2020-07-07 09:30:57

湿度

33

2020-07-07 09:30:05

Temperature

19

这种转换有助于整合来自多个时间序列查询的结果,从而提供了一个简化和统一的数据集,以便以表格格式进行高效的分析和可视化。

排序依据

使用此转换可根据指定字段对查询结果中的每个帧进行排序,从而使您的数据更易于理解和分析。通过配置所需的排序字段,您可以控制数据在表格或可视化中的显示顺序。

使用向开关对指定字段内的值进行反向排序。当您想要在升序和降序之间快速切换以满足分析需求时,此功能特别有用。

例如,在从数据源检索时间序列数据的场景中,可以应用排序依据转换来根据时间戳按升序或降序排列数据框,具体取决于分析要求。此功能可确保您可以轻松浏览和解释时间序列数据,从井井有条且视觉上连贯的演示文稿中获得宝贵的见解。

空间

使用此变换将空间运算应用于查询结果。

  • 操作-选择一个操作:

    • 准备空间字段-根据其他字段的结果设置几何字段。

      • 位置模式-选择位置模式(这些选项由 “计算值” 和 “变换” 模式共用):

        • 自动-根据默认字段名称自动识别位置数据。

        • 坐标-指定纬度和经度字段

        • Geohash-指定地理哈希字段。

        • 查找-指定地名词典位置字段。

    • 计算值-使用几何图形定义新字段(方向/距离/面积)。

      • 函数-选择要应用于几何的数学运算:

        • 航向-计算两点之间的航向(方向)。

        • 面积-计算由几何定义的多边形所包围的面积。

        • 距离-计算两点之间的距离。

    • 变换-对几何体应用空间运算。

      • 操作-选择要应用于几何的操作:

        • A@@ s line-创建每行都有折点的单线要素。

        • 线条生成器-在两点之间创建一条线。

这种转换允许您操作和分析地理空间数据,从而实现诸如在点之间创建线、计算空间属性等操作。

时间序列到表格的转换

使用此变换将时间序列结果转换为表格,将时间序列数据框转换为趋势字段。然后,可以使用 sp arkline 单元格类型呈现 “趋势” 字段,从而为每个表格行生成内联迷你图。如果有多个时间序列查询,则每个查询都将生成一个单独的表数据框。可以使用联接或合并转换将它们连接起来,以生成一个每行包含多个迷你图的单个表。

对于每个生成的趋势字段值,可以选择一个计算函数。默认为 “最后一个非空值”。此值显示在迷你图旁边,用于对表格行进行排序。

回归分析

使用此变换创建包含统计模型预测值的新数据框。这对于在混乱数据中寻找趋势很有用。它的工作原理是使用线性回归或多项式回归将数学函数拟合到数据。然后,可以在可视化中使用该数据框来显示趋势线。

有两种不同的型号:

  • 线性回归-将线性函数拟合到数据。

  • 多项式回归-将多项式函数拟合到数据。

注意

此转换目前处于公开预览阶段。Grafana Labs 提供的支持有限,在该功能正式推出之前,可能会发生重大更改。