0

我正在使用新的 InfluxDB2 和通量查询语言从我的存储桶中检索 docker stats。我想在单个统计小部件中显示容器的正常运行时间。

为此,我使用以下查询:

   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 值或类似“不在线”的文本。

我怎样才能做到这一点?

4

2 回答 2

0

如果您使用的是 Grafana,则可以使用“无值”选项来选择在查询中没有结果/无数据时要显示的内容。

于 2021-08-18T12:16:51.813 回答
0

试试这个查询,没有数据的时候应该用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)
于 2021-03-07T08:18:34.970 回答