与外部插件集成
外部插件是构建在Telegraf之外的外部程序,可以通过execd插件运行。这些外部插件相比于内部Telegraf插件提供了更多的灵活性。使用外部插件的好处包括:
- 访问未用Go编写的库
- 使用授权软件(不对开源社区提供)
- 包括会使Telegraf膨胀的大型依赖项
- 立即使用您的外部插件,无需等待Telegraf团队发布
- 轻松地使用shim在内部和外部之间转换插件
使用 `execd` shim
这个shim使得从主Telegraf仓库中提取内部输入、处理器或输出插件到独立仓库变得简单。这允许任何人使用其中一个execd插件将其构建并作为单独的应用程序运行:
使用shim包装器提取插件
- 将项目移动到外部仓库。我们建议保留路径结构:例如,如果您的插件位于Telegraf仓库中的
plugins/inputs/cpu,则将其移动到新仓库中的plugins/inputs/cpu。 - 将main.go复制到您的项目中的
cmd文件夹。这作为当作为独立程序运行时插件的入口点。这个shim并不是为了同时运行多个插件而设计的,因此每个仓库中只包含一个插件。
编写一个外部插件
设置您的插件以与 execd 一起使用。
对于列出的 外部插件,外部插件的作者还负责外部插件的维护和功能开发。
- 编写您的 Telegraf 插件。遵循 InfluxData 的最佳实践:
- 如果您的插件是用 Go 编写的,请按照 Execd Go Shim 的步骤进行。
- 在您的代码库主页中添加使用和开发说明,以便与其各自的
execd插件一起运行您的插件。有关示例,请参阅 openvpn 和 awsalarms。包括以下步骤:- 如何为您的平台下载发布包或如何克隆您外部插件的二进制文件
- 构建您的二进制文件的命令
- 编辑您的
telegraf.conf的位置 - 与 inputs.execd、processors.execd 或 outputs.execd 一起运行您的外部插件的配置
- 通过打开 PR 将您的插件提交到 /EXTERNAL_PLUGINS.md 列表中,以添加您的外部插件。包括插件名称、插件代码库的链接和插件的简短描述。