为 Logstash 做贡献
您可以向 Logstash 添加自己的 input、codec、filter 或 output 插件。
以终为始。这些指南和最佳实践可以帮助您构建更好的插件,即使您选择不公开分享它。
一致性。 您的插件必须在质量和命名规范上与其他插件保持一致。插件名称必须唯一,且格式必须为:
logstash-plugintype-pluginname。如果插件名称由多个单词组成,请在插件类型后使用下划线分隔单词。示例:logstash-output-elastic_app_search文档。 文档是您插件的必备组成部分。如果我们在 Logstash 参考文档中列出您的插件,我们将指向您插件仓库中的文档——readme.md、docs/index.asciidoc 或两者兼有。
代码审查。 您的插件必须经过社区成员的审查,以确保其连贯性、质量、可读性、稳定性和安全性。
测试。 您的插件必须包含测试才能被接受。您可以参考 http://betterspecs.org/ 获取示例。
- 第 1 步。在您的账户中启用 travis
- 第 2 步。导入我们的标准 travis.yml https://github.com/logstash-plugins/.ci/blob/1.x/travis/travis.yml,如指纹过滤器示例所示。
- 第 3 步。在 spec 文件夹中存放 specs。
插件可以独立于 Logstash 核心进行开发和部署。以下是一些指导您完成插件编码、部署和分享过程的文档。
编写新插件
贡献补丁
您有三种关闭插件的选择:stop、stop? 和 close。
- 在插件线程外部调用
stop方法。该方法会向插件发送停止信号。 - 当已为该插件调用
stop方法时,stop?方法返回true。 close方法在插件的run方法和插件线程都退出后执行最终的簿记和清理工作。close方法是 Logstash 之前版本中称为teardown的方法的新名称。
shutdown、finished、finished?、running? 和 terminating? 方法已冗余,不再存在于插件基类(Plugin Base class)中。
插件关闭 API 的示例代码已提供。