fluent / fluentd のプラグインの書き方例
fluent / fluentd のプラグインの書き方例
僕はこうやって実装・テストしてます。
例えば fluent-plugin-mongo (output plugin)を UnitTest 以外で弄りたかったら適当なディレクトリを掘って Gemfile に
source "http://rubygems.org"
gem "fluentd", :git => "git://github.com/fluent/fluentd.git", :branch => "master"
gem "fluent-plugin-mongo", :path => "/home/hotchpotch/git/github/fluent-plugin-mongo" # ローカルを参照
gem "bson_ext"
を書いて fluent.conf に適当な設定を用意して
bundle
bundle update # fluentd の master branch のアップデートをしたい時は実行
bundle exec fluentd -c fluentd.conf
で fluentd を直接立ち上げてあれこれします。設定ファイルのリロードは SIGHUP を送ります
pkill -HUP -f fluentd
buffered plugin のバッファを送信するには
pkill -USR1 -f fluentd
で SIGUSR1 を送るか
# 短い間隔で送る
flush_interval 1s
とかを設定ファイルに書いておきます。
また自分ががっつりかかわってるプラグインなら実際の fluentd を起動し、インテグレーションテストで開発してます。
を参考にどうぞ。