使用电报将 csv 文件导入 influxdb 时将文件名包含为标签

Include filename as tag when importing csv files into influxdb using telegraph

我是 influxdb 的新手,我尝试使用 telegraf 代理和文件输入插件导入存储在多个 CSV 文件中的一些数据。我按照 https://dzone.com/articles/write-points-from-csv-to-influxdb 中的说明写了一个简单的 file.conf,我能够将数据导入 influxdb,包括测量值和所需的标签以及文件中的数据。

我想在文件名中包含一个额外的标签,这样我就可以从特定文件中过滤测量值,但我没有在文件输入插件文档中找到如何做到这一点 (https://github.com/influxdata/telegraf/tree/master/plugins/inputs/file), neither the CSV Parser doc (https://github.com/influxdata/telegraf/tree/master/plugins/parsers/csv).

文件插件目前不支持添加文件名标签的方法。 process of being added 中有一个标准化的源标记,但并非所有插件都支持它。如果你想看到它被添加到文件插件中,我建议打开项目的问题。

作为一种可行的解决方法,您可以为每个文件添加一个静态标签。这将要求每个文件在 telegraf 配置文件中都有自己的输入部分。这是一个使用测试 json 日志文件的示例。

[[inputs.file]]
  files = ["./plugins/inputs/file/dev/testfiles/json_a.log"]
  data_format = "json"

  [inputs.file.tags]
    file = "file1"

[[inputs.file]]
  files = ["./plugins/inputs/file/dev/testfiles/json_a.log"]
  data_format = "json"

  [inputs.file.tags]
    file = "file2"

更新

由于您的请求,此功能已 added。可以使用以下命令在较新版本的 telegraf 中启用此功能:

[[inputs.file]]
  files = ["./plugins/inputs/file/dev/testfiles/json_a.log"]
  data_format = "json"
  file_tag = "filename"

file_tag 的字符串值设置将用于存储文件名的标签名称。