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