使用 Node 时查询不返回数据,但从控制台返回数据 | Influx数据库

Data not returning from query when using Node but does from console | InfluxDB

我有一个 Node.js 应用程序,我正在尝试查询 InfluxDB 的云产品,我已经设置好它,所以我可以很好地写入数据,现在我需要查询部分。我的数据包含一些值 - 或者无论如何都会 - 我有经过的时间、服务和 serviceID。

这是我在运行之前输出的查询

fluxValue: 'from(bucket: "perf_mon")\n' +
    '|> range(start: duration(v: "-7d"))\n' +
    '|> filter(fn: (r) => r["_measurement"] == "elapsedtime")\n' +
    '|> filter(fn: (r) => r["_field"] == "elapsedtime")\n' +
    '|> filter(fn: (r) => r["serviceADD"] == "service")\n' +
    '|> filter(fn: (r) => r["abcdxyz"] == "serviceID")

这是来自查询生成器

from(bucket: "perf_mon")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "elapsedTime")
  |> filter(fn: (r) => r["_field"] == "elapsedTime")
  |> filter(fn: (r) => r["serviceADD"] == "service")
  |> filter(fn: (r) => r["abcdxyz"] == "serviceID")
  |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
  |> yield(name: "mean")

这是我的完整代码 - 仅在一个文件中用于测试模式。

const queryApi = new InfluxDB({url, token}).getQueryApi(org)
const start = fluxDuration('-7d')
const measurement = 'elapsedtime'
const service = 'serviceADD'
const serviceID = 'abcdxyz'
const fluxQuery = flux`from(bucket: "${bucket}")
|> range(start: ${start})
|> filter(fn: (r) => r["_measurement"] == "${measurement}")
|> filter(fn: (r) => r["_field"] == "${measurement}")
|> filter(fn: (r) => r["${service}"] == "service")
|> filter(fn: (r) => r["serviceID"] == "serviceID")`


console.log('query:', fluxQuery)
console.log('*** QUERY ROWS ***')


queryApi.queryRows(fluxQuery, {
  next(row, tableMeta) {
    console.log('Row:', row)
    const o = tableMeta.toObject(row)
    console.log(JSON.stringify(o, null, 2))
    console.log(
      `${o._time} ${o._measurement} in '${o.location}' (${o.example}): ${o._field}=${o._value}`
    )
  },
  error(error) {
    console.error(error)
    console.log('\nFinished ERROR')
  },
  complete() {
    console.log('\nFinished SUCCESS')
  },
})

我从包 @influxdata/influxdb-client

的 github 存储库中的示例中获得了 95% 的代码

我的问题是我想知道如何做到这一点,以便我可以查询 InfluxDB 并以我可以处理或直接发送到我的前端的格式取回我的数据。我在生成它的代码 and/or 查询中缺少什么,所以我无法通过我的脚本或通过 InfluxDB 云控制台取回数据?

我最终自己解决了这个问题,这就是我得到的查询

const fluxQuery = flux`from(bucket: "${bucket}")
|> range(start: ${start}, stop: now())
|> filter(fn: (r) => r["_measurement"] == "${measurement}")
|> filter(fn: (r) => r["${serviceID}"] == "serviceID")
|> filter(fn: (r) => r["_field"] == "${measurement}")