plugins go influxdb

plugins - ¿Cómo agregar un complemento a Telegraf?



go influxdb (2)

Existe un problema abierto para el soporte de complementos externos que podría ser parte de Telegraf 1.4.0. Si probablemente cargará archivos externos * .so .

Hasta entonces, todos los complementos se fusionarán en el repositorio principal a través de los RP . Ya hay muchos complementos esperando en el proceso de revisión. Este modelo obviamente no es muy escalable.

Hola, quisiera saber si alguien tiene listo agregar un complemento a telegraf para Influxdb . Tengo mi código Go que está funcionando. ¿Qué necesito después y dónde poner estos archivos?

Descubrí que tengo que hacer algo como esto:

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{} }) }

¿Pero es esto todo mi complemento Go u otro archivo en Ir a agregar con mi programa Go?

¿Y dónde se almacena el archivo .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]

Si tiene una lista de lo que necesito, cómo estructurarlo, dónde almaceno el archivo o tal vez un ejemplo podría ser realmente útil.

¡¡Gracias!!


-> Recibo esto, me dio una mejor comprensión, creo que podría ser útil:

https://github.com/influxdata/telegraf/blob/master/CONTRIBUTING.md

"Su código de complemento parece ir bien. Necesita colocar ese archivo en $ GOPATH / src / github.com / influxdata / telegraf / plugin / inputs / testPlugin / testPlugin.go

Debería escribir una prueba para el complemento y colocarla en $ GOPATH / src / github.com / influxdata / telegraf / plugin / inputs / testPlugin / testPlugin_test.go

Después de que esto se complete, debe registrar el complemento en $ GOPATH / src / github.com / influxdata / telegraf / plugin / inputs / all / all.go

Luego debería ejecutar make desde $ GOPATH / src / github.com / influxdata / telegraf. Esto colocará el nuevo telegraf binario en $ GOPATH / bin / telegraf.

Ejecute el binario con los siguientes indicadores para generar la configuración válida:

$ GOPATH / bin / telegraf -sample-config -input-filter testPlugin -output-filter influxdb> testPlugin_config.conf

Desde allí puede ejecutar el binario con la bandera de prueba pasándole la configuración de muestra:

$ GOPATH / bin / telegraf -config testPlugin_config.conf -test

Esto generará el protocolo de línea que se insertará en la base de datos ".

-> Y el testPlugin.go del que habla:

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{} }) }