使用 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 仓库,让我们知道您的 外部插件 的可用性。
此页对您有帮助吗?
感谢您的反馈!
支持和反馈
感谢您成为我们社区的一份子! 我们欢迎并鼓励您对 Telegraf 和本文档提供反馈和错误报告。 要获得支持,请使用以下资源
拥有年度或支持合同的客户 可以 联系 InfluxData 支持。