文章目录

  • Transformation
    • 概念
    • 多个transformation的执行顺序
    • transformation类型
      • Add field from calculation
      • Concatenate fields
      • Config from query
      • Convert field
      • Filter data by name
      • Filter data by query
      • Filter data by value
      • Group by
      • Labels to fields
      • Merge
      • Organize fields
      • Outer join
      • Reduce
      • Rename by regex
      • Rows to fields
      • Series to rows
      • Sort by
      • Prepare-time-series

Transformation

概念

transformation处理query获取的数据,然后用来作图。允许您重命名字段,将单独的时间序列连接在一起,跨查询进行数学运算,等等。对使用者来说,有大量的dashboard和query。能够再一个panel重用另外一个panel的query结果,可以提高效劳。

多个transformation的执行顺序

grafana按照这些transformation的列出的顺序依次执行它们。每个transformation创建一个结果集合,通过管道传递给下一个transformation来处理。transform执行顺序很重要。

transformation类型

Add field from calculation

使用两个其他的字段(field),或者两个query的结果进行计算,获取一个新的字段。

增加一个上述转换,出现以下选项框:

选项说明:

选项框 说明
Mode 模式选择。有Reduce rowBinary option两个选择。前者:将选择的运算方法分别作于于两个filed(或者请求结果)。后者:对来自两个选定字段(或者两个请求的结果)的单行中的值应用基本数学运算(求和、乘法等)。注意:Reduce row本质是对一个字段(请求)的处理。
Field name 要进行计算的字段(field),这两个字段可以来自两个请求。
Calculation 若选择Reduce row,则点击下拉框即可看到可以使用的运算。若选择Binary option,则可以对选中的两个字段进行基本四则运算(±*/)
Alias 设置新的字段的名字(可选)。直接设置值作为legend的名字,可以用数据点的tag作为表的名字。语法[[tag_tagName]]。详见https://grafana.com/docs/grafana/v7.5/datasources/influxdb/
Replace all fields 隐藏用于计算的两个字段,显示新生成的字段(针对图像而言)

Concatenate fields

连接字段。将多个字段合并成一个。

Config from query

这个转换允许你选择一个请求,然后从其中提取 standard options 如 Min, Max, UnitThresholds。之后,把它应用到其他请求结果中。这支持动态请求驱动的可视化配置。详见标题链接。

Convert field

这个转换改变字段(field)的值的类型。选项框说明:

选项 说明
Field 此面板可以获取的字段。如influxDB为数据源时,就是请求的measurement
as 后面选择要转换成何种类型。有Time(尝试转换成时间),String,Boolean,Numetric(数值类型)。若选择的时Time,则会出现input format选项卡:用于指定时间格式。如yyyy-mm-dd 或 DD MM YYYY hh:mm:ss

Filter data by name

这个转换可以删除掉请求结果的一部分。过滤方法有以下两种:

  • 输入一个正则表达式
  • 直接点击请求结果的某个字段。点击某个字段,变成黑灰色(没有对号),说明此字段被过滤掉。白色的字段(有对号)是没过滤掉的。

如下,DB_INDEX_SIZE_TOTAL.first是保留的,Time字段被过滤掉。

Filter data by query

这种转换针对有多个请求的panel,如果你想隐藏请求种的一个或多个时,可以使用这个转换。

点击请求对应的字母,变成黑灰色(没有对号),说明此字段被过滤掉。白色的字段(有对号)是没过滤掉的。

Graphite不支持这个转换。

Filter data by value

这种转换允许你直接过滤你数据,然后从请求结果种删除掉某些数据。

对于你定义的一个或多个条件,若请求的数据匹配上了,你可以选择包含它,或者排除它。条件是作用于选定的字段(field)的。

对于任何字段(field),条件可以是:

  • 正则表达式
  • Is Null:值为null则匹配上
  • Is Not Null:值非空则匹配上
  • Equal:若值等于指定的值,则匹配
  • Different:和Equal相反

对于字段是数字的,条件可以是:

  • **Greater:**值大于指定的值,则匹配上。
  • Lower: 值小于指定的值,则匹配上。
  • Greater or equal: 值大于或等于指定的值,则匹配上。
  • Lower or equal: 值小于或等于指定的值,则匹配上。
  • Range: 一个范围。指定最大值,最小值,包含这两个值(闭区间)。

选项框如下:点击"Add condition",即可出现Field所在行(可点击多次,生成多个条件)。

说明:

选项 说明
Filter type 含Include(使图像只包含满足条件的数据)和Exclude(使图像排除满足条件的数据)两个类型。若选项为亮白色,则表示被选中。
Conditions 针对多个条件而言,Match all(==and)要匹配所以条件;Match any(==or)匹配以下条件
Field 依次填写要操作的字段,条件,指定的值(用以比较)。

Group by

这个转换通过一个指定的字段(field,列)对数据进行分组,然后处理每个组的计算,计算种类参考此处。

先选中一个字段分组(如下图Time字段),再把计算作用于每个分组的其他字段

上图将数据先按时间分组,再计算DB_INDEX_SIZE_TOTAL.first字段的平均值。

Labels to fields

这个转换把含标签的时间序列转换成一个表格结构。表格种包含了所有的标签和值。

Merge

合并多个请求结果成为一个结果。共有的域包含相同的数据,则值可以合并。

Organize fields

这个转换必须作用于只有一个query的panel。它可以重命名(如输入的aa,bb),重排序(拖动下面的任意一行),或者隐藏(点击下图种的"眼睛")query返回的字段(field)。

Outer join

使用此转换按字段连接来自结果集的多个时间序列(合并请求很有用:请求源不同,请求的返回的数据结构相同)。

Reduce

这个转换把一个运算应用到没个字段,返回一个标量值。时间域会被删除。针对多个请求而言。

选项框如下:

选项卡说明:

选项 说明
Mode 两个值可选。Series to rows:每个字段对应一行;针对运算,每个字段都有一个结果。多个计算,则每个字段有多个结果(结果是一张表)。Reduce fields:保持当前结构,结果类似前一种,但连个请求处理后,对应的是两个表。
Calculations 针对字段的运算(时间,值)
Include 选择Reduce fields才有这个选项。即是否包含时间域。
Labels to fields 选择Series to rows才有这个选项。

Rename by regex

这个转换使用正则表达式和替换模式重命名部分请求结果。

Match:匹配模式。类似powershell,支持分组。

Replace:替换串。$1代表匹配上的第一部分。

Rows to fields

不支持时间序列,姑且不看。

Series to rows

合并几个时间序列为一个。结果含三列:时间,字段名字(metric),值。

Sort by

此转换将每个frame按照配置字段排序,若检测到reverse,则值会逆序返回。

Prepare-time-series

Grafana 7.5.10+ 和 Grafana 8.0.6+才可用此转换。详见标题链接。预处理数据使用。
详见

好了,现在我们要点题了。为啥说数据转换(Tranformation)这个功能奇怪呢?因为使用了该功能,则grafana的报警(alerts)功能就不能用了。且使用了该功能,若数据量稍大一点,直接会导致整个dashboard崩溃。。。让别人无效了,自己却也不行!这。。。
所以建议:读入数据库(如influxDB)的数据最好是处理好的。不要想着让grafana来处理。

Grafana面板(panel):数据处理(Transformation)---一个奇怪的功能!相关推荐

  1. Grafana面板(panel):从数据源请求数据

    文章目录 概述 请求编辑器(query editor) Query syntax grafana UI界面上的Query tab 概述 query描述了Grafana的panel怎么和data sou ...

  2. Grafana面板(panel):报警功能(alerts)

    文章目录 alerts(报警设置) Create a Grafana managed alerting rule Add Grafana managed rule alert notification ...

  3. 面板panel与窗口frame的区别

    面板panel与窗口frame的区别 References 都可以在其上加载组件 面板需要加载在组件上才能使用,而窗口不需要 JPanel和JFrame都可以作为容器存放别的控件 但JPanel一般作 ...

  4. AWT_面板 Panel(Java)

    AWT_面板 Panel(Java) package Demo01;import java.awt.*; import java.awt.event.WindowEvent; import java. ...

  5. Pandas 面板Panel

    一.Panel介绍 Pandas 面板(Panel)是3维数据的存储结构,相当于一个存储 DataFrame 的字典,有3个轴(axis),分别给出描述涉及面板数据的操作的一些语义,具体如下: ite ...

  6. MinGW 和 MSVC 下,使用 FILE 类型的一个奇怪的问题

    今天遇到一个奇怪的问题. 开发环境: 1. Eclipse CDT,使用 MinGW 的 gcc 编译器和函数库 2. Visual Studio 2008 问题描述: 在 eclipse cdt 中 ...

  7. java线程未执行完成,java线程测试-一个奇怪的景况-执行未完成直接结束了

    java线程测试-一个奇怪的状况-执行未完成直接结束了 import org.junit.Test; /** * 同步线程测试 * @author jview * */ public class te ...

  8. Delphi XE 使用 MySQL 数据库一个奇怪的问题

    Delphi XE 使用 MySQL 数据库一个奇怪的问题 我用的是自带的 ADO 组件连接 MYSQL ,连接很简单,如下: 1.下载一个 MYSQL 驱动安装上 下载地址 2.连接串 Adoc.C ...

  9. dedecms在linux主机下的一个奇怪错误

    扬帆blog原创文章,转载请保留原地址:http://www.wesoho.com/article/asp/2874.htm dedecms上传到linux空间后遇到一个问题,所有header转向失效 ...

最新文章

  1. 2022-2028年中国聚乳酸降解塑料行业市场运营格局及投资前景趋势报告
  2. 2014-3-6 星期四 [第一天执行分析]
  3. elf文件下载出错问题
  4. 深入浅出:对MySQL主从配置的一些总结
  5. Hibernate 性能优化技巧
  6. 深度无盘 连接服务器失败,深度无盘服务器配置
  7. python矩阵的平方_NumPy之计算两个矩阵的成对平方欧氏距离
  8. centos系统中mysql密码_CentOS系统下强行重新修改MySQL密码
  9. ajax请求php返回的数据是整个页面的html,Ajax出错并返回整个页面html的问题
  10. ios开发读取剪切板的内容_为你找到3款Mac平台好用的剪切板工具,你值得拥有!...
  11. 时间转换竟多出1年!Java开发中的20个坑你遇到过几个?
  12. python转换窗口无响应_Tkinter窗口显示(没有响应),但代码正在运行
  13. django2连接mysql_django2连接mysql
  14. python的表达式范围怎么写_python表达式
  15. 百度站长平台做https认证总是通不过,验证失败如何解决
  16. RL策略梯度方法之(十八): Importance Weighted Actor-Learner Architecture (IMPALA)
  17. Cosine Similarity(余弦相似度)
  18. jBox 2.3基于jquery的最新多功能对话框插件 常见使用问题解答
  19. 神秘的程序员6 没事笑一笑
  20. Alitum Designer 出现警告:[Warning] xxx.SchDoc Compiler Net xxx has no driving source

热门文章

  1. 俄语水平测试软件,俄语水平测试指导:俄语语法
  2. vue+elementUI中使用Echarts (懒人无脑版)
  3. python爬虫和办公自动化培训班
  4. 一图看懂IP地址划分原理(IP的A,B,C,D,E类地址),绝对准确无误!
  5. 线上O2O商城系统怎么做好运营 O2O成为商业模式需要哪些条件?
  6. 论文笔记丨关于稳态视觉诱发电位的脑机接口
  7. 软件测试 | 测试开发 | 时间管理之四象限法则
  8. 用OpenVINO工具包轻松实现PaddleOCR实时推理
  9. oracle中timestamp怎么用,Oracle Timestamp类型
  10. 一周面试错题整理(二)