你好,我是电报的初学者,谁能告诉我如何为“Hello World”消息编写简单的电报输入插件???
谢谢
你好,我是电报的初学者,谁能告诉我如何为“Hello World”消息编写简单的电报输入插件???
谢谢
获取电报代码并制作
go get -d github.com/influxdata/telegraf
cd github.com/influxdata/telegraf
make
用于创建一个简单的插件
cd telegraf
cd plugins/inputs/
mkdir sample
cd sample
touch sample.go
和在里面写下下面的代码
package sample
import (
"github.com/influxdata/telegraf"
"github.com/influxdata/telegraf/plugins/inputs"
)
type Sample struct {
Message string `toml:"message"`
}
func (s *Sample) Description() string {
return "Intended to test"
}
var SampleConfig = `
##You can also change the message if you want to print different than Hello world by uncommenting below line and change message.
# message = "Hello"
`
func (s *Sample) SampleConfig() string {
return SampleConfig
}
func (s *Sample) Init() error {
return nil
}
func (s *Sample) Gather(acc telegraf.Accumulator) error {
greet := "Your Message is " + s.Message
fields := make(map[string]interface{})
fields["Message"] = greet
//tags := make(map[string]string)
acc.AddFields("sample", fields, nil)
return nil
}
func init() {
inputs.Add("sample", func() telegraf.Input { return &Sample{"Hello-World"} })
}
保存代码
您需要在 all.go 中添加/注册新创建的包(插件)的路径
go/src/ github.com/influxdata/telegraf/plugins/inputs/all/all.go
vi /go/src/github.com/influxdata/telegraf/plugins/inputs/all/all.go
由于我们已经创建了示例输入插件,我们需要在导入的末尾添加它的路径,在导入的末尾添加以下行
_ "github.com/influxdata/telegraf/plugins/inputs/sample"
然后all.go
文件看起来像
import(
.
.
.
.
_ "github.com/influxdata/telegraf/plugins/inputs/sample"
)
现在,回到电报目录
cd /go/src/github.com/influxdata/telegraf
make
这将制作新的电报二进制文件
注意:对于输出插件,我们使用文件插件,我们将输出放在文件中
为telegraf.conf文件设置输入和输出插件
./telegraf --input-filter=sample --output-filter=file config > telegraf.conf
vi telegraf.conf
[[outputs.file]]的变化
1. 文件 = ["stdout", "/tmp/Your-Output-Filename.json"]
2. data_format = "json"
保存并运行使用
./telegraf --config telegraf.conf
现在转到输出文件目录打开文件并查看其中的内容,
vi /tmp/Your-Output-Filename.json
注意:您还可以通过取消注释来更改SampleConfig()中的消息(SampleConfig() 具有最高优先级),在运行 telegraf 二进制文件时,它会从此处读取数据,如果在此处找不到(如果已注释),则使用以下值在 init() 中传递
每次更改代码时,您都必须再次制作代码
谢谢你 !!!