Fluentd v11 @repeatedly
Treasure Data
fluentd
- structured loggin
- reliable forwarding
- pluggable architecture
fluentdのなにがうれしいか
mxn→m+n
v10
- log forwarding (よいパフォーマンスを出しつつ 安定して動く) プラグインも結構増えてる c-rubyを想定
http://d.hatena.ne.jp/authorNari/
why v11
- log forwarding以外にやりたいこと
- 互換性の維持が困難に
- 拡張しづらい
故にメジャーのバージョンをあげる開発中
what's new
- serverenginebased サーバーエンジン(Rubyでデーモンプログラムを書くためのフレームワーク) 一部のコア機能は社内で開発されたものを流用している Rubyはシグナルハンドリングが若干適当、故にシグナルハンドリングを別個で開発する
- Build-in supervisor スレッドベース
- Multiprocess support マルチプロセス
- v10では必要だったマルチプロセスプラグインは必要なくなったあ
プロセスを分散させることで読み込みの負担をへらす。
Zero downtime restart
SocketManager shares the resource
Filter / Label Support
アドホックなタグ管理をやめにする。
タグの操作とレコードのハンドリングをわけたいので、 ラベルを中心に柔軟にレコードの処理を行う。
Filter
matchがネストになった。
ラベル
matchを複数持てる ラベルのグルーピングをやることで処理を共通化できたりもできる
設定ファイル
複数の値を設定したいときはCSVを使っちゃってる…
パーサーが正規表現
設定ファイルにJSONが書けるようになった。
,が要らなくなった
chefみたいな書き方はしないでね。
DSLが必要ないしRubyのような書き方もできる。
プラグイン
- レイヤーの抽象化(=コードの記述がすごく短くなる)
- エラーストリーム (多少壊れたデータがまざった場合はラベルをつけて投げてくれる)
- グローバルAPIに依存したプラグインはすべて廃止。インスタンス変数とかメンバ変数とか使おう
注意事項
- 機能がわりと気まぐれに追加されたり削除されたりする
- 新しい人も取り込めるようなバージョンアップをやりたい。
- 「コノブブンホントクソダカラナントカシロヨ」的なクレームはガシガシ言ってくれたらいい