搭建前端监控系统(五)消息队列处理并发,在做webfunny前端监控项目之前,作为前端程序员我能够接触到的关于消息队列的应用场景实在有限,所以不能介绍更复杂的内容,大致的思维逻辑:有消息进来,先存入消息队列里,另一端再从队列去取出来,完成接下来的工作。从代码的角度来看:就是一个生产者和消费者的模式,生产者不停的向消息队列里生产消息,消费者在有需要的时候,从消息队列里取消息,一旦完成消费,队列里便移除这个消息。消息的生产者和消费者互相没有感知,生产者产生过剩的消息都存放在消息队列里,由消费者慢慢消耗。以此来削峰填谷,达到处理高并发的目的。通过对前端消息应用场景的浅显理解,我自己在设计webfun...
搭建前端监控系统(三)静态资源加载监控篇如何监控前端静态资源加载情况:2、利用performance.getEntries()方法,获取到所有加载成功的资源列表,在onload事件中遍历出所有页面资源整合部分,利用排除法,到所有整合部分中过滤掉成功的资源列表,即为加载失败的资源。此方法看似合理,也确实能够排查出加载失败的静态资源,但是检查的时机很难掌握,另外如果遇到异步加载的js也就歇菜了;3、添加一个Listener(error)来捕获前端的异常,也是我正在使用的方法,比较靠谱。但是这个方法会监控到很多的error,所以我们要从中筛选出静态资源加载报错的error。webfunny前端监控系...
搭建前端监控系统(四)接口请求异常监控篇如何监控前端接口请求:1、如何监控ajax请求如果作为前端开发者你用的jquery、zepto、或者自己封装的ajax方法,就可以用如下的方法进行监控排查。前端开发者在监控XMLHttpRequest对象的两个事件loadstart,loadend。但是监控的结果并不是像我们想象的那么容易理解,我们先看下ajaxLoadStart,ajaxLoadEnd的回调方法。一个页面上会有很多个请求,当一个页面发出多个请求的时候,ajaxLoadStart事件被监控到,但是却无法区分出来到底发送的是哪个请求,只返回了一个内容超多的事件对象,而且事件对象的内容几乎完...
webfunny前端监控项目可实现:三、记录用户的访问行为有些错误是前端页面经过复杂的跳转、回退之后才发生的,就算测试人员也很难测试出这种问题,因为线上的用户的任何行为都有可能出现。往往我们知道的只是用户在后一次停留的页面发生了错误。如此,我们在前端监控时记录下用户的跳转日志,就能够复现出用户的行为,从而复现BUG。四、记录用户的接口行为接口请求是一个前端项目涉及比较多的行为,接口的异常包括:后台报错,响应超时,网络环境较差,重复接口数据覆盖等等。这些错误也只有在真实的用户环境中才会发生,是典型的前端线上问题。我们可以通过建立前端监控来记录下用户的请求时间,参数,响应时间,响应状态等等,可以具...
目前市面上有不少前端监控系统,主要给大家推荐github4.2Kstar的开源监控系统——Webfunny前端监控系统,webfunny监控的主要特点:1、轻量级:可以随时部署在任何地方,支持ESC部署和Docker部署,非常快捷方便;2、功能完善:不限制应用的流量、自定义日志存储时间,能够适应更多高并发的场景;3、针对性强:针对前端使用场景研发,辅助前端开发,容易上手;4、无风险:所有监控数据都可以回流,监控日志都存储在你们自己的数据库内,不依赖任何第三方;5、费用低:只需要花费少量的赞助,便可以使用一套完整的私有化部署系统;6、提供一对一定制化服务。webfunny前端一体化埋点系统,支持...
搭建前端监控系统(六)之接口性能分析篇这是搭建前端监控系统的第七章,主要是介绍如何监控前端接口的性能。可能前端工程师会奇怪,接口的性能一直都是由后端的小伙伴来监测的,关前端鸟事啊。但其实随着前端业务日益复杂,前端开始承受着前所未有的重要职责。因为前端业务变得复杂,所以前端工程师必须开始让前后端分离,前端、后端小伙伴各司其职,同时也带来了大量的异步接口请求。所以,原本由后端小伙伴监控接口的一部分职责,便落到了我们前端小伙伴的肩膀上了。那么如何有效的进行接口性能的监控,通过webfunny前端监控、只需要简单几步就可以搭建一套属于自己的前端监控系统。webfunny前端监控系统可实时展示数据,项目...
前端出现异常报错的时候,有前端帮后台背锅之前怎么快速优雅的"甩锅"?在做前端程序员的时候,我之前所在的公司后台可是有着完善的监控系统,他们都觉得自己的代码和监控都做得非常完善,但是前端的我做了监控结果后来看,事实并非如此。当然,你也许会说这是开发和测试不专业,这么明显的问题都没有发现,但是,我只能用一句话来解释:人非圣贤。与其追究是谁的责任,不如想办法解决问题。将线上的损失减少到较低的影响。如果作为前端你对项目做了监控,并且能实时监控到,出现问题的时候把报错截图发给后台小伙伴,你还需要跟他们争论是谁的锅吗?当然,如果是前端程序员自己的锅,那还是赶紧偷偷修改掉吧,在建立webfunny前端监控时...
前端技术优化方案,需要有着陆点,以下就是前端优化比较基本的两个着陆点。1.白屏时间:输入网址后回车-浏览器出现的元素。2.首屏时间:输入网址后回车-浏览器渲染完成耗时的过程包括:DNS查询、TCP连接、HTTP请求响应、HTML解析。减少DNS查询(时间极端,几乎可以忽略)、减少TCP连接次数(适量保持keep-alive,负载均衡)、减少HTTP请求数(合并静态资源请求,js合并,雪碧图,小图片转base64等等;合并接口请求)、压缩资源体积(webpack打包压缩静态资源,nginx开启gzip做合适程度的压缩)、缓存静态资源(使用CDN,静态资源开启cache-control,Nginx...
前端出现异常的时候,前端程序员如果发现是CDN报错的原因,这个时候为了避免出现替第三方公司背锅,因为做前端的都知道,这是很憋屈的一种线上Bug,还是替第三方公司背锅。如果是第三方的东西出了问题,上面领导永远都只怀疑是你的代码有bug,如果你没有有力的证据,即使你已经排查过了,领导也只会说一句“你再去好好排查一下你自己的代码”,这时候前端可能会很委屈、有一键盘呼他脸上的冲动。因为之前工作的时候出现过这种背锅的事情,所以在webfunny前端监控系统里加入了对静态资源的监控功能。前不久,阿里部分区域的出现了5分钟无法访问的情况。我们线上群里顿时就炸开了锅,让我赶紧排查问题。我打开了错误监控,发现只...
webfunny前端监控项目可实现:一、统计前端错误众所周知,我们有办法去统计前端的错误,那就是大名鼎鼎的,,以及一些额外的信息。将,就能统计出每天的错误量,每个小时的错误量,每天的错误率变化,来鉴定我们前端线上环境是否健康。我们按照JS错误数量进行分类排序,按照页面进行错误分类。通过上边的数据分析,我们能够清晰地观察到线上项目的报错情况。二、分析错误详情前端线上的错误日志统计出来后,通过webfunny前端监控项目可以解析这些错误日志,解析出用户的机型,版本,系统平台,影响范围,以及具体的错误位置,从而提高前端开发者解决问题的效率。 webfunny前端监控在错误分析功能上,可以...
webfunny前端监控中自定义埋点和漏斗分析7.1、自定埋点:正常情况下,埋点功能应该由后端同学配合完成。在真实的开发过程中,我们免不了遇到需要做一些特殊的埋点,但是有时候又不容易得到后端同学帮助的情况,那么前端开发可以自己去完成埋点功能。如下:图表中展示埋点触发的次数,以及埋点触发的人数。7.2、漏斗分析:在增加自定义埋点的同时,Webfunny也增加了埋点步骤转化率统计:埋点1->埋点2的留存率分析。进一步强化自定义埋点功能。webfunny前端一体化埋点系统,支持多场景搭建分析,更全的支持业务的多角度分析。湖南服务前端监控答疑解惑目前市面上有不少前端监控系统,主要给大家推荐github...
webfunny前端监控项目可实现:三、记录用户的访问行为有些错误是前端页面经过复杂的跳转、回退之后才发生的,就算测试人员也很难测试出这种问题,因为线上的用户的任何行为都有可能出现。往往我们知道的只是用户在后一次停留的页面发生了错误。如此,我们在前端监控时记录下用户的跳转日志,就能够复现出用户的行为,从而复现BUG。四、记录用户的接口行为接口请求是一个前端项目涉及比较多的行为,接口的异常包括:后台报错,响应超时,网络环境较差,重复接口数据覆盖等等。这些错误也只有在真实的用户环境中才会发生,是典型的前端线上问题。我们可以通过建立前端监控来记录下用户的请求时间,参数,响应时间,响应状态等等,可以具...
搭建前端监控系统(四)接口请求异常监控篇如何监控前端接口请求:1、如何监控ajax请求如果作为前端开发者你用的jquery、zepto、或者自己封装的ajax方法,就可以用如下的方法进行监控排查。前端开发者在监控XMLHttpRequest对象的两个事件loadstart,loadend。但是监控的结果并不是像我们想象的那么容易理解,我们先看下ajaxLoadStart,ajaxLoadEnd的回调方法。一个页面上会有很多个请求,当一个页面发出多个请求的时候,ajaxLoadStart事件被监控到,但是却无法区分出来到底发送的是哪个请求,只返回了一个内容超多的事件对象,而且事件对象的内容几乎完...
前端出现异常的时候,前端程序员如何快速甩锅?特别是前端程序员发现前端报错的原因是网络问题,虽然很多时候这种报错问题是由用户的网络问题导致的。网络是跟用户体验密切相关的因素,但却是开发小伙伴无能为力的因素,因为这取决于用户当时的网络环境是否良好。如果我们能够判断出用户当时的网络情况,对我们排查问题也是很有帮助的。首先,网络环境对页面初次加载影响比较明显。理论上讲,前端是不方便把用户当时的网络情况计算出来,但是我们可以侧面评估出用户当时的网络环境。虽然我们测不出来网速,但是我们可以计算出用户初次加载页面的时间,以此来评估用户的网络环境。webfunny线上调试功能,支持实时了解用户的行为、控制台打...
webfunny前端监控项目可实现:三、记录用户的访问行为有些错误是前端页面经过复杂的跳转、回退之后才发生的,就算测试人员也很难测试出这种问题,因为线上的用户的任何行为都有可能出现。往往我们知道的只是用户在后一次停留的页面发生了错误。如此,我们在前端监控时记录下用户的跳转日志,就能够复现出用户的行为,从而复现BUG。四、记录用户的接口行为接口请求是一个前端项目涉及比较多的行为,接口的异常包括:后台报错,响应超时,网络环境较差,重复接口数据覆盖等等。这些错误也只有在真实的用户环境中才会发生,是典型的前端线上问题。我们可以通过建立前端监控来记录下用户的请求时间,参数,响应时间,响应状态等等,可以具...
搭建前端监控系统(六)之接口性能分析篇,如何监控前端接口的性能。一、接口耗时分段分析在webfunny前端监控系统上,我们的开发者将前端接口耗时划分为5个分段:<1秒、1-5秒、5-10秒、10-30秒、>30秒10秒是用户可忍受等待时间的临界值,如果一个接口超过10秒还在loading,用户极有可能杀掉程序。所以一般情况下,大于10秒的接口都可以认为是超时接口(特殊情况例外)。即使真的有这种情况,也应该让后端小伙伴把这个接口做成异步接口,在10秒内给用户一个反馈。为什么要把耗时分段进行分析呢,因为大部分时候,前端工程师通常要关心就是10-30秒这个段位,大部分超时的接口都会在这里发生。这种超...
搭建前端监控系统(五)消息队列处理并发:1、增加日志上传的时间间隔前端程序员应该都知道,日志上传的时间间隔越长,用户在这个间隔内离开的几率就会越大,日志的漏传量就会增加,然后会导致日志的准确度降低。因为我们的探针是安插在浏览器内的,用户随时都有可能关掉,所以,理论上讲间隔越短越好,但这并不现实。所以这个需要在服务器的承受能力和日志的准确率之间做个权衡。由具体情况而定2、移除探针代码里冗余的参数,缩短参数名字的长度另外一点,每台服务器的硬盘有限,带宽有限,如果参数名字太长,参数内容冗余,对服务器的硬盘和带宽都是一种极大的浪费。虽然每条日志都不起眼,但是日志起量了以后,就是会是一笔非常庞大的开销。...
搭建前端监控系统(四)接口请求异常监控篇前端接口请求异常监控的必要性:1.前端工程师需要监控接口报错的情况,及时定位线上问题产生的原因。2.前端工程师需要分析接口的性能,以辅助前端工程师自己随时应对前端应用的优化。如何监控前端接口请求:一般前端请求都是用jquery的ajax请求,也有用fetch请求的,以及前端框架自己封装的请求等等。总之他们封装的方法各不相同,但是万变不离其宗,他们都是对浏览器的这个对象window.XMLHttpRequest进行了封装,所以我们只要能够监控排查到这个对象的一些事件,就能够把请求的信息分离出来。webfunny前端监控系统,一站式数据可视化展示平台,炫酷大...
前端出现异常的时候,前端程序员如何快速甩锅?这就需要定位到前端异常的问题,才能有针对性的去甩锅。常见的前端异常一、白屏想必是前端小伙伴的噩梦,因为页面白屏了,对前端小伙伴来说,是属于严重的bug了,因为业务因此瘫痪了,哪怕不是前端程序员的锅,也背定了。为了避免一脸懵逼,什么有用的信息都没有,解决起来无从着手的情况发生,我们要知道导致白屏的原因有哪些呢?基本上导致白屏的原因是你的JS报错了,运行时抛出异常,静态资源加载失败,如:js、css文件加载失败,也会导致白屏。以上两点是导致前端白屏的主要原因,当然还有什么机子兼容性不好太卡,网络异常什么的,那都小概率事件,属于前端监控的另一个维度了,we...
前端出现异常的时候,前端程序员如何快速甩锅?特别是前端程序员发现前端报错的原因是网络问题,虽然很多时候这种报错问题是由用户的网络问题导致的。网络是跟用户体验密切相关的因素,但却是开发小伙伴无能为力的因素,因为这取决于用户当时的网络环境是否良好。如果我们能够判断出用户当时的网络情况,对我们排查问题也是很有帮助的。首先,网络环境对页面初次加载影响比较明显。理论上讲,前端是不方便把用户当时的网络情况计算出来,但是我们可以侧面评估出用户当时的网络环境。虽然我们测不出来网速,但是我们可以计算出用户初次加载页面的时间,以此来评估用户的网络环境。webfunny埋点系统,支持自定义SDK创建,可根据自身业务...
目前市面上有不少前端监控系统,主要给大家推荐github4.2Kstar的开源监控系统——Webfunny前端监控系统,webfunny监控的主要特点:1、轻量级:可以随时部署在任何地方,支持ESC部署和Docker部署,非常快捷方便;2、功能完善:不限制应用的流量、自定义日志存储时间,能够适应更多高并发的场景;3、针对性强:针对前端使用场景研发,辅助前端开发,容易上手;4、无风险:所有监控数据都可以回流,监控日志都存储在你们自己的数据库内,不依赖任何第三方;5、费用低:只需要花费少量的赞助,便可以使用一套完整的私有化部署系统;6、提供一对一定制化服务。webfunny前端监控系统通过监控PV...
webfunny前端监控项目可实现:七、分析用户的场外信息当用户所有的行为都被前端开发者掌握之后,前端能够复现出用户的行为,甚至能够复现出用户的问题,也许还需要一些场外信息才能准确定位问题,比如,用户的机型,地理位置,系统版本,当时的网络环境(这个不准确,我做webfunny前端项目场景测试时,是依据用户当时初次加载页面的时间来判断,只能作为参考依据)前端线上问题产生的原因五花八门,只有把日志做全了,才能够准确的定位和解决前端问题、作好前端项目的监控。这是webfunny前端监控项目开发者排查线上问题的经验和实战,分享给所有的前端工程师们参考,当然理论有了,作为前端开发技术同学还是实操效果更好...
搭建前端监控系统(六)之接口性能分析篇,如何监控前端接口的性能。二、单个接口分析很多时候,前端出现接口问题的肯定某一个接口出现异常,如果是大面积异常,前端同学的电话肯定被老板打爆了,也不需要监控了。那么针对单个接口我们应该分析哪些指标呢?超时接口数量、单个接口的平均耗时、影响用户数量、发生页面个数、可以准确定位到某个小时和某一分钟发生的情况。三、分析报警分析报警可以分为多个指标:超时接口数量、超时接口占比(百分比),影响用户数量。随着工作的不断深入,前端工程师应该走出舒适圈,关注更多维度的指标,不能再局限在狭义的前端后端了。webfunny前端监控系统随时连接线上用户,无论何时何地,解决前端问...
webfunny整套前端监控监控系统的流程是比较简单的:手机端-用户访问页面会产生错误日志、产生的日志会存入浏览器缓存,浏览器本地缓存会定时向Node服务推送日志信息,NodeJs日志服务会分类处理后,存入到mysql数据库中,数据可视化系统会展示日志数据。webfunny前端监控用mysql数据库来存数据库,目前没有遇到卡死的情况。webfunny前端监控系统的数据库,采用了每日分表的模式,目前千万级别的日志量是没有问题的哦,请放心使用吧。Webfunny前端监控系统支持的项目有H5前端、PC前端、微信小程序、uni-APP。webfunny一体化埋点系统:数据“采集+管理+分析”智能一体化...
前端出现异常的时候,前端程序员如何快速甩锅?特别是前端程序员发现前端报错的原因是接口报错,这时候如何把这个前端报错的问题优雅的甩给后端程序员。可能有些前端程序员会认为接口的报错应该由后台来关注,统计,并修复。确实如此,而且后台服务有了很多成熟完善的统计工具,完全能够应对大部分的异常情况,那么为什么还需要前端来解决接口问题呢。原因很简单,因为前端是bug的重要发现位置,报错发生时肯定会先找到前端程序员来解决,那么在前端帮后台背锅之前怎么快速优雅的"甩锅"呢?大家有没有想过,如果前端程序员都对自己的项目做了系统的监控、报错都能实时反馈展示,就不用担心甩锅的问题了。webfunny前端监控工具,就是...
webfunny整套前端监控监控系统的流程是比较简单的:手机端-用户访问页面会产生错误日志、产生的日志会存入浏览器缓存,浏览器本地缓存会定时向Node服务推送日志信息,NodeJs日志服务会分类处理后,存入到mysql数据库中,数据可视化系统会展示日志数据。webfunny前端监控用mysql数据库来存数据库,目前没有遇到卡死的情况。webfunny前端监控系统的数据库,采用了每日分表的模式,目前千万级别的日志量是没有问题的哦,请放心使用吧。Webfunny前端监控系统支持的项目有H5前端、PC前端、微信小程序、uni-APP。webfunny埋点系统丰盛数据收集,真实还原用户行为轨迹,了解产...
很多前端程序员都很难接触到实践前端埋点与监控。当然,就算有机会接触到前端监控的前端,一旦遇到相关问题也十分令人痛苦了。用户在实际场景重的一系列操作,外加一些类似机型、网络环境的问题,让前端很难在开发环境中复现出来。特别是前端在没有监控加持的情况下,需要人为手动解决问题,还要应对产品的需求轰炸,真是太难了。作为webfunny前端监控系统的开发者,我们深知做好任何一个产品都不会那么容易,特别是前端监控这种技术型产品,webfunny前端监控系统还有很多需要改进和提升的地方,而webfunny前端监控一直在不断的迭代产品。如果你是前端工程师,对监控有兴趣,可以来webfunny官网试用demo,只...
前端程序员如何明确定位、排查前端生产问题?六、记录用户的页面截图即使你记录下所有的行为,但是你依然需要看到页面的样子,才能够分析出问题所在,那么我们在webfunny前端监控系统上,依然可以通过js截图来看看用户设备上的样子。七、分析用户的场外信息当用户所有的行为都被我们掌握之后,就能够复现出用户的行为,甚至能够复现出用户的问题,也许还需要一些场外信息才能明确定位问题,比如,用户的机型,地理位置,系统版本,当时的网络环境(这个不准确,我是依据用户当时加载页面的时间来判断,只能作为参考依据),前端问题产生的原因五花八门,只有把日志做全了,才能够明确的定位和解决问题。webfunny前端一体化埋点...
前端出现异常只有一种情况是需要前端程序员自己背锅的,那就是前端代码错误。别人的锅都可以甩出去,甩锅给后端、三方公司、网络问题等等,但是剩下前端自己代码问题,这种就是前端的锅了。正常情况下,线上前端代码出现错误的可能行比较小,因为经过细心的测试,前端代码错误是很容暴露出来的。另外,前端自己的锅,咱自己应该清楚。加上我在设计webfunny前端监控系统的时候,做了一个非常细致的错误分析,针对前端问题解决起来也是得心应手。造成线上问题的因素有很多,代码错误是其中一个很小的因素。通过webfunny前端监控系统可以在这众多繁杂的因素之中找到真正原因,这个监控系统并不是帮你解决所有问题,而是能够告诉你那...
前端出现异常的时候,前端程序员如果发现是CDN报错的原因,这个时候为了避免出现替第三方公司背锅,因为做前端的都知道,这是很憋屈的一种线上Bug,还是替第三方公司背锅。如果是第三方的东西出了问题,上面领导永远都只怀疑是你的代码有bug,如果你没有有力的证据,即使你已经排查过了,领导也只会说一句“你再去好好排查一下你自己的代码”,这时候前端可能会很委屈、有一键盘呼他脸上的冲动。因为之前工作的时候出现过这种背锅的事情,所以在webfunny前端监控系统里加入了对静态资源的监控功能。前不久,阿里部分区域的出现了5分钟无法访问的情况。我们线上群里顿时就炸开了锅,让我赶紧排查问题。我打开了错误监控,发现只...