您可以为 Logstash 添加自己的输入、编解码器、过滤器或输出插件。
先确定最终目标。即使您不打算与世界分享,这些指南和最佳实践也可以帮助您构建更好的插件。
-
一致性。您的插件在质量和命名约定方面必须与其他插件保持一致。插件名称必须唯一,并采用以下格式:
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 文件夹中包含规范。
插件可以独立于 Logstash 核心进行开发和部署。以下是一些文档,可指导您完成插件的编码、部署和共享过程
-
编写新的插件
- 记录您的插件
- 将您的插件发布到 RubyGems.org
- 列出您的插件
-
贡献补丁
您可以使用三种方法关闭插件:stop
、stop?
和 close
。
- 从插件线程外部调用
stop
方法。此方法向插件发出停止信号。 stop?
方法在已为该插件调用stop
方法时返回true
。close
方法在插件的run
方法和插件的线程都退出后执行最终的簿记和清理。在早期版本的 Logstash 中,close
方法被称为teardown
方法,现在改名为close
。
shutdown
、finished
、finished?
、running?
和 terminating?
方法是冗余的,在 Plugin Base 类中不再存在。
插件关闭 API 的示例代码可用。