fluent-plugin-kafka-poseidon fluent-plugin-kafkaをリリースしました [UPDATED]

このエントリーをはてなブックマークに追加
| コメント(0) | トラックバック(0)

最近気になっていた分散Pub/Subメッセージングシステムの Apache Kafka を触ってFluentdのバックエンドとして置いてみたいなーと思ったのですが、既存の https://github.com/kiyoto/fluent-plugin-kafka で試したらKafka-0.8では動作しなかったのでドライバを poseidon にアップデートした fluent-plugin-kafka-poseidon fluent-plugin-kafkaをリリースしました。

https://github.com/htgc/fluent-plugin-kafka-poseidon
http://rubygems.org/gems/fluent-plugin-kafka-poseidon

 ↓↓
https://github.com/htgc/fluent-plugin-kafka
http://rubygems.org/gems/fluent-plugin-kafka

Inputプラグイン、Outputプラグイン、BufferedOutputプラグインの3つを同梱してます。

Inputプラグイン

SubscribeするTopicはconfig内のtopicsで指定します。
複数のTopicをSubscribeする場合はカンマ( , ) で区切ってください。
tagはtopic名で付与しますがappend_prefixとかappend_suffixとか有ったほうが使い勝手がいいのかな。

Outputプラグイン

既存の fluent-plugin-kafka ではBufferedOutputのみでしたが、Kafkaに併せてStormなどでリアルタイム処理をしたい場合にBufferedにしちゃうとリアルタイム性が悪くなるかもということでBufferedOutputとは別にOutputプラグインを追加しました。
もちろんBufferしないのでKafkaとの接続に問題が生じたりFluentd自体が予期せず落ちたりしてしまった場合にはデータをロストしてしまうので注意。
Brokerの指定は'hostname:port'でBrokerが複数ある場合にはカンマ( , )区切りで複数指定も可能です。
PublishするTopicはレコードに 'topic' というキーがあればその値を使うし、なければconfigで指定するdefault_topicを使います。まぁこの辺は既存となんら変わりません。

BufferedOutputプラグイン

OutputプラグインのBuffered版です。Kafkaに渡す頻度を適度にflush_intervalで調整してください。

簡単にPublish/Subscribeができること程度しか確認できてないので、何かありましたらご指摘ください。
あと、今回はじめてRubygemsにリリースしたので記念プラグインです!

[2014-02-06 UPDATED]
既存のfluent-plugin-kafkaの作者である @kiyototamura さんよりfluent-plugin-kafkaの名前で引き継がせていただくこととなり、プラグイン名を変更しました。
@kiyototamura さん、ご連絡とサポートありがとうございました!!