まず前置きですが、みんな大好きFluentdがなぜ*1実用上充分なくらい高速に動作するかというとそれは内部のシリアライズ/デシリアライズフォーマットとして使われているMessagePackのおかげによるところが大きいわけですね。 ところで Fluentd の組込みプラグインのひとつに out_exec_filter というのがありまして、これは任意のプログラムを子プロセスとして実行し、そのSTDIN/STDOUTにFluentdのメッセージを通すことでどんな処理でも記述可能なフィルタとして使いましょう、というやつ。 これは当初はTSVしかサポートしてなかった*2んだが、対応フォーマットがいくつか増えていまではjsonとかmsgpackでも入出力可能になっている。もちろん外部プログラムの側でもjsonやmsgpackを読み書きするように書かれてないといけない。 さてお仕事でこの exec_f
![out_exec_filter 入出力フォーマットの変更による負荷の変化 - たごもりすメモ](https://cdn-ak-scissors.b.st-hatena.com/image/square/d2751afb549b34d8d54635c2db770c9ffbe2fdf0/height=288;version=1;width=512/http%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Ft%2Ftagomoris%2F20130322%2F20130322155748.png)