fluentdのFormatterプラグインを書きました。
gemは以下で公開しています。
fluent-plugin-formatter_pretty_json | RubyGems.org | your community gem host
概要
out_fileやout_s3のプラグインには出力フォーマットをformat
で指定できます。
その出力フォーマットをプラグイン化して増やすことができるのがFormatterプラグインです。
fluent-plugin-formatter_pretty_jsonは、出力を読みやすく整形されたJSON形式にすることができます。
使い方
gemをインストールし、format
にpretty_json
と指定することで利用できるようになります。
出力は以下のようになります。
{ "foo": "bar", "test": "hoge" } { "foo": "bar", "test": "hoge" }
複数行に渡る出力になるので、通常の使い方ではあまり使わないかもしれませんが、Formatter対応プラグインが増えると使える場面がでてくるかもしれません。
開発面
プラグインの開発は Fluentd Formatter プラグイン入門 - Qiita を見ればさくっと作れました。 ただ、テストが公開されているコードでは動かず、以下のようなエラーが出ていました。
Error: test_format(PrettyJsonFormatterTest): NoMethodError: undefined method `corresponding_proxies' for {"utc"=>true}:Hash
上記のエラーは既にIssueで報告されており( https://github.com/fluent/fluentd/issues/652 )、記載のあった Fluent::Config::Element.new
を使うことでテストも通るようになりました。