fluent-plugin-parser-protobuf
Fluentd parser plugin for Protocol Buffers.
Installation
Add this line to your application's Gemfile:
gem 'fluent-plugin-parser-protobuf'
And then execute:
$ bundle install
Or install it yourself as:
$ gem install fluent-plugin-parser-protobuf
Prerequisites to use
Users should prepare protocol buffers with the following compilers:
- For Protocol Buffers 2, using ruby-protoc compiler is needed.
- For Protocol Buffers 3, using the official protoc compiler is needed.
Configuration
Note: Protocol Buffer v2 files use .pb.rb
extensions whereas Protocol Buffer v3 files use _pb.rb
in their filename endings. Please be careful which version is used in your protobuf definitions.
For Protobuf 3
<parse>
@type protobuf
class_file /path/to/your/protobuf/class_file_pb.rb
class_name Your.Protobuf.Class.Name # For protobuf3
protobuf_version protobuf3
# suppress_decoding_error false
# include_paths [/path/to/your/protobuf/class_file_pb.rb, /path/to/your/protobuf/class_file2_pb.rb, ...]
</parse>
Note: Protobuf version 3 requires to use dot for nested class name seperator:
Your::Protobuf::Class::Name
class should be in class_name as follows:
class_name Your.Protobuf.Class.Name
For Protobuf 2
<parse>
@type protobuf
class_file /path/to/your/protobuf/class_file.pb.rb
class_name Your::Protobuf::Class::Name # For protobuf2
protobuf_version protobuf2
# suppress_decoding_error false
# include_paths [/path/to/your/protobuf/class_file.pb.rb, /path/to/your/protobuf/class_file2.pb.rb, ...]
</parse>
Development
After checking out the repo, run bin/setup
to install dependencies. You can also run bin/console
for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install
. To release a new version, update the version number in version.rb
, and then run bundle exec rake release
, which will create a git tag for the version, push git commits and tags, and push the .gem
file to rubygems.org.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/fluent-plugins-nursery/fluent-plugin-parser-protobuf.
Articles
- FluentdのInputプラグインでProtocol Buffersを扱う -- ククログ https://www.clear-code.com/blog/2020/6/4.html (ja)