今天有人问我怎么实时统计一下访问量的大小。其实在公司是有专门的监控系统做这些基本的访问量,服务调用,业务数据的完整分析。
不过就简单根据apache或者nginx的日志来看看PV的话,可以直接tail日志给awk处理。
#pv.f
#假设第4列的格式是:[31/May/2013:13:46:31 +0800]
#第6列是GET 或者POST 表示访问的方式
function pt(a)
{
for (i in a)
{
printf("%s -- %d\n",i,a[i]);
}
}
{
t=substr($4,9,13); #per second
if ( per == 1) {
t=substr($4,9,10); #per minute
}
if( k != t ) {
if( length(k)>2) {
pt(af);
}
delete af;
k=t;
} else if( k == t) {
FLAG=t;
if ($6 ~ "GET" || $6 ~ "POST" ) {
af[FLAG]++;
}
}
}