我使用新的InfluxDB2和flux查询语言从桶中检索docker统计信息。我想在单个stat小部件中显示容器的正常运行时间。
我使用以下查询:
from(bucket: "docker")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r._measurement == "docker_container_status")
|> filter(fn: (r) => r._field == "uptime_ns")
|> filter(fn: (r) => r.container_name == "some_container")
|> window(period: v.windowPeriod)
|> last()
不幸的是,容器在过去的时间范围内没有在线,因此我得到一个"没有结果"。显示出来。相反,我想显示一个0值或像&;Not online&;这样的文本。
我怎样才能做到这一点?
尝试这个查询,当没有数据时,应该使用0.0来填充
from(bucket: "docker")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r._measurement == "docker_container_status")
|> filter(fn: (r) => r._field == "uptime_ns")
|> filter(fn: (r) => r.container_name == "some_container")
|> aggregateWindow(every: v.windowPeriod, fn: (tables=<-, column="_value") =>
tables |> last(column) |> sum(column))
|> fill(value: 0.0)
如果你使用的是Grafana,你可以使用"No value">
如果查询没有结果/没有数据,则选择要显示的内容。