使用 execd
shim
shim 使从主 Telegraf 代码仓库中提取内部输入、处理器或输出插件到独立的仓库变得容易。这允许任何人使用 execd
插件之一构建并将其作为单独的应用程序运行
使用 shim 包装器提取插件
- 将项目移动到外部仓库。我们建议保留路径结构:例如,如果你的插件位于 Telegraf 仓库中的
plugins/inputs/cpu
,则将其移动到新仓库中的plugins/inputs/cpu
。 - 将 main.go 复制到你的项目中的
cmd
文件夹下。这充当插件作为独立程序运行时 的入口点。shim 不设计为同时运行多个插件,因此每个仓库仅包含一个插件。
- 编辑
main.go
文件以导入你的插件。例如,_ "github.com/me/my-plugin-telegraf/plugins/inputs/cpu"
。查看 此处 的main.go
编辑示例。 - 为你的插件添加特定于配置的 plugin.conf。
此配置文件必须与 Telegraf 的其余配置分开,并且不得与其他 Telegraf 配置文件位于共享目录中。
测试并运行你的插件
- 使用以下命令和你的插件名称构建
cmd/main.go
:go build -o plugin-name cmd/main.go
- 测试二进制文件
- 如果你正在构建处理器或输出,请首先在
STDIN
上输入有效的指标。如果你正在构建输入,请跳过此步骤。 - 通过运行二进制文件来测试它(例如,
./project-name -config plugin.conf
)。指标将写入STDOUT
。你可能需要按 Enter 键或等待轮询持续时间过去才能看到数据。 - 按
Ctrl-C
结束你的测试。 - 配置 Telegraf 以调用你的新插件二进制文件。对于输入,这看起来像这样
[[inputs.execd]]
command = ["/path/to/rand", "-config", "/path/to/plugin.conf"]
signal = "none"
有关更多信息,请参阅 execd
插件文档。
发布你的插件
将你的插件发布到 GitHub 并打开一个拉取请求回到 Telegraf 仓库,告知我们你的 外部插件 的可用性。
此页内容是否对您有帮助?
感谢您的反馈!