您好,我想知道是否有人准备 将插件添加到Telegraf for Influxdb中 。我有运行的go代码。接下来我需要什么以及将这些文件放在哪里?
我发现我需要做这样的事情:
type ReadFile struct { //buf []byte //MemoryBytes int64 //PID int } func (s *ReadFile) Description() string { return "This is a test plugin to read data from a file and send them to influxdb" } func (s *ReadFile) SampleConfig() string { return "ok = true # indicate if everything is fine" } func Gather(acc plugins.Accumulator) error { readFile(alarmFile) acc.Add("alarm", result_of_readFile_here, tags) } } func init() { plugins.Add("readFile", func() plugins.Plugin { &ReadFile{} }) }
但这是我的整个Go插件还是Go中要添加到我的Go程序中的另一个文件?
file.conf存储在哪里?
[tags] dc = "alarm" [agent] interval = "10s" # OUTPUTS [outputs] [outputs.influxdb] url = "http://127.0.0.1:8086" # required. database = "summer" # required. precision = "s" # PLUGINS [readFile]
如果您有我需要的清单,如何组织清单,将文件存储在什么地方,或者举个例子可能会很有帮助。
谢谢!!
->我收到了它,它使我有了更好的理解,我认为这可能会有所帮助:
https://github.com/influxdata/telegraf/blob/master/CONTRIBUTING.md “他的插件代码看起来不错。他需要将该文件放在$ GOPATH / src / github.com / influxdata / telegraf / plugin / inputs / testPlugin / testPlugin.go中 他应该为插件编写一个测试并将其放置在$ GOPATH / src / github.com / influxdata / telegraf / plugin / inputs / testPlugin / testPlugin_test.go上 完成此操作后,他需要在$ GOPATH / src / github.com / influxdata / telegraf / plugin / inputs / all / all.go上注册插件。 然后,他应该make从$ GOPATH / src / github.com / influxdata / telegraf运行。这会将新的telegraf二进制文件放在$ GOPATH / bin / telegraf中。 使用以下标志运行二进制文件以生成有效的配置: $ GOPATH / bin / telegraf -sample-config-输入过滤器testPlugin-输出过滤器influxdb> testPlugin_config.conf 从那里可以通过将示例配置传递给带有-test标志的二进制文件: $ GOPATH / bin / telegraf -config testPlugin_config.conf -test 这将输出要插入数据库的线路协议。”
https://github.com/influxdata/telegraf/blob/master/CONTRIBUTING.md
“他的插件代码看起来不错。他需要将该文件放在$ GOPATH / src / github.com / influxdata / telegraf / plugin / inputs / testPlugin / testPlugin.go中
他应该为插件编写一个测试并将其放置在$ GOPATH / src / github.com / influxdata / telegraf / plugin / inputs / testPlugin / testPlugin_test.go上
完成此操作后,他需要在$ GOPATH / src / github.com / influxdata / telegraf / plugin / inputs / all / all.go上注册插件。
然后,他应该make从$ GOPATH / src / github.com / influxdata / telegraf运行。这会将新的telegraf二进制文件放在$ GOPATH / bin / telegraf中。
make
使用以下标志运行二进制文件以生成有效的配置:
$ GOPATH / bin / telegraf -sample-config-输入过滤器testPlugin-输出过滤器influxdb> testPlugin_config.conf
从那里可以通过将示例配置传递给带有-test标志的二进制文件:
$ GOPATH / bin / telegraf -config testPlugin_config.conf -test
这将输出要插入数据库的线路协议。”
->还有他谈论的 testPlugin.go :
package testPlugin import ( "time" ) type ReadFile struct { counter int64 } func (s *TestPlugin) Description() string { return "This is a test plugin to write data to influxdb with a plugin" } func (s *TestPlugin) SampleConfig() string { return "ok = true # indicate if everything is fine" } func Gather(acc telegraf.Accumulator) error { c := time.Tick(10 * time.Second) for now := range c { counter := counter + 1 acc.Add("counter",counter, tags) } } func init() { inputs.Add("testPlugin", func() telegraf.Input { return &TestPlugin{} }) }