fluent-plugin-filter 作りました

rubygems fluent-plugin-filter | RubyGems.org | your community gem host
github muddydixon/fluent-plugin-filter · GitHub

ボットからの閲覧が多いし、ビッグデータ時代()だからって、うちのディスクをあんまり圧迫したくないから、
削除したりしておきたいわ!でも、exec_filterとかはめんどいし、y-ken/fluent-plugin-rewrite-tag-filter · GitHubはちょっと違うんだよなぁ

という上記のような人が対象です。

<match test.**>
  type filter
  all allow
  deny status: 404, status: 403, user-agent: /Googlebot/
</match>
<match filtered.**>
  type stdout
</match>

とか直感的な感じで書いてもらえるといいです。
上記の例だと

{status: 404, user-agetn: "IE"}
{status: 303, user-agetn: "Firefox"}
{status: 200, user-agetn: "Googlebot"}
{status: 200, user-agetn: "IE"}
{status: 403, user-agetn: "Firefox"}

標準出力にでるのは、2番めの303と4番目の200でIEのものだけになります。

tagはデフォルトだとfilteredがprefixで付けられますが

  add_prefix hogehoge

で好きなのをつけることができます。

「all allow」で基本通しで、「deny」で弾いて、それを更に「allow」で救うけど、残りは破棄
「all deny」で基本拒否して、「allow」で救って、その中から「deny」で弾く
ということができます。

string, int, float, regexpには対応しています。が、いま、ちょっと気がかりな点があるから、あとで直す

パフォーマンスはわかりません。

このうんひよコードは優しくしてきしてください