0

我是通量查询语言的新手(使用 Influx DB 2)并且找不到以下问题的解决方案:

我有改变真假值的数据: 在此处输入图像描述

通过使用 events.duration 函数,我能够以秒为单位计算下一次更改的时间: 在此处输入图像描述

现在我想计算所有“错误”事件的总时间和时间,然后我想计算所有错误事件的百分比。我尝试了以下

import "contrib/tomhollingworth/events"

total = from(bucket: "********")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "********")
  |> filter(fn: (r) => r["Server"] == "********")
  |> filter(fn: (r) => r["_field"] == "********")
  |> filter(fn: (r) => r["DataNode"] == "********")

  |> events.duration(
    unit: 1s,
    columnName: "duration",
    timeColumn: "_time",
    stopColumn: "_stop"
)
  |> sum(column: "duration")

  |> yield(name: "total")

downtime = from(bucket: "********")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "********")
  |> filter(fn: (r) => r["Server"] == "********")
  |> filter(fn: (r) => r["_field"] == "********")
  |> filter(fn: (r) => r["DataNode"] == "********")

  |> events.duration(
    unit: 1s,
    columnName: "duration",
    timeColumn: "_time",
    stopColumn: "_stop"
  )
  |> pivot(rowKey:["_time"], columnKey: ["_value"], valueColumn: "duration")
  |> drop(columns: ["true"])
  |> sum(column: "false")
  |> yield(name: "downtime")

downtime_percentage = downtime.false / total.duration

有了这个我得到以下错误 错误@44:23-44:31:预期{A with false:B}但发现[C] 我也尝试了一些变化,但无法让它工作。

我想我弄错了一些基本的东西,但我还想不通。如果您需要更多信息,请与我们联系。

4

0 回答 0