使用 `execd` 适配器
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
。你可能需要按回车或等待轮询周期结束才能看到数据。 - 按
Ctrl-C
结束测试。 - 配置Telegraf以调用你的新插件二进制文件。对于一个输入,这看起来可能像
[[inputs.execd]]
command = ["/path/to/rand", "-config", "/path/to/plugin.conf"]
signal = "none"
有关更多信息,请参阅execd
插件文档。
发布你的插件
将你的插件发布到GitHub,并创建一个Pull Request回到Telegraf仓库,让我们了解你的外部插件的可用性。
这个页面有帮助吗?
感谢您的反馈!