Grafana面板(panel):数据处理(Transformation)---一个奇怪的功能!
文章目录
- 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 row和Binary 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, Unit 和 Thresholds。之后,把它应用到其他请求结果中。这支持动态请求驱动的可视化配置。详见标题链接。
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)---一个奇怪的功能!相关推荐
- Grafana面板(panel):从数据源请求数据
文章目录 概述 请求编辑器(query editor) Query syntax grafana UI界面上的Query tab 概述 query描述了Grafana的panel怎么和data sou ...
- Grafana面板(panel):报警功能(alerts)
文章目录 alerts(报警设置) Create a Grafana managed alerting rule Add Grafana managed rule alert notification ...
- 面板panel与窗口frame的区别
面板panel与窗口frame的区别 References 都可以在其上加载组件 面板需要加载在组件上才能使用,而窗口不需要 JPanel和JFrame都可以作为容器存放别的控件 但JPanel一般作 ...
- AWT_面板 Panel(Java)
AWT_面板 Panel(Java) package Demo01;import java.awt.*; import java.awt.event.WindowEvent; import java. ...
- Pandas 面板Panel
一.Panel介绍 Pandas 面板(Panel)是3维数据的存储结构,相当于一个存储 DataFrame 的字典,有3个轴(axis),分别给出描述涉及面板数据的操作的一些语义,具体如下: ite ...
- MinGW 和 MSVC 下,使用 FILE 类型的一个奇怪的问题
今天遇到一个奇怪的问题. 开发环境: 1. Eclipse CDT,使用 MinGW 的 gcc 编译器和函数库 2. Visual Studio 2008 问题描述: 在 eclipse cdt 中 ...
- java线程未执行完成,java线程测试-一个奇怪的景况-执行未完成直接结束了
java线程测试-一个奇怪的状况-执行未完成直接结束了 import org.junit.Test; /** * 同步线程测试 * @author jview * */ public class te ...
- Delphi XE 使用 MySQL 数据库一个奇怪的问题
Delphi XE 使用 MySQL 数据库一个奇怪的问题 我用的是自带的 ADO 组件连接 MYSQL ,连接很简单,如下: 1.下载一个 MYSQL 驱动安装上 下载地址 2.连接串 Adoc.C ...
- dedecms在linux主机下的一个奇怪错误
扬帆blog原创文章,转载请保留原地址:http://www.wesoho.com/article/asp/2874.htm dedecms上传到linux空间后遇到一个问题,所有header转向失效 ...
最新文章
- 2022-2028年中国聚乳酸降解塑料行业市场运营格局及投资前景趋势报告
- 2014-3-6 星期四 [第一天执行分析]
- elf文件下载出错问题
- 深入浅出:对MySQL主从配置的一些总结
- Hibernate 性能优化技巧
- 深度无盘 连接服务器失败,深度无盘服务器配置
- python矩阵的平方_NumPy之计算两个矩阵的成对平方欧氏距离
- centos系统中mysql密码_CentOS系统下强行重新修改MySQL密码
- ajax请求php返回的数据是整个页面的html,Ajax出错并返回整个页面html的问题
- ios开发读取剪切板的内容_为你找到3款Mac平台好用的剪切板工具,你值得拥有!...
- 时间转换竟多出1年!Java开发中的20个坑你遇到过几个?
- python转换窗口无响应_Tkinter窗口显示(没有响应),但代码正在运行
- django2连接mysql_django2连接mysql
- python的表达式范围怎么写_python表达式
- 百度站长平台做https认证总是通不过,验证失败如何解决
- RL策略梯度方法之(十八): Importance Weighted Actor-Learner Architecture (IMPALA)
- Cosine Similarity(余弦相似度)
- jBox 2.3基于jquery的最新多功能对话框插件 常见使用问题解答
- 神秘的程序员6 没事笑一笑
- Alitum Designer 出现警告:[Warning] xxx.SchDoc Compiler Net xxx has no driving source
热门文章
- 俄语水平测试软件,俄语水平测试指导:俄语语法
- vue+elementUI中使用Echarts (懒人无脑版)
- python爬虫和办公自动化培训班
- 一图看懂IP地址划分原理(IP的A,B,C,D,E类地址),绝对准确无误!
- 线上O2O商城系统怎么做好运营 O2O成为商业模式需要哪些条件?
- 论文笔记丨关于稳态视觉诱发电位的脑机接口
- 软件测试 | 测试开发 | 时间管理之四象限法则
- 用OpenVINO工具包轻松实现PaddleOCR实时推理
- oracle中timestamp怎么用,Oracle Timestamp类型
- 一周面试错题整理(二)