アクセスログ集計するときのawkワンライナーメモ
前提となるデータ。access.tsv
アクション名 レスポンスタイム
アクション毎の平均レスポンスタイムを遅い順で表示
% awk ' { total[$1] += $2 } { count[$4]++ } END { for (x in total) { printf "%s\t%f sec\n", x, total[x]/count[x] } } ' access.tsv | expand -t 50 | sort -k2 -nr
アクション毎の最も遅いレスポンスタイムを遅い順で表示
% awk ' max[$1] < $2 { max[$1] = $2 } END { for (x in max) { printf "%s\t%f sec\n", x, max[x] } } ' access.tsv | expand -t 50 | sort -k 2 -nr
レスポンスタイムとアクセス数を乗算することで、ユーザへの不快度をスコア化
% awk ' { total[$1] += $2 } { count[$1]++ } END { for (x in total) { printf "%s\t%f\n", x, total[x]*count[x] } } ' access.tsv | expand -t 50 | sort -k 2 -nr
Comments