为 Logstash 贡献
您可以向 Logstash 添加您自己的输入、编解码器、过滤器或输出插件。
从最终目的开始。 这些指导原则和最佳实践可以帮助您构建更好的插件,即使您选择不与世界分享它。
一致性。 您的插件在质量和命名约定上必须与其他插件保持一致。 插件名称必须是唯一的,并且采用以下格式:
logstash-plugintype-pluginname
。 如果插件名称超过一个单词,请在插件类型之后用下划线分隔单词。 示例:logstash-output-elastic_app_search文档。 文档是您的插件的必需组件。 如果我们在 Logstash 参考中列出您的插件,我们会指向您插件 repo 中的文档——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
。 - 在插件的
run
方法和插件的线程都退出后,close
方法执行最后的记账和清理工作。close
方法是 Logstash 早期版本中称为teardown
的方法的新名称。
shutdown
、finished
、finished?
、running?
和 terminating?
方法是冗余的,并且不再存在于 Plugin Base 类中。
插件关闭 API 的示例代码 可用。