本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
变换
本文档主题专为支持 Grafana 8.x 版本的 Grafana 工作空间而设计。
有关支持 Grafana 版本 10.x 的 Grafana 工作空间,请参阅。在 Grafana 版本 10 中工作
有关支持 Grafana 9.x 版本的 Grafana 工作空间,请参阅。在 Grafana 版本 9 中工作
在结果集传递到可视化之前,转换会对其进行处理。您可以在 Amazon Managed Grafana 面板编辑器的 “转换” 选项卡中访问转换。
您可以使用变换来重命名字段、将不同的时间序列连接在一起、跨查询进行数学运算等。如果您的仪表板很大,或者查询量很大,那么能够将查询结果从一个面板重复使用到另一个面板可以带来巨大的性能提升。
注意
转换有时会导致数据无法绘制图表。发生这种情况时,Amazon Managed Grafana 会显示有关可视化的建议。选择建议以切换到表格可视化。这通常可以帮助您更好地了解转换对您的数据的影响。
Amazon Managed Grafana 按照屏幕上列出的顺序应用转换。每次转换都会创建一个新的结果集,该结果集将传递给管道中的下一个转换。
该顺序可以对结果的外观产生巨大影响。例如,如果您使用 reduce 转换将一列的所有结果压缩为单个值,则只能对该单个值应用转换。
先决条件
在应用转换之前,必须满足以下所有条件:
-
您已输入查询并从数据源返回数据。有关查询的更多信息,请参阅查询。
-
您应用了支持查询的可视化效果,例如以下可视化之一:
-
条形仪表
-
计量表
-
图表
-
热图
-
日志
-
Stat
-
表
-
应用转换
可以在面板编辑器底部窗格的 “变换” 选项卡的 “查询” 选项卡旁边进行转换。
要应用转换
-
在要添加变换的面板上,选择面板标题,然后选择 “编辑”。
-
选择 Transform (转换) 选项卡。
-
选择一个转换。
在出现的转换行中,您可以配置转换选项。
-
要应用其他转换,请选择添加转换。请记住,下一次转换对上一次转换返回的结果集起作用。
如果您遇到问题,请选择错误图标来调试您的转换。
要移除变换,请选择垃圾桶图标。
转换类型和选项
Grafana 工作区包括以下转换。
减少
如果要将结果简化为一个值,请应用 Reduce 变换。减少基本上删除了时间部分。如果可视化为表格,则会将一列缩减为一行(值)。
在 “计算” 字段中,输入一种或多种计算类型。选择查看计算选项列表。有关可用计算的信息,请参见计算列表。
在您选择了至少一个计算方式后,Amazon Managed Grafana 会使用您选择的计算方式显示一个值。如果选择多个计算,则会显示多个值。
合并
使用此转换将来自多个查询的结果合并为一个结果。这在使用表格面板可视化时很有用。可以合并的值合并到同一行中。如果共享字段包含相同的数据,则可以合并值。
在以下示例中,两个查询返回表数据。在应用转换之前,数据会被可视化为两个单独的表。
查询 A
时间 | 作业 | 正常运行时间 |
---|---|---|
2020-07-07 11:34:20 | node | 25260122 |
2020-07-07 11:24:20 | postgr | 123001233 |
查询 B
时间 | 作业 | 错误 |
---|---|---|
2020-07-07 11:34:20 | node | 15 |
2020-07-07 11:24:20 | postgr | 5 |
以下是应用合并转换后的结果。
时间 | 作业 | 错误 | 正常运行时间 |
---|---|---|---|
2020-07-07 11:34:20 | node | 15 | 25260122 |
2020-07-07 11:24:20 | postgr | 5 | 123001233 |
按名称筛选
使用此转换可以移除部分查询结果。
Amazon Managed Grafana 显示标识符字段,后面是您的查询返回的字段。
您可以通过以下两种方式之一应用过滤器:
-
输入正则表达式。
-
选择一个字段以切换该字段的筛选。筛选后的字段显示为深灰色文本,未经过滤的字段显示为白色文本。
按查询筛选数据
如果您想隐藏一个或多个查询,请在包含多个查询的面板中使用此转换。
Amazon Managed Grafana 以深灰色文本显示查询标识字母。要切换筛选,请选择查询标识符。如果查询信是白色的,则会显示结果。如果查询信是深色的,则结果将被隐藏。
整理字段
使用此转换可以重命名、重新排序或隐藏查询返回的字段。
注意
这种转换仅适用于具有单个查询的面板。如果您的面板有多个查询,则必须应用按字段联接(外部联接)转换或移除多余的查询。
Amazon Managed Grafana 会显示查询返回的字段列表。您可以进行以下任何更改:
-
通过在字段上停下来更改字段顺序。光标变成一只手,然后你可以将该字段拖到新的位置。
-
通过选择字段名称旁边的眼睛图标来隐藏或显示字段。
-
通过在 “重命名” 框中键入新名称来重命名字段。
按字段联接(外部联接)
使用此变换可以逐个字段连接结果集中的多个时间序列。
如果要合并查询以便计算字段的结果,则此转换非常有用。
从计算中添加字段
使用此转换可以添加一个根据其他两个字段计算得出的新字段。每次转换都允许您添加一个新字段。
-
模式-选择一种模式:
-
减少行-对选定字段的每一行分别应用所选计算。
-
二元期权 — 对两个选定字段中单行中的值应用基本的数学运算(
sum
multiply
、等)。
-
-
字段名称-选择要在新字段的计算中使用的字段名称。
-
计算- 选择在亚马逊托管 Grafana 创建新字段时使用的计算方式。选择该字段以查看计算选项列表。有关可用计算的信息,请参见计算列表。
-
别名-(可选)输入新字段的名称。如果将此字段留空,则该字段的命名将与计算结果相匹配。
-
替换所有字段-(可选)如果您想在可视化中隐藏所有其他字段并仅显示您的计算字段,请使用此选项。
字段的标签
注意
要应用此转换,您的查询需要返回带标签的字段。
当您选择此转换时,Amazon Managed Grafana 会自动将所有带标签的数据转换为字段。
例如,假设两个时间序列的查询结果。
1:标签 Server=Server A、dataCenter=EU 2:标签服务器=服务器 B、dataCenter=EU
这种转换将产生下表。
时间 | Server | Datacenter | 值 |
---|---|---|---|
2020-07-07 11:34:20 | 服务器 A | EU | 1 |
2020-07-07 11:34:20 | 服务器 B | EU | 2 |
值字段名称;如果您选择Server
作为值字段名称,则Server
标签的每个值都将获得一个字段。
时间 | Datacenter | 服务器 A | 服务器 B |
---|---|---|---|
2020-07-07 11:34:20 | EU | 1 | 2 |
分组依据
此转换按配置的字段对每个帧进行排序。选中后reverse
,将按相反的顺序返回值。
分组依据
此转换按指定的字段(列)值对数据进行分组,并对每个组进行计算。可用的计算方法与 Reduce 变换的计算相同。
以下是原始数据的示例。
时间 | Server ID | 中央处理器温度 | 服务器状态 |
---|---|---|---|
2020-07-07 11:34:20 | 服务器 1 | 80 | 关闭 |
2020-07-07 11:34:20 | 服务器 3 | 62 | OK |
2020-07-07 10:32:20 | 服务器 2 | 90 | 超载 |
2020-07-07 10:31:22 | 服务器 3 | 55 | OK |
2020-07-07 09:30:57 | 服务器 3 | 62 | Rebooting |
2020-07-07 09:30:05 | 服务器 2 | 88 | OK |
2020-07-07 09:28:06 | 服务器 1 | 80 | OK |
2020-07-07 09:25:05 | 服务器 2 | 88 | OK |
2020-07-07 09:23:07 | 服务器 1 | 86 | OK |
这种转变需要两个步骤。首先,指定一个或多个字段作为数据分组依据。这会将这些字段的所有相同值组合在一起,就像对它们进行排序一样。例如,如果您按Server ID
字段分组,它将按以下方式对数据进行分组:
时间 | Server ID | 中央处理器温度 | 服务器状态 |
---|---|---|---|
2020-07-07 11:34:20 | 服务器 1 | 80 | 关闭 |
2020-07-07 09:28:06 | 服务器 1 | 80 | OK |
2020-07-07 09:23:07 | 服务器 1 | 86 | OK |
2020-07-07 10:32:20 | server 2 | 90 | Overload 2020-07-07 09:30:05 | server 2 | 88 | OK 2020-07-07 09:25:05 | server 2 | 88 | OK 2020-07-07 11:34:20 | server 3 | 62 | OK 2020-07-07 10:31:22 | server 3 | 55 | OK 2020-07-07 09:30:57 | server 3 | 62 | Rebooting
所有具有相同值的行Server ID
都组合在一起。
选择要按哪个字段对数据进行分组后,可以在其他字段上添加各种计算,计算结果将应用于每组行。例如,您可能需要计算每台服务器CPU
temperature
的平均值。您可以添加应用于该CPU
Temperature
字段的均值计算以获得以下结果。
Server ID | CPU 温度(平均值) |
---|---|
服务器 1 | 82 |
服务器 2 | 88.6 |
服务器 3 | 59.6 |
而且,您可以添加多个计算结果。例如,您可以使用以下计算。
-
对于字段
Time
,您可以计算最后一个值,以了解每台服务器上一个数据点的接收时间。 -
对于字段
Server Status
,您可以计算最后一个值以了解每台服务器的最后一个状态值。 -
对于字段
Temperature
,您还可以计算上次值以了解每台服务器的最新监控温度。
“分组依据” 转换会生成以下结果。
Server ID | CPU 温度(平均值) | CPU 温度(上次) | 时间(上次) | 服务器状态(最新) |
---|---|---|---|---|
服务器 1 | 82 | 80 | 2020-07-07 11:34:20 | 关闭 |
服务器 2 | 88.6 | 90 | 2020-07-07 10:32:20 | 超载 |
服务器 3 | 59.6 | 62 | 2020-07-07 11:34:20 | OK |
使用这种转换,您可以从时间序列中提取一些关键信息,并以方便的方式显示这些信息。
序列到行
使用此转换可将多个时间序列数据查询的结果合并为一个结果。这在使用表格面板可视化时很有用。
此转换的结果将包含三列:Time
Metric
、和Value
。添加该Metric
列是为了让您可以看到该指标来自哪个查询。通过在源查询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 to rows
转换会产生以下结果。
时间 | 指标 | 值 |
---|---|---|
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 |
按值筛选数据
这种转换允许您直接在 Grafana 工作空间中筛选数据,并从查询结果中移除一些数据点。您可以选择包含或排除与您定义的一个或多个条件相匹配的数据。这些条件将应用于所选字段。
如果您的数据源未按值进行本地筛选,则此转换非常有用。如果您使用的是共享查询,也可以使用它来缩小要显示的值。
所有字段的可用条件如下:
-
正则表达式 — 匹配正则表达式。
-
为空 — 如果值为空,则匹配。
-
不为空 — 如果值不为空,则匹配。
-
等于 — 如果该值等于指定值,则匹配。
-
不同-如果值与指定值不同,则匹配。
数值字段的可用条件如下:
-
大于-如果该值大于指定值,则匹配。
-
L@@ ow er — 如果该值小于指定值,则匹配。
-
大于或等于-如果值大于或等于指定值,则匹配。
-
小于或等于 — 如果值小于或等于指定值,则匹配。
-
范围-匹配指定的最小值和最大值之间的范围。最小值和最大值包含在范围内。
您可以向筛选器中添加多个条件。当您有多个条件时,可以选择是否要将包含或排除操作应用于与您添加的全部条件或任意条件匹配的行。
无效或配置不完整的条件将被忽略。
调试转换
要查看转换的输入和输出结果集,请选择转换行右侧的错误图标。
Amazon Managed Grafana 在转换行下方显示转换调试视图。