読者です 読者をやめる 読者になる 読者になる

fluent-plugin-formatter_pretty_json を作った

github.com

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をインストールし、formatpretty_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 を使うことでテストも通るようになりました。

感想

  • Formatterプラグインはわりと簡単に作れる。
  • まだまだFormatterプラグインは数が少ないので、作るとfluentdでできることの幅が広がりそう。

関連エントリ

mia-0032.hatenablog.jp