我有一个虚拟的GO插件,使用它,我想将数据发送到telegraf。但是,我找不到从插件向Telegraf发送数据的任何方法。该外部Go插件如下所示:
package main import ( "fmt" "time" ) type greeting string type n int func (g greeting) Greet() { for i := 0; i < 10; i++ { timer1 := time.NewTimer(2 * time.Second) <-timer1.C fmt.Println("value ", i) sum := 0 sum += i * 100 fmt.Println(sum) } } // exported var Greeter greeting
主文件看起来像
import ( "fmt" "os" "plugin" ) type Greeter interface { Greet() } func main() { var mod string mod = "./eng/eng.so" // load module // 1. open the so file to load the symbols plug, err := plugin.Open(mod) if err != nil { fmt.Println(err) os.Exit(1) } // 2. look up a symbol (an exported function or variable) // in this case, variable Greeter symGreeter, err := plug.Lookup("Greeter") if err != nil { fmt.Println(err) os.Exit(1) } // 3. Assert that loaded symbol is of a desired type // in this case interface type Greeter (defined above) var greeter Greeter greeter, ok := symGreeter.(Greeter) if !ok { fmt.Println("unexpected type from module symbol") os.Exit(1) } // 4. use the module greeter.Greet() }
[谁能帮我找到有关如何在GO插件和telegraf之间进行交互的方法或方向。任何注意都表示赞赏。
我有一个虚拟的GO插件,使用它,我想将数据发送到telegraf。但是,我找不到从插件向Telegraf发送数据的任何方法。这个外部Go插件看起来像下面的包main ...
当前,Telegraf不支持使用外部插件。关于此请求的功能已制作并关闭issue。