如何解决InfluxQL转Flux
此查询的等效内容
Equatable
在助焊剂中?我尝试过
select sum("count") from "measurement_name" where time<now() and time>now()-4d group by time(100s),"source"
和
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","column_b"])
|> yield()
和time_interval = 100s
分组的。假设按时间分组(是否隐式地汇总汇总?)是使用Flux的source
函数完成的,但是InfluxQL查询(选择...)的结果是:
window
来自Flux查询的是
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
最终目标是在Grafana中进行绘制。
也许还可以在这两种范式之间来回转换吗?只要有可能
解决方法
您需要显式包括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查询之间的时间界限可能不完全一致。我希望他们这样做,但请仔细检查。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。