英文:
Can't get config toml file to load information to telegraf input plugin
问题
我创建了一个输入插件,它有两个参数,这些参数从配置文件中获取,如结构体中所指定的那样。但由于某种未知的原因,插件拒绝运行:
结构体:
type Plugin struct {
Address string `toml:"address"`
lines_to_read string `toml:"lines_to_read"`
}
这是配置文件 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运行正常。
英文:
I've created an input plugin that has two parameters that are taken from the configuration file, as specified in the struct. For some unknown reason, the plugin refuses to run:
The struct:
type Plugin struct {
Address string `toml:"address"`
lines_to_read string `toml:"lines_to_read"`
}
This is the input plugin section of the configuration toml file plugin.conf
:
[[inputs.plugin]]
address = "the/filepath.txt"
lines_to_read = "20"
I run a make on the file every time I change the go file and then run this command:
./telegraf -config plugin.conf -test
and I get this error:
E! error loading config file plugin.conf: plugin inputs.plugin: line 1156: configuration specified the fields ["lines_to_read"], but they weren't used
It has no problems loading the address, but the "lines_to_read" value constantly throws this error. Do you have any idea what's going on?
Tried removing "lines_to_read", ran fine.
Tried removing underscores. No change.
Tried running make again and checking for errors. Make runs fine.
答案1
得分: 0
telegraf
使用github.com/influxdata/toml
包来解析toml数据。该包要求用于映射的结构体字段必须是可导出的(请参阅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"`
}
英文:
telegraf
uses the package github.com/influxdata/toml
to unmarshal toml data. The package requires that The fields of struct for mapping must be exported (See https://pkg.go.dev/github.com/influxdata/toml#section-readme).
Try to export the field by renaming it from lines_to_read
to LinesToRead
:
type Plugin struct {
Address string `toml:"address"`
- lines_to_read string `toml:"lines_to_read"`
+ LinesToRead string `toml:"lines_to_read"`
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论