https://github.com/logstash-plugins/logstash-filter-example
Example filter plugin. This should help bootstrap your effort to write your own filter plugin!
https://github.com/logstash-plugins/logstash-filter-example
Last synced: 11 months ago
JSON representation
Example filter plugin. This should help bootstrap your effort to write your own filter plugin!
- Host: GitHub
- URL: https://github.com/logstash-plugins/logstash-filter-example
- Owner: logstash-plugins
- License: apache-2.0
- Created: 2015-01-09T17:27:29.000Z (over 11 years ago)
- Default Branch: main
- Last Pushed: 2021-11-08T10:07:21.000Z (over 4 years ago)
- Last Synced: 2024-08-08T21:19:45.361Z (almost 2 years ago)
- Language: Ruby
- Size: 33.2 KB
- Stars: 20
- Watchers: 8
- Forks: 52
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Logstash Plugin
[](https://travis-ci.com/logstash-plugins/logstash-filter-example)
This is a plugin for [Logstash](https://github.com/elastic/logstash).
It is fully free and fully open source. The license is Apache 2.0, meaning you are pretty much free to use it however you want in whatever way.
## Documentation
Logstash provides infrastructure to automatically build documentation for this plugin. We provide a template file, index.asciidoc, where you can add documentation. The contents of this file will be converted into html and then placed with other plugin documentation in a [central location](http://www.elastic.co/guide/en/logstash/current/).
- For formatting config examples, you can use the asciidoc `[source,json]` directive
- For more asciidoc formatting tips, see the excellent reference here https://github.com/elastic/docs#asciidoc-guide
## Need Help?
Need help? Try #logstash on freenode IRC or the https://discuss.elastic.co/c/logstash discussion forum.
## Developing
### 1. Plugin Developement and Testing
#### Code
- To get started, you'll need JRuby with the Bundler gem installed.
- Create a new plugin or clone and existing from the GitHub [logstash-plugins](https://github.com/logstash-plugins) organization. We also provide [example plugins](https://github.com/logstash-plugins?query=example).
- Install dependencies
```sh
bundle install
```
#### Test
- Update your dependencies
```sh
bundle install
```
- Run tests
```sh
bundle exec rspec
```
### 2. Running your unpublished Plugin in Logstash
#### 2.1 Run in a local Logstash clone
- Edit Logstash `Gemfile` and add the local plugin path, for example:
```ruby
gem "logstash-filter-awesome", :path => "/your/local/logstash-filter-awesome"
```
- Install plugin
```sh
# Logstash 2.3 and higher
bin/logstash-plugin install --no-verify
# Prior to Logstash 2.3
bin/plugin install --no-verify
```
- Run Logstash with your plugin
```sh
bin/logstash -e 'filter {awesome {}}'
```
At this point any modifications to the plugin code will be applied to this local Logstash setup. After modifying the plugin, simply rerun Logstash.
#### 2.2 Run in an installed Logstash
You can use the same **2.1** method to run your plugin in an installed Logstash by editing its `Gemfile` and pointing the `:path` to your local plugin development directory or you can build the gem and install it using:
- Build your plugin gem
```sh
gem build logstash-filter-awesome.gemspec
```
- Install the plugin from the Logstash home
```sh
# Logstash 2.3 and higher
bin/logstash-plugin install --no-verify
# Prior to Logstash 2.3
bin/plugin install --no-verify
```
- Start Logstash and proceed to test the plugin
## Contributing
All contributions are welcome: ideas, patches, documentation, bug reports, complaints, and even something you drew up on a napkin.
Programming is not a required skill. Whatever you've seen about open source and maintainers or community members saying "send patches or die" - you will not see that here.
It is more important to the community that you are able to contribute.
For more information about contributing, see the [CONTRIBUTING](https://github.com/elastic/logstash/blob/master/CONTRIBUTING.md) file.