2013/04/07

ログ集計は任せろばりばりー stats コマンドの最近の変更点

Perl Casual #5 でプレゼンさせてもらった stats コマンド(App::LogStats)なんですが、その後ちょいちょいバージョンを上げたので(現在0.08)、その辺をまとめてみます。

出力面

テーブルの縦の罫線をなくしました。これは見やすい!

$ stats log

 --------- ------
               1
 --------- ------
  count       10
  sum         55
 --------- ------
  average   5.50
 --------- ------
  max         10
  min          1
  range        9
 --------- ------

TSV, CSV 出力のサポート

TSV や CSV で出力できるようになりました。そのままファイルに落とせば xls で読みたいビジネスサイドに渡すにも安心!

$ stats log --csv

,"1"
"count","10"
"sum","55"
"average","5.50"
"max","10"
"min","1"
"range","9"

改行コードも任意に指定できるように

改行コードは何も指定しなければ LF ですが、CR もしくは CRLF で出力が可能になりました。windows も怖くない!

$ stats log --csv --crlf

,"1"
"count","10"
"sum","55"
"average","5.50"
"max","10"
"min","1"
"range","9"

設定ファイルでデフォルトの挙動を変更できるように

設定ファイルは、$ENV{STATSRC_DIR} か $ENV{HOME} か、カレントディレクトリにある .statsrc もしくは --rc で指定されたファイルを探索します。

設定ファイルは、以下のように1行にひとつ、コロン区切りのキーバリュー形式を記述します。

more: 1
tsv: 1

起動速度を高速化

条件によっては不要になるモジュールを use しないで必要になった時点で require するようにして高速化してみました。

算出項目に分散と標準偏差を追加

--more をつけたときに算出される項目に(誰得感ありますが)分散と標準偏差を追加しました。

$ stats --more log

 ---------- ------
                1
 ---------- ------
  count        10
  sum          55
 ---------- ------
  average    5.50
  median     5.50
  mode       5.50
 ---------- ------
  max          10
  min           1
  range         9
  variance   9.17
  stddev     3.03
 ---------- ------

バグ修正

いくらかのバグを修正しました。


というわけで、だいたい以上。

あとやろうと思ってるのは -f3 -f1,3 -f2,4-6 -f2,4-6,8 あたりですかね。いまはカンマ区切りしかだめなので。そんな一気に集計することもまれだと思いますが、、

使い心地のレポートとかバグ報告とか機能リクエストとかパッチとか是非お待ちしております。

サイト内検索