This is a little note about how I would go about updating fluent-plugin-flume to resolve this issue.
The current fluent-plugin-flume supports 0.9 protocol. However, most curernt deployments are on the 1.5 branch. This causes a compatibility issue because the Thrift definition for Flume changed between 0.9 and 1.5.
- We need to update the flume.thrift file. The Thrift file definition for Flume 1.5 can be found here.
- The actual Thrift server code in Ruby should be generated using Thrift compiler. The 0.9.1 release should work. Use the updated flume.thrift to generate the server code (in
lib/fluent/plugin/thrift
) - Probably it is best to keep support flume-og. One way to do it is to keep the current Thrift code, probably in a different subdirectory, and switch the "require" statement based on a configuration parameter. This is what the Flumelogger project does: https://github.com/lsjostro/ruby-flumelogger/blob/master/lib/flume-logger/logger.rb#L59