gpt4 book ai didi

go - 如何使用 Go 外部插件与 Telegraf 交互?

转载 作者:行者123 更新时间:2023-12-01 22:16:28 27 4
gpt4 key购买 nike

我有一个虚拟的 GO 插件,使用它,我想将数据发送到电报。但是,我无法找到任何方法将数据从插件发送到电报。
这个外部 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 不支持使用外部插件。
一个 issue已针对此请求的功能制作并关闭。

如果您打算用 Golang 编写代码,我建议您创建一个自定义 Telegraf 插件。 Telegraf 插件不使用外部插件包,而是使用 Telegraf 本身构建的。您的插件必须满足基于您要创建的插件类型的特定接口(interface)。根据您的问题,我假设您希望创建一个输入插件,Telegraf 有 examples用于在其源代码中创建每种类型的插件。

关于go - 如何使用 Go 外部插件与 Telegraf 交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59680237/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com