Influxdb Flux:为字段中的每个数据创建一个新行,以逗号分隔

问题描述 投票:0回答:0

我在 influxdb 中有一些数据,其中有一个

failure
字段键,它是一堆用逗号分隔的名称(不是一组数据)。我想在 grafana 中为每个名称创建一个新行。现在,我只是在 influxdb 中为每个名称使用一个新条目,但这会在 influx 中创建大量数据点。所以我希望只有一个具有多个名称的数据点。

首先,在grafana中有没有办法做到这一点?据我所知,没有。

所以我正在尝试使用助焊剂。以下查询用于从 influx 中获取我需要的数据点,它显示每个字段的数据并标记一个单独的列,但字段

failure
中只有 csv。

from(bucket:"testbucket")
  |> range(start: -7d)
  |> filter(fn: (r) => r._measurement == "care_stigs" and r.device_name == "Paul")
  |> pivot(
        rowKey:["_time", "_measurement"],
        columnKey: ["_field"],
        valueColumn: "_value"
      )

我尝试了多种方法,包括以下帖子中的方法:

如何在 Flux (InfluxDB) 中将字符串列一分为二

以下给了我一个错误

invalid: error @16:22-20:13: found unexpected argument failure (Expected 
r
) (argument fn) error @16:22-20:13: missing required argument r (argument fn) error @14:6-21:8: expected stream[string] but found [string] (array) (argument tables)

import "strings"

from(bucket:"testbucket")
  |> range(start: -7d)
  |> filter(fn: (r) => r._measurement == "care_stigs" and r.device_name == "Paul")
  |> pivot(
        rowKey:["_time", "_measurement"],
        columnKey: ["_field"],
        valueColumn: "_value"
      )
  |> map(fn: (r) => ({
        parts: strings.split(v: r.failed, t: ",")
      }))
  |> map(fn: (r) =>
        r.parts
          |> map(fn: (failure) => ({
              first: failure[0],
              second: failure[1],
              third: failure[2]
          }))
      )

我最接近的是做

import "strings" 
from(bucket:"testbucket")
  |> range(start: -7d)
  |> filter(fn: (r) => r._measurement == "care_stigs" and r.device_name == "Paul")
  |> pivot(
        rowKey:["_time", "_measurement"],
        columnKey: ["_field"],
        valueColumn: "_value"
      )
  |> map(fn: (r) => ({
        "time": r._time,
        "measurement": r._measurement,
        "device": r.device,
        "failed": strings.split(v: r.failed, t: ",")
      }))

但这给了我以下错误(我理解):

invalid: runtime error @11:6-16:10: map: map object property "failed" is array type which is not supported in a flux table

如何将这些部分变成行?尤其是不知道确切的行数? (顺便说一句,如果有帮助的话,我每个查询只需要一个数据点 - 但我想要一个来自该数据点的表,其中行是逗号分隔的值)

grafana influxdb flux-influxdb
© www.soinside.com 2019 - 2024. All rights reserved.