此查询的等价物是什么
select sum("count") from "measurement_name" where time<now() and time>now()-4d group by time(100s),"source"在Flux?我试过了
from(bucket:"metrics/default_metrics")
|> range(start: -4d)
|> filter(fn: (r)=> r._measurement == "measurement_name")
|> group(columns: ["source"])
|> window(every: 100s)
|> drop(columns:["_start","_stop","_measurement","column_a","column_b"])
|> yield()和
from(bucket:"metrics/default_metrics")
|> range(start: -4d)
|> filter(fn: (r)=> r._measurement == "measurement_name")
|> window(every: 100s)
|> group(columns: ["source"])
|> drop(columns:["_start","_stop","_measurement","column_a","column_b"])
|> yield()但它们似乎都产生了不同的结果。
这是按time_interval = 100s和source分组的。假设是按时间分组(以及隐式聚合总和?)是使用Flux中的window函数完成的,但是来自InfluxQL查询的结果(select...)包括:
name: measurement_name
tags: source=source_name
time sum
---- ---
1601022500000000000 39
1601022600000000000 191
1601022700000000000 232
1601022800000000000 145
1601022900000000000 207
1601023000000000000 277
1601023100000000000 160
1601023200000000000 228
1601023300000000000 253
1601023400000000000 167而来自Flux查询的是
Table: keys: [source]
source:string _time:time _value:int _field:string
---------------------- ------------------------------ -------------------------- --------
source_name 2020-09-25T11:46:51.390000000Z 6 count
source_name 2020-09-25T11:46:54.124000000Z 5 count
source_name 2020-09-25T11:46:57.616000000Z 6 count
source_name 2020-09-25T11:46:57.999000000Z 9 count
source_name 2020-09-25T11:46:58.064000000Z 3 count
source_name 2020-09-25T11:46:58.307000000Z 6 count
source_name 2020-09-25T11:47:01.011000000Z 8 count
source_name 2020-09-25T11:47:03.634000000Z 6 count
source_name 2020-09-25T11:47:03.700000000Z 8 count
source_name 2020-09-25T11:47:04.144000000Z 8 count 最终目标是在Grafana中实现这一点。
是否也有办法在这两种范式之间来回转换?当然,只要有可能
发布于 2020-10-03 05:33:24
您需要显式包含sum()函数。我也建议使用aggregateWindow()。
from(bucket:"metrics/default_metrics")
|> range(start: -4d)
|> filter(fn: (r)=> r._measurement == "measurement_name")
|> group(columns: ["source"])
|> aggregateWindow(every: 100s, fn: sum)
|> drop(columns:["_start","_stop","_measurement","column_a","column_b"])
|> yield()通常,group不会保持排序顺序,但aggregateWindow在执行其工作之前会按时间排序。这是我们需要寻找的东西。此外,Flux和InfluxQL查询之间的时间界限可能不完全一致。我希望他们会,但要仔细检查一下。
https://stackoverflow.com/questions/64119353
复制相似问题