fluentdのログを調査するためのツールflgrepを書きました

おかげさまでRack::CommonLogger::Fluentを運用しはじめました。
Mongoに記録してごにょごにょとか、色々な方法があるらしいのですが、とりあえずファイルに記録しておいて、用途はあとで考えようという感じで使っています。

ということで、ログファイルを色々みてみてアクセスがどんな感じなのか、を調べたりするときに便利そうなflgrepというツールを作ってみました。(既にどこかにありそうな気もしつつ。Rack::CommonLogger::Fluentのv0.4.0から同梱されています。

Rack::CommonLogger::Fluentに入ってはいますが、fluentdのログ形式であれば使えるんではないかと思います。

$ flgrep
Usage: flgrep [options]
    -c, --column=s                   column name to target
    -v, --value=s                    value for filtering
    -d, --date[=s]                   filtering by date
        --until[=s]                  filtering by date until ...
        --since[=s]                  filtering by date since ...
    -m, --method=(regexp|gt|lt)      regexp (default): match by regexp, gt: greater than, lt: less than
        --mode=(filter|color)        filter (default): like grep, color: show colored line when match condition.

# 一秒以上かかったアクセスログを調べる
$ tail -f access.log | flgrep --column=runtime --method=gt --value=1.0

# 2012/06/06の20時以降のトップページへのアクセスを調べる
$ tail -f access.log | flgrep --column=path_info  --value=^/$ --since=2012-06-06T20:00