bash
本文是从'业务'侧来衡量整个'应用系统'的性能,区别与'上篇'的网络'性能'分析
备注: 这里的'日志'不仅指的是'业务'类型日志,也包括'系统'日志等'各种类型'的日志
关键: 掌握'PV'和'UV'的概念和'度量'方式
++++++++++ "以下是关于埋点的科普文章" ++++++++++
埋点采集数据 埋点系列之埋点需求分析&设计埋点方案 三种前端埋点方式
① 用户行为
② 假定待分析access.log日志格式
bash
log_format combined '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
备注: 关于'nginx'日志格式相关'字段'的含义这里不再'赘谁',可以看我'之前'的nginx专栏
补充: 本篇通过分析nginx的access.log访问日志来进行'PV'和'UV'的讲解
③ PV分析
④ PV分组
bash
需求: 根据'访问时间'进行分组
技巧: awk '{print substr($4,2,11)}' --> 'substr'截取'函数'
bash
接着使用 sort 对'日期'进行排序,然后使用 'uniq -c' 进行统计,于是'按天分组'的 PV 就出来了
备注: 刚好回顾了'sort'和'uniq'命令的使用
⑤ UV 分析
⑥ UV分组
bash
需求: 对'当天'的 'UV' 统计,在上面的命令再'拼接'
awk '{uv[$1]++;next}END{for (ip in uv) print ip, uv[ip]}' 命令就可以了
--> 结果如'下图':
⑦ 客户端分析
bash
说明: 分析'哪个'页面访问'次数'最多,'受欢迎'的'前几名'