后端解析器
Infinity 的后端解析器在版本 1.0.0 中引入。在查询编辑器中将解析器设置为后端,您可以使用诸如 alerting
(告警)、grafana expressions
(Grafana 表达式)、recorded queries
(记录查询)、enterprise query caching
(企业版查询缓存)和 shared dashboards
(共享仪表盘)等功能。
从版本 1.0.0 开始支持 JSON 的后端解析器。从版本 1.1.0 开始支持 CSV/TSV/GraphQL 的后端解析器。从版本 1.2.0 开始支持 XML/HTML 的后端解析器。
根选择器/字段选择器
对于 JSON,从服务器接收到的数据应为数组格式。如果不是,则必须由根选择器指定数组。根选择器必须采用 gjson 指定的格式。
后端解析器使用
gjson
风格的选择器,而旧版/默认/前端解析器使用lodash
类型选择器。
计算字段
如果您已经有一些字段,并希望基于现有列计算新字段,可以使用计算字段来实现。这与 Add field from calculation -> Binary Operation
(从计算添加字段 -> 二进制操作)转换类似,但增强了强大的表达式语言。例如,price * qty
会给出列名 price
和 qty
的乘积值。
过滤
如果要过滤数据,可以使用过滤表达式。表达式应返回 true
或 false
。例如:price > 500
、name != 'MacBook' && price != null
、name IN ('MacBook','MacBook Air')
和 !(name IN ('MacBook','MacBook Air'))
都是有效的过滤表达式。
汇总
后端解析器还支持将字段汇总为一个指标。例如,可以从数据数组中计算 count(something)
或 max(some-other-thing)
或 mean([some other thing])
。您还可以使用诸如 sum
、min
、max
、mean
、first
和 last
等数值选项。您还可以使用像 sum(price) / count(id)
这样的表达式。
指定字段名时,所有特殊字符必须替换为 -
并且转换为小写。或者,如果字段名包含特殊字符,也可以将其包含在方括号内。例如,如果字段名为 Something Else!
,则可以指定为 min(something-else-)
或 min([Something Else!])
。
您可以使用“**汇总别名**”选项选择性地为汇总表达式指定别名。如果未指定任何内容,则将使用 summary
作为别名。当您希望使用合并转换处理来自不同查询的结果时,此别名将非常有用。