Как взаимодействовать с Telegraf с помощью внешнего плагина Go? - PullRequest
0 голосов
/ 10 января 2020

У меня есть фиктивный плагин GO, с помощью которого я хочу отправить данные телеграфу. Но я не могу найти способ отправить данные из плагина в 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 Плагин и телеграф работы. Любая голова приветствуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...