菜单
开源

后端解析器

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 会给出列名 priceqty 的乘积值。

calculated fields

过滤

如果要过滤数据,可以使用过滤表达式。表达式应返回 truefalse。例如:price > 500name != 'MacBook' && price != nullname IN ('MacBook','MacBook Air')!(name IN ('MacBook','MacBook Air')) 都是有效的过滤表达式。

Filter expression

汇总

后端解析器还支持将字段汇总为一个指标。例如,可以从数据数组中计算 count(something)max(some-other-thing)mean([some other thing])。您还可以使用诸如 summinmaxmeanfirstlast 等数值选项。您还可以使用像 sum(price) / count(id) 这样的表达式。

指定字段名时,所有特殊字符必须替换为 - 并且转换为小写。或者,如果字段名包含特殊字符,也可以将其包含在方括号内。例如,如果字段名为 Something Else!,则可以指定为 min(something-else-)min([Something Else!])

您可以使用“**汇总别名**”选项选择性地为汇总表达式指定别名。如果未指定任何内容,则将使用 summary 作为别名。当您希望使用合并转换处理来自不同查询的结果时,此别名将非常有用。