我想计算大于特定值的值的数量。 数据:
from(bucket: "bucket name")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r._value > 35)
|> count()
如果处理数据范围内没有大于指定值的值,则流入什么都不返回(无数据)。
用小技巧解决... 而不是
filter()
和 count()
- 需要使用 map()
和 sum()
from(bucket: "bucket name")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> map(fn: (r) => ({ r with _value: if r._value 35 then 1 else 0 }))
|> sum()
浮点值出现问题,
虚拟实例未在(缺失的)时间范围内运行
显示为不断消耗 CPU ...
Influxdb 连接没有 0 的系列,这里是缺少时间帧的 cpu 图
fill()
仅适用于整数,aggregateWindow()
终于有帮助了from(bucket: "sys")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r._measurement == "docker_cpu_percent" )
// |> window(every: 5m, period: 5m, createEmpty: true)
|> aggregateWindow(every: 5m, fn: mean, createEmpty: true)
|> map(fn: (r) => ({
r with
_value: if exists r._value then float(v: r._value) * 1.0 else 0.0
})
)
你可以参考