Go语言 无法获取配置toml文件以将信息加载到telegraf输入插件

lnvxswe2  于 2023-04-27  发布在  Go
关注(0)|答案(1)|浏览(189)

我创建了一个输入插件,它有两个参数,这两个参数取自配置文件,如结构中所指定的。由于一些未知的原因,插件拒绝运行:
结构:

type Plugin struct {
    Address       string `toml:"address"`
    lines_to_read string `toml:"lines_to_read"`
}

这是配置toml文件plugin.conf的输入插件部分:

[[inputs.plugin]]
  address = "the/filepath.txt"
  lines_to_read = "20"

每次我修改go文件时,我都会在文件上运行make,然后运行以下命令:

./telegraf -config plugin.conf -test

我得到这个错误:

E! error loading config file plugin.conf: plugin inputs.plugin: line 1156: configuration specified the fields ["lines_to_read"], but they weren't used

加载地址没有问题,但是“lines_to_read”值不断抛出这个错误。你知道这是怎么回事吗?
已尝试删除“lines_to_read”,运行正常。已尝试删除下划线。未更改。已尝试再次运行make并检查错误。Make运行正常。

fykwrbwg

fykwrbwg1#

telegraf使用github.com/influxdata/toml包解组toml数据,该包要求Map的struct字段必须导出(参见https://pkg.go.dev/github.com/influxdata/toml#section-readme)。
尝试将字段从lines_to_read重命名为LinesToRead来导出:

type Plugin struct {
     Address       string `toml:"address"`
-    lines_to_read string `toml:"lines_to_read"`
+    LinesToRead   string `toml:"lines_to_read"`
}

相关问题