by shigemk2

当面は技術的なことしか書かない

次期バージョンのFluentd v11について #at_tokuben

f:id:shigemk2:20140123194807p:plain

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に依存したプラグインはすべて廃止。インスタンス変数とかメンバ変数とか使おう

注意事項

  • 機能がわりと気まぐれに追加されたり削除されたりする
  • 新しい人も取り込めるようなバージョンアップをやりたい。
  • 「コノブブンホントクソダカラナントカシロヨ」的なクレームはガシガシ言ってくれたらいい