request-log-analyzer で Rails のログをレポーティング
wvanbergen/request-log-analyzer を使うと、Rails が吐き出すログからページの処理時間の平均や合計などのレポートを生成 ( 出力例 ) 。
インストール
$ gem install request-log-analyzer
簡単な使い方
$ request-log-analyzer log/production.log
オプション
--boring, -b
コンソールではカラフルな表示がデフォルト。そのため peco と組み合わせると都合が悪い。そういう場合は -b にするとエスケープシーケンスなしになる。
$ request-log-analyzer log/production.log -b | peco
--report-width
コンソールで実行すると、デフォルトでは画面いっぱいに表示される。
横長すぎるなら --report-width で横幅を指定。80 以下にするとデザインが狂うようだ。
$ request-log-analyzer log/development.log --report-width 80
logwatch のようにメールで送ってくれる。ちゃんと -b で、いい感じに --report-width されている。
$ request-log-analyzer log/development.log --mail test@example.com
フィルタリング
request-log-analyzer は指定日付以降や前、特定コントローラだけの表示が可能。
--after, --before
期間指定や、ある日付以降といった指定が可能。
$ request-log-analyzer log/development.log --after 2014-12-01
12月のみ。
$ request-log-analyzer log/development.log --after 2014-12-01 --before 2014-12-31
--select, --reject
特定コントローラだけ表示。
$ request-log-analyzer log/development.log* --select controller SomeController
さらに action で絞り込める。
$ request-log-analyzer log/development.log* --select controller SomeController --select action index
指定コントローラを除外。
$ request-log-analyzer log/development.log* --reject controller SomeController
フォーマット
request-log-analyzer は Rails ログ以外に --format
を指定すれば下記ログにも対応。
例えば Apache。
$ request-log-analyzer --apache-format combined access.log
フォーマット指定も可能。
$ request-log-analyzer --apache-format "%h %l %u %t \"%r\" %>s %b" access.log
詳しくは公式ドキュメント。