首页 > 解决方案 > 使用电报将 csv 文件导入 influxdb 时包含文件名作为标签

问题描述

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

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

标签: filecsvinfluxdbtelegraf

解决方案


文件插件目前不支持添加文件名标签的方法。标准化的源标签正在添加中,但尚未得到所有插件的支持。如果您希望将其添加到文件插件中,我建议您打开该项目的问题。

作为一种可能的解决方法,您可以为每个文件添加一个静态标签。这将要求每个文件在电报配置文件中都有自己的输入部分。这是一个使用测试 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"

更新

应您的要求添加了此功能。这可以使用以下命令在较新版本的电报中启用:

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

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


推荐阅读