文档章节

使用nginx收集用户页面加载时间

-外星人-
 -外星人-
发布于 2016/12/09 00:42
字数 516
阅读 42
收藏 2

最近老是有用户说,页面打开慢,但是自己打开又很快,所以想统计一下用户打开网站的时间,当然这个统计有点粗糙,但是也能说明一点问题

实现原理很简单,就是在header里面保存一下用js保存一下当前时间,然后在body结束前面再加一段js,加载耗时(ms) = 用当前时间 - header里面的时间,就得到了这个页面加载大概需要的时间,主要是页面内容、CSS、js这些加载所花的时间,ajax这里不统计,知道原理之后就简单了

这是header里面加的

<script type="text/javascript">var loadTime = new Date().getTime()</script>

这是body结束标签前的,主要用来做数据上传

<script type="text/javascript">
    (function(){var time = new Date().getTime()-loadTime;var args = ['time=' + time,'url=' + location.href,'app=d2VpeGlu'];var img = new Image(1, 1);img.src = 'http://www.test.com/load.gif?' + args.join("&");})()
</script>	

通过加载图片的方式把数据上传到服务器,图片没有跨域问题,我这里主要只采集两个信息,一个是time,也就是时间,一个是当前页面的url,废话,没有url我怎么知道是哪个页面加载比较慢,还有一个参数是app,只要用来区分是那个网站,因为我部署了多个网站,所以加一个app标识,好过滤数据

服务端的nginx其实并没有一个叫做load.gif的图片,这个是我来搜集数据用的,代码就几行

location = /load.gif {
    access_log logs/stat.log main;
    default_type image/gif;
    content_by_lua_block{
        ngx.say("")
    }
}

其实这里什么都没做,直接返回了空内容,只是把日志写到了一个单独统计的log文件里面,好方便查看,有时间的话在lua里面处理一下,做个统计排序,做个数据可视化页面,就差不多了,最近用openresty做了两个网站,感觉还不错,nginx + lua 玩法很多。

© 著作权归作者所有

共有 人打赏支持
-外星人-
粉丝 48
博文 46
码字总数 22286
作品 0
深圳
程序员
网站pv uv 停留时间 等统计

日志中心收集网站访问数据内容 基于nginx记录用户cookie的行为,进行分析 一、用户cookie。 需要创建3个cookie文件gtra、gtrb、gtrc,其中gtra用来追踪用户,gtrb和gtrc联合来标记一次会话。...

闪电
2016/11/28
104
0
使用nginx实现的灰度发布思路研究(待实践)

灰度发布也叫 A/B 测试,原理是一套系统在实现了负载均衡,全国节点都部署了系统之后,可以在新功能上线后,让一小部分用户先使用,从中收集使用信息来做对比和发现bug,及时调整,最终分发到...

easonjim
2017/02/26
0
0
网站数据统计分析之一:日志收集原理及其实现

网站数据统计分析工具是网站站长和运营人员经常使用的一种工具,比较常用的有谷歌分析、百度统计 和 腾讯分析等等。所有这些统计分析工具的第一步都是网站访问数据的收集。目前主流的数据收集...

大数据之路
2014/07/19
0
3
使用nginx lua实现网站统计中的数据收集

数据收集原理分析 简单来说,网站统计分析工具需要收集到用户浏览目标网站的行为(如打开某网页、点击某按钮、将商品加入购物车等)及行为附加数据(如某下单行为产生的订单金额等)。早期的...

linuxprobe
2016/06/23
45
0
用Typecho Redis Cache来为Typecho提供全站超高速缓存

用Typecho Redis Cache来为Typecho提供全站超高速缓存 树叶的BLOG2017-12-032 阅读 RedisOpenShift 前几天在 免费资源部落 上看到一篇文章 用Redis缓存来给WordPress站点加速-适用于Apache和...

树叶的BLOG
2017/12/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

新工作与老项目

新的工作不知不觉的干了一个多月了。怎么说呢,跟想象中的差别不少,本来想的能进来跟大公司的同事能有很多交流,能在团队中跟大牛学习更快。结果公司的这个项目上只有两个程序员,项目是十年...

zypy333
10分钟前
0
0
mysql 在windows的安装

mysql 在windows的安装。 mysql64位的server的下载地址是: https://dev.mysql.com/downloads/mysql/ 使用的是5.7版本。 下载安装包,解压至D:\mysql\mysql-5.7.23-winx64\ 在D:\mysql\mysq...

lxzh504
22分钟前
1
0
云技术、大数据(hadoop)入门常见问题回答

当我们学习一门新技术的时候,我们总是产生各种各样的问题,这些问题整理出来,包括该 1.如何学习hadoop? 2.hadoop常见问题? 3.还有hbase、hive安装使用等? 你知道搭建hadoop平台需要些什...

董黎明
22分钟前
1
0
小程序自定义底部tab

场景 1.tabBar是在内页而非首页,这时就不得不自定义一个tabBar了 2.自定义风格 3.子页数量超过5个,得到更多了tab 4.改变点击tab默认事件,比如出登录界面,或者弹出上拉子菜单等 步骤 1.照...

萤火的萤火
28分钟前
1
0
shell炫技

1.为脚本添加“--help” #!/bin/shif [ ${#@} -ne 0 ] && [ "${@#"--help"}" = "" ]; then printf -- '...help...\n'; exit 0;fi; 2.输出字体添加颜色 https://misc.flogisoft.com......

HJCui
28分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部