为 Logstash 做贡献

为 Logstash 做贡献

您可以将您自己的输入、编解码器、过滤器或输出插件添加到 Logstash。

验收准则

以最终目标为出发点。这些准则和最佳实践可以帮助您构建更好的插件,即使您选择不与世界分享。

  • 一致性。 您的插件必须在质量和命名约定方面与其他插件保持一致。插件名称必须是唯一的,并且采用以下格式:logstash-plugintype-pluginname。如果插件名称超过一个单词,请在插件类型后用下划线分隔单词。例如:logstash-output-elastic_app_search
  • 文档。 文档是插件的必需组件。如果我们在 Logstash 参考中列出您的插件,我们会指向您插件存储库中的文档——​readme.md、docs/index.asciidoc 或两者兼而有之。
  • 代码审查。 您的插件必须由社区成员审查,以确保其一致性、质量、可读性、稳定性和安全性。
  • 测试。 您的插件必须包含测试才能被接受。您可以参考 http://betterspecs.org/ 获取示例。

添加插件

插件可以独立于 Logstash 核心进行开发和部署。以下是一些文档,可指导您完成插件的编码、部署和共享过程

插件关闭 API

您有三种选择来关闭插件:stopstop?close

  • 从插件线程外部调用 stop 方法。此方法指示插件停止。
  • stop? 方法在已为该插件调用 stop 方法时返回 true
  • close 方法在插件的 run 方法和插件的线程都退出后执行最终的簿记和清理工作。close 方法是先前版本的 Logstash 中称为 teardown 的方法的新名称。

shutdownfinishedfinished?running?terminating? 方法是冗余的,不再出现在插件基类中。

插件关闭 API 的示例代码 可用