如何使用Go外部插件与Telegraf进行交互?

问题描述 投票:0回答:1

我有一个虚拟的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 ...

go plugins grafana influxdb telegraf
1个回答
0
投票

当前,Telegraf不支持使用外部插件。关于此请求的功能已制作并关闭issue

© www.soinside.com 2019 - 2024. All rights reserved.