菜单

这是文档下一个版本的Grafana。最新的稳定版本,去最新版本

企业 开源

转换数据

转换是一种强大的方法来操纵一个查询返回的数据在系统应用可视化。使用转换,您可以:

  • 重命名字段
  • 加入时间序列数据
  • 在查询执行数学运算
  • 使用一个转换的输出作为输入转换到另一个

为用户依赖多个视图相同的数据集,转换提供了一个有效的创建和维护方法大量的仪表板。

您还可以使用一个转换的输出作为输入到另一个转换,从而导致性能增益。

有时系统不能图转换数据。当这种情况发生时,单击表视图切换在可视化切换到一个表的数据视图。这可以帮助你了解你转换的最终结果。

转换类型

Grafana提供多种方式,您可以转换数据。为转换的完整列表,请参阅转换函数

订单的转换

当有多个转换,Grafana适用他们的顺序列出。每一个转换都创建一个结果集,然后通过转换到下一个处理管道。

Grafana应用转换的顺序直接影响结果。例如,如果您使用减少转换凝聚所有的结果一列成一个单一的值,那么你只能应用单值的转换。

添加一个数据转换函数

下面的步骤指导您添加一个转换数据。这个文档不包括步骤为每个类型的转换。为转换的完整列表,请参阅转换函数

  1. 导航到面板,您想要添加一个或多个转换。
  2. 在面板的任何部分在右上角显示操作菜单。
  3. 点击菜单并选择编辑
  4. 单击变换选项卡。
  5. 单击转换。转换行出现在你配置转换选项。关于如何配置一个转换的更多信息,请参考转换函数。可用的信息计算,请参考计算类型
  6. 申请另一个转换,点击添加转换。这个变换作用于之前返回的结果集转换。

调试一个转换

的输入和输出结果集转换,单击错误图标右边的转换行。

输入和输出结果集可以帮助你调试一个转换。

删除一个转换

我们建议您删除您不需要转换。当你删除一个转换,你删除的数据可视化。

在你开始之前:

  • 识别所有依赖于转换的仪表板和通知仪表板用户的影响。

删除一个转换:

  1. 打开一个面板,用于编辑。
  2. 单击变换选项卡。
  3. 点击旁边的垃圾桶图标转换你想删除。

转换函数

你可以执行以下转换数据。

从计算添加字段

使用这个转换来添加一个新字段计算从另外两个字段。每一个转换都允许您添加一个新的字段。

  • 模式-选择一个模式:
    • 减少一行,应用选择独立计算选定字段的每一行。
    • 二进制选项-应用基本的数学运算(金额、乘等)一行从两个选择的字段值。
    • 指数将插入一个行索引的字段。
  • 字段名,选择您想要使用的名称字段计算的新领域。
  • 计算,如果您选择减少行模式,那么计算字段出现。单击领域看到计算的列表选择您可以使用它来创建新领域。可用的信息计算,请参考计算类型
  • 操作- - - - - -如果您选择二进制选项模式,那么操作领域出现。这些字段允许您做基本的数学运算一行从两个选择的字段值。您还可以使用二进制操作的数值。
  • 别名-(可选)进入新领域的名称。如果你离开这个空白,那么这个领域将被命名为匹配计算。
  • 替换所有字段,(可选)选择这个选项如果你想隐藏所有其他字段,只显示你的可视化计算字段。

在下面的例子中,我添加了两个字段,将其命名为和。

连接字段

这种转变将所有字段从所有帧组合成一个结果。考虑:

查询:

临时 正常运行时间
15.4 1230233

B:查询

伊拉克基地组织 错误
3.2 5

在您连接的字段之后,数据帧是:

临时 正常运行时间 伊拉克基地组织 错误
15.4 1230233 3.2 5

配置从查询结果

这种转变让你从中选择一个查询和提取标准的选择最小值,马克斯,单位阈值并应用到其他的查询结果。这使得动态查询驱动的可视化配置。

如果你想提取一个独特的配置配置查询结果的每一行然后试着行字段转换。

选项

  • 配置查询:选择查询返回的数据您想要使用的配置。
  • 适用于:选择字段或系列应用配置。
  • 适用于选项:通常一个字段类型或字段名正则表达式根据你选择什么选项适用于

字段类型转换

这个变换改变指定的字段的字段类型。

  • 场,选择可用字段
  • 作为- - - - - -选择FieldType来转换
    • 数字- - - - - -试图使数字的值
    • 字符串,将字符串的值
    • 时间:尝试解析值随着时间的
      • 将显示一个选项来指定一个DateFormat作为输入的字符串yyyy-mm-dd或DD MM YYYY hh: MM: ss吗
    • 布尔-将布尔值的值

例如下面的查询可以修改通过选择字段的时候,随着时间的推移,YYYY日期格式。

时间 马克 价值
2017-07-01 以上 25
2018-08-02 下面 22
2019-09-02 下面 29日
2020-10-04 以上 22

结果:

时间 马克 价值
2017-01-01就是 以上 25
2018-01-01就是 下面 22
2019-01-01就是 下面 29日
2020-01-01就是 以上 22

过滤数据的名字

使用这个变换去除部分查询结果。

Grafana显示标识符领域,其次是查询返回的字段。

您可以应用过滤器两种方式中的一种:

  • 输入一个正则表达式。
  • 点击切换过滤字段,字段。过滤字段显示与深灰色的文本,有白色文本过滤字段。

在下面的例子中,我把分领域的结果。

这是原来的查询表。(这是流数据,所以数据随时间变化和截图。)

表在我这里是变换用于去除最小值字段。

这是相同的查询使用Stat可视化。

过滤数据的查询

使用这种转换板,有多个查询,如果你想隐藏的一个或多个查询。

Grafana显示查询识别字母深灰色的文本。点击切换过滤查询标识符。如果查询信是白色,然后显示结果。如果查询信是黑暗的,那么结果是隐藏的。

在下面的示例中,该小组有三个查询(A, B, C)。我把B从可视化查询。

注意:这种转变不是用于石墨因为这个数据源不支持关联查询返回的数据。

过滤数据的值

这个转换允许你过滤你的数据直接在Grafana和删除一些数据点从你的查询结果。您可以选择包括或排除数据定义相匹配的一个或多个条件。条件应用于所选字段。

这种转变是非常有用的,如果您的数据源没有过滤值。你也可以使用这个缩小值显示如果您正在使用一个共享的查询。

可用的所有字段的条件是:

  • 正则表达式:匹配正则表达式
  • 为空:如果该值为null
  • 不是零:如果该值为非空
  • 平等:如果匹配值等于指定值
  • 不同:如果匹配值比指定不同的值

可用的条件字段:

  • 更大的:如果该值大于指定值匹配
  • 低:如果匹配值低于指定值
  • 大于或等于:如果该值大于或等于相匹配
  • 低或相等:如果值较低或相等
  • 范围:匹配指定的最小值和最大值之间的范围,包括min和max

考虑下面的数据集:

时间 温度 高度
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是包括:

时间 温度 高度
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:行高度匹配更大的One hundred.

当你有一个以上的条件,你可以选择如果你想行动(包括/排除)应用于行匹配所有条件或匹配任何您添加的条件。

在上面的例子中我们选择匹配所有因为我们想要包括温度低于30行海拔高于100。如果我们想要包括温度低于30行海拔高于100,那么我们会选择匹配任何。这将包括在原始数据第一行,有温度32°C(第一个条件不匹配),但海拔101(匹配第二个条件),所以它是包括在内。

条件是无效的或者不完全的配置将被忽略。

集团

这个变换组指定的数据字段(列)值和过程计算每组。单击查看列表计算选择。可用的信息计算,请参考计算类型

这是一个原始数据的例子。

时间 服务器ID CPU温度 服务器状态
2020-07-07 11:34:20 服务器1 80年 关闭
2020-07-07 11:34:20 服务器3 62年 好吧
2020-07-07 10:32:20 服务器2 90年 过载
2020-07-07 10:31:22 服务器3 55 好吧
2020-07-07 09:30:57 服务器3 62年 重新启动
2020-07-07 09:30:05 服务器2 88年 好吧
2020-07-07 09:28:06 服务器1 80年 好吧
2020-07-07 09:25:05 服务器2 88年 好吧
2020-07-07 09:23:07 服务器1 86年 好吧

这一转变在两个步骤。首先你指定一个或多个字段进行分组数据。这将所有相同的值的字段分组,如果你排序它们。例如如果我们组由服务器ID字段,然后将组数据:

时间 服务器ID CPU温度 服务器状态
2020-07-07 11:34:20 服务器1 80年 关闭
2020-07-07 09:28:06 服务器1 80年 好吧
2020-07-07 09:23:07 服务器1 86年 好吧
2020-07-07 10:32:20 服务器2 90年 过载
2020-07-07 09:30:05 服务器2 88年 好吧
2020-07-07 09:25:05 服务器2 88年 好吧
2020-07-07 11:34:20 服务器3 62年 好吧
2020-07-07 10:31:22 服务器3 55 好吧
2020-07-07 09:30:57 服务器3 62年 重新启动

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

选择哪个领域你想组数据之后,您可以添加其他字段上的各种计算,并应用计算每组的行。例如,我们可能想要计算每个服务器的CPU平均温度。所以我们可以添加的意思是应用于CPU温度场计算得到如下:

服务器ID CPU温度(平均)
服务器1 82年
服务器2 88.6
服务器3 59.6

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

  • 场时间,我们可以计算去年价值,知道什么时候收到最后一个数据点为每个服务器
  • 现场服务器状态,我们可以计算去年知道什么是价值为每个服务器最后一个状态值
  • 对于温度场,我们也可以计算去年知道什么是价值为每个服务器最新的监控温度

我们会得到:

服务器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 好吧

这一转变使你从时间序列中提取关键信息并显示在一个方便的方法。

加入的字段

使用这个加入多个结果转变成一个表。这是特别有用的多个时间序列结果转换成一个宽表共享时间字段。

内连接

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

使用这个变换结合来自多个查询的结果(结合通过加入字段或列)第一次为一个结果,和删除行,一个成功的加入不可能发生。

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

查询:

时间 工作 正常运行时间
2020-07-07 11:34:20 节点 25260122
2020-07-07 11:24:20 postgre 123001233
2020-07-07 11:14:20 postgre 345001233

B:查询

时间 服务器 错误
2020-07-07 11:34:20 服务器1 15
2020-07-07 11:24:20 服务器2 5
2020-07-07 11:04:20 服务器3 10

结果在应用内连接转换看起来像下面的:

时间 工作 正常运行时间 服务器 错误
2020-07-07 11:34:20 节点 25260122 服务器1 15
2020-07-07 11:24:20 postgre 123001233 服务器2 5

外连接

一个从内连接和外连接包括所有数据行,每个输入值不匹配。而内连接连接查询和查询B的时间字段,外连接包括所有行字段不匹配的时间。

在下列的示例中,两个查询返回表数据。它是可视化为前两个表外连接的转换。

查询:

时间 工作 正常运行时间
2020-07-07 11:34:20 节点 25260122
2020-07-07 11:24:20 postgre 123001233
2020-07-07 11:14:20 postgre 345001233

B:查询

时间 服务器 错误
2020-07-07 11:34:20 服务器1 15
2020-07-07 11:24:20 服务器2 5
2020-07-07 11:04:20 服务器3 10

结果应用外连接转换后的样子:

时间 工作 正常运行时间 服务器 错误
2020-07-07 11:04:20 服务器3 10
2020-07-07 11:14:20 postgre 345001233
2020-07-07 11:34:20 节点 25260122 服务器1 15
2020-07-07 11:24:20 postgre 123001233 服务器2 5

在接下来的例子中,一个模板查询显示表中的时间序列数据从多个服务器可视化。只有一个查询的结果可以查看。

我申请转换加入使用时间字段的查询结果。现在我可以运行计算,结合,并组织这个新表的结果。

标签字段

这个变换时间序列变化的结果,包括标签或标记成一个表,表中的每个标签包括键和值的结果。标签可以显示为列或行值。

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

  • 系列1:标签服务器=服务器,数据中心=欧盟
  • 系列2:标签服务器=服务器B,数据中心=欧盟

在“列”模式,结果是这样的:

时间 服务器 数据中心 价值
2020-07-07 11:34:20 服务器 欧盟 1
2020-07-07 11:34:20 服务器B 欧盟 2

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

标签 价值
服务器 服务器
数据中心 欧盟
标签 价值
服务器 服务器B
数据中心 欧盟

值字段名

如果你选择的服务器作为值字段名为每一个值,那么你会得到一个字段服务器的标签。

时间 数据中心 服务器 服务器B
2020-07-07 11:34:20 欧盟 1 2

合并行为

标签字段变压器内部两个单独的转换。第一个作用于单一系列和提取标签字段。第二个是合并连接所有的结果转变成一个表。合并转换试图加入所有匹配的字段。这个合并步骤是必需的,不能关闭。

为了说明这一点,下面是一个例子,你有两个查询,返回时间序列没有重叠的标签。

  • 系列1:服务器= ServerA标签
  • 系列2:标签数据中心=欧盟

这将首先导致这两个表:

时间 服务器 价值
2020-07-07 11:34:20 ServerA 10
时间 数据中心 价值
2020-07-07 11:34:20 欧盟 20.

合并后:

时间 服务器 价值 数据中心
2020-07-07 11:34:20 ServerA 10
2020-07-07 11:34:20 20. 欧盟

合并

使用这种转换多个查询的结果合并成一个单一的结果。这是有用的在使用面板可视化的表。值,可以合并结合到同一行中。值是可以合并,如果共享字段包含相同的数据。的信息,请参考表板

在下面的例子中,我们有两个查询返回表数据。之前它是可视化为两个独立的表应用转换。

查询:

时间 工作 正常运行时间
2020-07-07 11:34:20 节点 25260122
2020-07-07 11:24:20 postgre 123001233

B:查询

时间 工作 错误
2020-07-07 11:34:20 节点 15
2020-07-07 11:24:20 postgre 5

这是应用合并转换后的结果。

时间 工作 错误 正常运行时间
2020-07-07 11:34:20 节点 15 25260122
2020-07-07 11:24:20 postgre 5 123001233

组织领域

使用这种转变重命名,重新排序,或隐藏字段返回的查询。

注意:这种转变只与一个查询面板。如果你的面板有多个查询,那么你必须使用一个外部连接转换或删除额外的查询。

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

  • 改变字段通过将鼠标停留在一个字段。光标变成一只手,然后你可以拖拽字段的新地方。
  • 隐藏或显示一个字段单击字段名称旁边的眼睛图标。
  • 重命名字段中输入一个新的名字重命名盒子。

在下面的示例中,我隐藏字段和重命名的最大和最小值。

分区的值

这种转变有助于消除多个查询需要相同与不同的数据源在哪里条款当绘图多个系列。考虑一个度量的SQL表与以下数据:

时间 地区 价值
2022-10-20 12:00:00 我们 1520年
2022-10-20 12:00:00 欧盟 2936年
2022-10-20 01:00:00 我们 1327年
2022-10-20 01:00:00 欧盟 912年

v9.3之前,如果你想为我们画一个红色的趋势线和一个蓝色的欧盟在同一个TimeSeries面板中,你很可能会分裂成两个查询:

选择时间,从度量值时间>“2022-10-20”和地区= '我们'
选择时间,从度量值时间> =“欧盟”的“2022-10-20”和地区

这也需要你提前知道哪个地区实际存在于指标表。

分区的值变压器,您现在可以发出一个查询并将结果通过独特的值在一个或多个列(字段你选择的)。下面的示例使用地区

选择时间,地区,价值度量时间>“2022-10-20”

时间 地区 价值
2022-10-20 12:00:00 我们 1520年
2022-10-20 01:00:00 我们 1327年
时间 地区 价值
2022-10-20 12:00:00 欧盟 2936年
2022-10-20 01:00:00 欧盟 912年

减少

减少转换计算适用于框架中的每个字段并返回一个值。时间字段删除应用这种转换。

考虑输入:

查询:

时间 临时 正常运行时间
2020-07-07 11:34:20 12.3 256122年
2020-07-07 11:24:20 15.4 1230233

B:查询

时间 伊拉克基地组织 错误
2020-07-07 11:34:20 6.5 15
2020-07-07 11:24:20 3.2 5

减少变压器有两种模式:

  • 行- - -系列为每个字段创建一行和一列计算。
  • 减少字段,保持现有的框架结构,但崩溃成一个单一的每个字段的值。

例如,如果您使用了第一个去年计算与系列的行转换,那么结果将是:

第一个 去年
临时 12.3 15.4
正常运行时间 256122年 1230233
伊拉克基地组织 6.5 3.2
错误 15 5

减少字段去年计算,结果在两帧,每一行:

查询:

临时 正常运行时间
15.4 1230233

B:查询

伊拉克基地组织 错误
3.2 5

重命名的正则表达式

使用这种转换的重新命名部分查询结果使用一个正则表达式和替换模式。

您可以指定一个正则表达式,它只适用于匹配,以及替代模式,支持返回引用。例如,假设你可视化每主机CPU使用率,你想删除的域名。你可以设置正则表达式\ [^ \]+)。+和替换模式1美元,web - 01. example.com将成为web-01

在接下来的例子中,我们是剥离事件类型的前缀。之前的图片,你可以看到一切都是前缀系统。

变换,可以看到剩下的只剩下的字符串。

行字段

行字段转换将行转换成单独的字段。这可能是有用的作为字段可以单独设计和配置。它还可以使用额外的字段作为动态字段配置或映射的源字段标签。额外的标签可以用来定义更好的显示名称生成的字段。

这种转变包括字段表中列出了所有在配置查询返回的数据字段。这个表给你控制字段应该映射到每个配置属性(*使用* *选项)。你也可以选择价值选择中如果有多个行返回的数据。

这种转变要求:

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

    默认情况下,将使用第一个字符串字段作为源。你可以通过选择覆盖这个默认设置字段名使用您想要使用列的字段。

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

    默认情况下,将使用第一个数字字段作为源。但是你可以通过选择覆盖这些默认设置字段值使用您想要使用列的字段。

有用的可视化数据时:

  • 统计
  • 饼状图

额外的字段映射到标签

如果一个字段不映射到Grafana配置属性将自动使用它作为源输出领域——一个标签

例子:

的名字 数据中心 价值
ServerA 我们 One hundred.
上的 欧盟 200年

输出:

ServerA(标签:数据中心:我们) ServerB(欧盟)标签:数据中心:
10 20.

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

如果你想从一个查询和提取配置appply它到另一个你应该使用查询结果转换的配置。

例子

输入:

的名字 价值 马克斯
ServerA 10 One hundred.
上的 20. 200年
ServerC 30. 300年

输出:

ServerA(配置:max = 100) ServerB(配置:max = 200) ServerC(配置:max = 300)
10 20. 30.

正如你所看到的源数据中的每一行成为一个单独的领域。每个字段现在也有一个最大配置选项设置。选项最小值,马克斯,单位阈值都是这样的字段配置的一部分,如果设置将被用于可视化,而不是任何选项面板编辑器中手动配置选项面板中。

准备时间序列

注意:这种转变有Grafana 7.5.10 +和Grafana 8.0.6 +。

准备时间序列变换是有用的,当一个数据源返回时间序列数据的格式不支持您想要使用的面板。关于数据帧格式的更多信息,请参考数据帧

这种转变可以帮助你解决这个问题,将时间序列数据的宽格式的长格式或其他方式。

选择Multi-frame时间序列选项将从宽的长时间序列数据帧格式。

选择宽的时间序列选择转换的时间序列数据帧长,宽格式。

系列的行

注意:这种转变有Grafana 7.1 +。

使用这种转换多个时间序列数据查询的结果合并成一个单一的结果。这是有用的在使用面板可视化的表。

这种转变的结果将包含三列:时间、度量,和价值。度规列添加所以你很容易可以看到查询指标源于。自定义这个值通过定义标签在源查询。

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

查询:

时间 温度
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

这是应用系列行转换后的结果。

时间 度规 价值
2020-07-07 11:34:20 温度 25
2020-07-07 11:34:20 湿度 22
2020-07-07 10:32:20 湿度 29日
2020-07-07 10:31:22 温度 22
2020-07-07 09:30:57 湿度 33
2020-07-07 09:30:05 温度 19

排序

这种转型将每一帧的配置字段,当反向检查,将返回值相反的顺序。

限制

使用这种转换限制显示的行数。

在下面的例子中,我们有以下响应从数据源:

时间 度规 价值
2020-07-07 11:34:20 温度 25
2020-07-07 11:34:20 湿度 22
2020-07-07 10:32:20 湿度 29日
2020-07-07 10:31:22 温度 22
2020-07-07 09:30:57 湿度 33
2020-07-07 09:30:05 温度 19

这里是结果添加一个限制转换后的值为“3”:

时间 度规 价值
2020-07-07 11:34:20 温度 25
2020-07-07 11:34:20 湿度 22
2020-07-07 10:32:20 湿度 29日

时间序列表变换

注意:这种转变有Grafana 9.5 +β作为选择功能。修改Grafana配置文件要启用timeSeriesTable 功能切换使用它。

使用这种转换将时间序列的结果转换为一个表,将时间序列数据帧转换为一个“趋势”字段。“趋势”字段可以使用sparkline细胞类型,产生一个内联sparkline为每个表行。如果有多个时间序列查询,每个将导致一个单独的表数据帧。这些可以加入使用联接或合并转换生产与多个微线图每行一个表。