Fluentdのv0.14の開発バージョンであるv0.14.0.pre.1をリリースしました.
これはテストして欲しい以下の二つの機能が実装されたからです.
- Windowsサポート
- イベントのナノ秒サポート
インストール
開発版なので,普通にインストールは出来ません.--pre
をつけてください.注意点として,v0.14はruby 2.1以上を必要とします.
gem install fluentd --pre --no-document
依存ライブラリのいくつかがWindows向けのbinary gemをリリースしてないので,Windows環境ではDevKitが必要になると思います.DevKitのインストールについてはfluentd for WindowsをRuby 2.2で動かすの記事を参照してください(時間があればパッチを投げたい).
Windowsサポート
nurseさんやokahashi117さんの尽力やパッチを投げてくれた方々のおかげで,Windowsで動くようになりました.テストは全部通っているので,基本的なプラグインは動くようになっているはずです.ただ,まだ様々な環境でのテストが出来てないのは事実なので,是非皆さんの手元で動かしてもらい,問題があればどんどんissueで報告してもらいたいです(PRも勿論Welcomeです).
イベント時間のナノ秒サポート
mururuさんによって実装されました.Fluentdのイベントにつく時間は今まで秒でしたが,v0.14からFluent::EventTime
を導入することでナノ秒になりました.プラグインによっては対応が必要にはなりますが,Elasticsearchならミリ秒,Google系ならナノ秒でちゃんとログを保存出来るようになります.
EventTime
は既存の秒実装と最大限互換性を保つように実装されているので(秒として振る舞う),広く使われているプラグインのほとんどで問題なく動くことは確認しています.あるプラグインでナノ秒精度で扱いたい場合には,sec
/nsec
でそれぞれの値を取り出すか,もしライブラリ内でTime.at(time)
を使っていた場合には,何もせずともナノ秒で保存されるようになるでしょう.
もしナノ秒のための特別な実装と分けたい場合には以下のようにすれば,既存実装に影響を与えずv0.14向けのテストが出来ると思います.
if defined?(Fluent::EventTime) # v0.14
def format(tag, time, record)
# ...
end
else # v0.12
def format(tag, time, record)
# ...
end
end
PR(Support nanosecond #653)には互換性周りの注意点などが書かれているので,英語ですが気になる方は読んでみてください.いずれプラグイン開発者向けのガイドもちゃんと書く予定です.
v0.14にはまだ未実装の機能があるので正式リリースはまだですが,是非色々とテストして貰えると助かります!