ApacheLogを PowerShell でグループ集計

自分が Apacheのサーバを立てるときは大抵、ログフォーマットは combined に TimeTaken を加えたものにしています。このログを集計すれば、リクエストを分類してどこが、いつ遅かったのかが分かります。

ということで、Read-ApacheLog からグループ集計したいわけですが、グループ化したあと、集計する方法がなかなか分かりませんでした。で、下記を参考にさせてもらいました。

 

PowerShell: ◆グループ集計(ブレーク集計)

 

日毎のレスポンスの経過を知りたかったので、以下のようになりました。

 

gist7916984b1cbb880c2e70

 

結果はこんな風になります。

 

Name               Count           Average Max Min
----               -----           ------- --- ---
2014/09/30 0:00:00     3 0.333333333333333   1   0
2014/10/01 0:00:00   109 0.963302752293578  43   0
2014/10/02 0:00:00   149  1.16778523489933  21   0
2014/10/03 0:00:00   106               0.5   3   0

 

SQLなら、テーブルTにカラムAとカラムBがあったとき、グループ集計なんて「select A, avg(B), max(B), min(B) from T group by A」で済むのになぁ。