搭建前端监控系统(五)消息队列处理并发:1、增加日志上传的时间间隔前端程序员应该都知道,日志上传的时间间隔越长,用户在这个间隔内离开的几率就会越大,日志的漏传量就会增加,然后会导致日志的准确度降低。因为我们的探针是安插在浏览器内的,用户随时都有可能关掉,所以,理论上讲间隔越短越好,但这并不现实。所以这个需要在服务器的承受能力和日志的准确率之间做个权衡。由具体情况而定2、移除探针代码里冗余的参数,缩短参数名字的长度另外一点,每台服务器的硬盘有限,带宽有限,如果参数名字太长,参数内容冗余,对服务器的硬盘和带宽都是一种极大的浪费。虽然每条日志都不起眼,但是日志起量了以后,就是会是一笔非常庞大的开销。...
搭建前端监控系统(四)接口请求异常监控篇,如何监控前端接口请求:1、如何监控ajax请求当ajaxLoadStart事件发生的时候,我们将回调方法中的事件对象全都放进数组timeRecordArray里,当ajaxLoadEnd发生的时候,我们就去遍历这个数据,遇到又返回结果的事件对象,说明接口请求已经完成,记录下来,并从数组中删除该事件对象。这样前端开发者们就能够逐一分析出接口请求的内容了。2.如何监控fetch请求通过第一种方法,已经能够监控到大部分的ajax请求了。然而,使用fetch请求的人越来越多,因为fetch的链式调用可以让前端开发者们摆脱ajax的嵌套地狱,被更多的人所青睐。w...
前端监控通常情况下监控的内容可以分为三类:一,js错误。js错误又分大概四种:一是uncaughterror,这种错误通常情况下发生在我们的开发过程中。理论上不需要我们进行上报。二是jsruntimeerror,这种错误会触发window.onerror事件,我们可以通过onerror事件,获取到相关的信息进行上报。三是资源错误,比如图片加载失败等,它也会触发error事件。四是unhandledregection错误,这种错误由promise触发,我们可以onunhandledrejection方法获取相关信息进行上报webfunny前端监控系统的错误分析功能,通过探针监控和上报线上环境的报...
前端出现异常的时候,前端程序员如何快速甩锅?这就需要定位到前端异常的问题,才能有针对性的去甩锅。常见的前端异常一、白屏想必是前端小伙伴的噩梦,因为页面白屏了,对前端小伙伴来说,是属于严重的bug了,因为业务因此瘫痪了,哪怕不是前端程序员的锅,也背定了。为了避免一脸懵逼,什么有用的信息都没有,解决起来无从着手的情况发生,我们要知道导致白屏的原因有哪些呢?基本上导致白屏的原因是你的JS报错了,运行时抛出异常,静态资源加载失败,如:js、css文件加载失败,也会导致白屏。以上两点是导致前端白屏的主要原因,当然还有什么机子兼容性不好太卡,网络异常什么的,那都小概率事件,属于前端监控的另一个维度了,we...
搭建前端监控系统(七)之用户细查篇一、如何贯穿用户的整个行为链路?这个很好理解,贯穿用户的整个行为链路,就需要一个单一的key来标识这个用户。比较简单的就是使用UserId了,在通过webfunny前端监控系统「用户细查」的功能模块,每个用户我都给他传入一个userId就可以了串联起来了。但是这种方式有一个很容易被忽略的弊端:如果这个项目获取userId速度比较慢,或者压根不会有userId,那么用户的行为记录是不是会出现缺失呢?或者根本就无法关联呢?那我们该如何规避这种问题呢?webfunny是如何做到的呢?为了规避以上提出的几点问题,webfunny通过设置内置id,来对所有的用户进行区分...
你知道有多少用户没等到页面首屏出现就离开了吗?性能不佳会对业务目标产生负面影响。比如,BBC发现他们的网站加载时间每增加一秒,他们就会失去10%的用户。高性能站点比低性能站点更能吸引和留住用户,而留住用户对于提高用户转化率至关重要。 何衡量站点性能站点性能好坏的表现形式是多样的,不是单纯通过页面加载速度、页面渲染速度就能衡量,而是要关注从页面开始加载到被关闭的整个过程中,用户对性能的感知。一个页面,即使很快渲染,如果对用户的交互迟迟没有响应,那么在用户心中这个站点的性能依然很差。站点性能一般可以分为两类,一类是首屏性能,另一类是运行时性能。前者衡量的是页面从加载开始到可以稳定交互的性...
针对webfunny整套前端监控监控系统,前端工程师会疑问的问题解答:webfunny监控这么多东西,不会影响页面的性能,首先webfunny这套监控系统我们自己和试用购买webfunny的前端工程师已经使用很久了,目前没有遇到性能上的问题。当然,也有极个别的小伙伴反馈说,拖慢了系统。所以我们增加了设置功能,在使用webfunny前端监控时,你可以去除掉大部分的监控功能。webfunny前端监控居然用node做日志服务,并发量高了可以扛得住。因为node处理并发有着天然的优势,目前,如果是单点部署,可以支持10万+的日活量,如果使用多点部署,效果更佳哦。我们已经积极开发出能够支持百万以上日活量...
提到监控系统,大部分开发人员首先想到的是后端监控。很明显,比如检测服务器性能,数据库性能,API的访问流量,以及各种服务的运行情况等等,都与后端息息相关。而前端更多承担的是UI展现的角色,主要关注页面怎么排版设计,好像没什么需要监测的地方,因此一直以来都没有涉及到监控的概念。 于是呢大家就一致认为:只要后端稳定可控,应用就是稳定可控的,可实际情况前端监控的重要性不亚于后端。现在的前端监控并不仅是监控异常数据,任何有利于产品分析的数据都可以加入监控。所以我认为前端监控,就是指采集用户使用系统过程中产生的关键数据,存储到数据库,后续可以查找和分析,这样的整套实现就被称为前端监控系统。 w...
前端出现异常的时候,前端程序员如果发现是CDN报错的原因,这个时候为了避免出现替第三方公司背锅,因为做前端的都知道,这是很憋屈的一种线上Bug,还是替第三方公司背锅。如果是第三方的东西出了问题,上面领导永远都只怀疑是你的代码有bug,如果你没有有力的证据,即使你已经排查过了,领导也只会说一句“你再去好好排查一下你自己的代码”,这时候前端可能会很委屈、有一键盘呼他脸上的冲动。因为之前工作的时候出现过这种背锅的事情,所以在webfunny前端监控系统里加入了对静态资源的监控功能。前不久,阿里部分区域的出现了5分钟无法访问的情况。我们线上群里顿时就炸开了锅,让我赶紧排查问题。我打开了错误监控,发现只...
搭建前端监控系统(七)之用户细查篇:用户细查具体要分析哪些数据,更容易帮助我们定位前端问题呢说完用户基本信息和页面平均加载时间,下面就要来说接口耗时正态分布。接口耗时同样能够反馈出用户当时的网络状态,同时他也能反馈出服务端接口的状态。比如,页面平均耗时表现良好,接口耗时表现差,则能反映出,当时的后端服务状态不是很好。还有完整的用户行为记录,以上是用户行为中的基本信息,接下来要说的是用户的完整行为链路,通过将页面访问、接口请求、代码报错、自定义行为等,按照时间先后顺序串联起来,可以达到复现用户错误的目的。其中,接口请求记录,除了会记录接口耗时,还需要记录接口的返回值,这样能够更加明确的定位数据问...
目前市面上有不少前端监控系统,主要给大家推荐github4.2Kstar的开源监控系统——Webfunny前端监控系统,webfunny监控的主要特点:1、轻量级:可以随时部署在任何地方,支持ESC部署和Docker部署,非常快捷方便;2、功能完善:不限制应用的流量、自定义日志存储时间,能够适应更多高并发的场景;3、针对性强:针对前端使用场景研发,辅助前端开发,容易上手;4、无风险:所有监控数据都可以回流,监控日志都存储在你们自己的数据库内,不依赖任何第三方;5、费用低:只需要花费少量的赞助,便可以使用一套完整的私有化部署系统;6、提供一对一定制化服务。前端线上的用户操作行为十分复杂,部分问题...
你知道有多少用户没等到页面首屏出现就离开了吗?性能不佳会对业务目标产生负面影响。比如,BBC发现他们的网站加载时间每增加一秒,他们就会失去10%的用户。高性能站点比低性能站点更能吸引和留住用户,而留住用户对于提高用户转化率至关重要。 何衡量站点性能站点性能好坏的表现形式是多样的,不是单纯通过页面加载速度、页面渲染速度就能衡量,而是要关注从页面开始加载到被关闭的整个过程中,用户对性能的感知。一个页面,即使很快渲染,如果对用户的交互迟迟没有响应,那么在用户心中这个站点的性能依然很差。站点性能一般可以分为两类,一类是首屏性能,另一类是运行时性能。前者衡量的是页面从加载开始到可以稳定交互的性...
搭建前端监控系统(五)消息队列处理并发,通过一个消息暴增引发的前端线上崩了的问题场景来说明:消息队列处理并发的重要性随着前端监控日志搜集的内容越来越多,终于由于公司公众号的一波推文,导致了日志的瞬间流量达到历史新高,以至于mysql无法处理如此多的连接,系统崩溃。当然,作为日志上传的服务器,这个是必然会发生的情况,只是早晚的问题。既然出现了并发问题,那么前端工程师们就着手来处理吧。日志上传如何缓解高并发的情况呢?我们分为三个小点来处理。webfunny前端监控在错误分析功能上,可以准确定位代码问题所在位置。前端监控和js性能监控产品开源搭建前端监控系统(六)之接口性能分析篇这是搭建前端监控系统...
做过前端的开发的小伙伴想必经常被线上的各种问题弄的焦头烂额,不是出现适配问题,就是出现功能异常。 虽然,公司一般也有各种监控系统来帮助我们分析和发现问题,但是,我们每次解决问题都需要辗转于各种监控系统之间,非常麻烦! 下面就给大家推荐一款开源好用的前端监控系统!这个监控系统就是专门为前端开发所打造的。通过这个前端监控系统,不仅可以实时监控前端性能,还可以实时分析前端健康状态。并且,系统不光支持PC前端,还支持H5前端、微信小程序、uni-app。 这个项目的名字叫做webfunny_monitor,目前在Github上收获了4.6k+的star。 Webfunny专注于微...
你是如何搭建 Web 前端性能监控系统的? 刚好看到一个非常不错的开源的前端监控系统,分享一下!做过前端的开发的小伙伴想必经常被线上的各种问题弄的焦头烂额,不是出现适配问题,就是出现功能异常。虽然,公司一般也有各种监控系统来帮助我们分析和发现问题,但是,我们每次解决问题都需要辗转于各种监控系统之间,非常麻烦! 给大家推荐一款开源好用的前端监控系统!这个监控系统就是专门为前端开发所打造的。通过这个前端监控系统,不仅可以实时监控前端性能,还可以实时分析前端健康状态。并且,系统不光支持PC前端,还支持H5前端、微信小程序、uni-app。这个项目的名字叫做webfunny_monit...
你是如何搭建 Web 前端性能监控系统的? 刚好看到一个非常不错的开源的前端监控系统,分享一下!做过前端的开发的小伙伴想必经常被线上的各种问题弄的焦头烂额,不是出现适配问题,就是出现功能异常。虽然,公司一般也有各种监控系统来帮助我们分析和发现问题,但是,我们每次解决问题都需要辗转于各种监控系统之间,非常麻烦! 给大家推荐一款开源好用的前端监控系统!这个监控系统就是专门为前端开发所打造的。通过这个前端监控系统,不仅可以实时监控前端性能,还可以实时分析前端健康状态。并且,系统不光支持PC前端,还支持H5前端、微信小程序、uni-app。这个项目的名字叫做webfunny_monit...
搭建前端监控系统(六)之接口性能分析篇这是搭建前端监控系统的第七章,主要是介绍如何监控前端接口的性能。可能前端工程师会奇怪,接口的性能一直都是由后端的小伙伴来监测的,关前端鸟事啊。但其实随着前端业务日益复杂,前端开始承受着前所未有的重要职责。因为前端业务变得复杂,所以前端工程师必须开始让前后端分离,前端、后端小伙伴各司其职,同时也带来了大量的异步接口请求。所以,原本由后端小伙伴监控接口的一部分职责,便落到了我们前端小伙伴的肩膀上了。那么如何有效的进行接口性能的监控,通过webfunny前端监控、只需要简单几步就可以搭建一套属于自己的前端监控系统。webfunny前端监控专为前端开发所打造。通过...
前端工程师们都知道,前端的线上问题很难定位,因为它发生于用户的一系列操作之后。前端线上问题错误的原因可能源于机型、网络环境、接口请求、复杂的操作行为等等,在我们想要去解决的时候很难复现出来,自然也就无法解决。当你开发的项目在线上运行的时候,你能否知道它是否在健康的运行呢?当你的js出现大量报错,你能及时的知道,并快速的修复吗?当你的接口出现大量的错误导致线上错误,你能快速发现并及时甩锅给后端的小伙伴吗?当你的CDN嗝屁了,你能知道是第三方的问题,而不是满头大汗排查你的代码吗?当你线上的用户在app上做了一大堆奇葩的操作,搞成了一个莫名的Bug,你有信心将它复现吗?身为一名前端开发者,webfu...
搭建前端监控系统(七)之用户细查篇三、用户细查具体要分析哪些数据,更容易帮助我们定位前端问题呢首先是用户基本信息,既然是查询用户的行为记录,那么用户的基本信息肯定是必不可少。正常情况下,我们需要知道用户的标签、使用设备型号、系统版本、IP地址、所在地区、浏览器useragent等;详细的信息展示可以通过webfunny前端监控系统进行demo实操查看。其次是页面平均加载时间,这里可能有人会问了,既然是用户行为记录查询,为什么又需要查看页面平均加载时间呢?如大家所知,造成一个用户在我们的应用上不可用的情况,有很多种原因,其中网络速度是不可以忽略的因素。所以通过页面的平均加载时间我们可以判断用户当...
如何解决前端线上问题?如果你是一位前端工程师,那你一定不止一次去解决一些顽固的线上问题,你也曾想方设法复现用户的bug,结果可能都不太理想。怎样定位前端线上问题,一直以来,都是很头疼的问题,因为它发生于用户的一系列操作之后。错误的原因可能源于机型,网络环境,复杂的操作行为等等,在我们想要去解决的时候很难复现出来,自然也就无法解决。身为一名前端工程师,我每天都要面临很多线上的问题,一时间让我焦头烂额。虽然公司也有其他的监控系统,但是每次解决问题都需要辗转于各种监控系统之间,亦是疲惫不堪。所以,一怒之下,基于自己在前端线上监控工作时的这些痛点,我便为自己(前端工程师)量身定做了这样一款监控系统:w...
webfunny前端监控系统—纯私有化部署,可实现的功能介绍前端监控功能三、Debug模式:根据userId,前端工程师可以随时随地连接线上用户(包括开发环境、测试环境、以及生产环境),webfunny前端监控系统会记录用户的所有行为,本地缓存信息(localStorage、sessionStorage、cookie)、控制台打印信息。同时webfunny还会录下用户的整个操作过程,支持回放。作为前端工程师我也曾经在谷歌调试模式、safari调试模式、安卓调试模式、charles代理模式、Postman模式等各种调试模式下疲于奔命,所以我在开发webfunny前端监控时、就决定开发这个Debu...
前端出现异常只有一种情况是需要前端程序员自己背锅的,那就是前端代码错误。别人的锅都可以甩出去,甩锅给后端、三方公司、网络问题等等,但是剩下前端自己代码问题,这种就是前端的锅了。正常情况下,线上前端代码出现错误的可能行比较小,因为经过细心的测试,前端代码错误是很容暴露出来的。另外,前端自己的锅,咱自己应该清楚。加上我在设计webfunny前端监控系统的时候,做了一个非常细致的错误分析,针对前端问题解决起来也是得心应手。造成线上问题的因素有很多,代码错误是其中一个很小的因素。通过webfunny前端监控系统可以在这众多繁杂的因素之中找到真正原因,这个监控系统并不是帮你解决所有问题,而是能够告诉你那...
webfunny前端监控项目可实现:五、记录用户的点击行为用户经过一系列复杂的行为操作之后(主要是点击行为),页面的样子和保存的数据都经过了很多变化,此时此刻常容易发生数据错乱的现象,导致前端开发者修复bug的时候无从入手,是复现用户行为中重要的一环。六、记录用户的页面截图即使前端开发者记录下所有的用户行为,但是前端工程师依然需要看到页面的样子,才能够分析出问题所在,那么前端开发者依然可以通过js截图来看看用户设备上的样子。webfunny埋点系统,更轻量、易使用,降低数 据分析使用门槛,快速实现业务分析需求。国内好用的前端监控和js稳定性监控平台webfunny前端监控项目可实现:七、分析用...
搭建前端监控系统(五)消息队列处理并发,在做webfunny前端监控项目之前,作为前端程序员我能够接触到的关于消息队列的应用场景实在有限,所以不能介绍更复杂的内容,大致的思维逻辑:有消息进来,先存入消息队列里,另一端再从队列去取出来,完成接下来的工作。从代码的角度来看:就是一个生产者和消费者的模式,生产者不停的向消息队列里生产消息,消费者在有需要的时候,从消息队列里取消息,一旦完成消费,队列里便移除这个消息。消息的生产者和消费者互相没有感知,生产者产生过剩的消息都存放在消息队列里,由消费者慢慢消耗。以此来削峰填谷,达到处理高并发的目的。通过对前端消息应用场景的浅显理解,我自己在设计webfun...
搭建前端监控系统(三)静态资源加载监控篇如何监控前端静态资源加载情况:前端开发者可以根据报错是的,还是script标签。由于目前暂时关注对前端造成崩溃的错误,所以目前只监控了css,js文件加载错误的情况。首先,前端工程师要做的实时监控和预警,依然关联了7天以前同一时间端的数据,如果某个时间段出现错误量暴增,可以发出警告,及时制止。然后,前端开发者还需要知道更多详细的信息,如资源加载报错、资源失败列表等等,虽然前端线上环境并没有给前端开发者报出这么多的问题,但是可以看到,每天还是有很多的静态资源加载报错,有些是很重要的静态资源文件,是必然会导致页面渲染失败的,所以必须要解决建立合理的前端监控机...
前端程序员如何明确定位、排查前端生产问题?四、记录用户的接口行为接口请求是一个前端项目涉及比较多的行为,接口的异常包括:后台报错,响应超时,网络环境较差,重复接口数据覆盖等等。这些错误也只有在真实的用户环境中才会发生,是典型的线上问题。通过webfunny前端监控系统可以记录下用户的请求时间,参数,响应时间,响应状态等等,可以具体分析出来接口对页面的影响。五、记录用户的点击行为用户经过一系列复杂的行为操作之后(主要是点击行为),页面的样子和保存的数据都经过了很多变化,此时此刻很容易发生数据错乱的现象,导致修复bug的时候无从入手,是复现用户行为中重要的一环。前端工程师需要一个性能监控系统,持续...
前端监控目标前端监控主要包含两大块:性能监控及异常监控保证稳定性(异常监控)错误监控包括JavaScript代码错误,Promsie错误,接口(XHR,fetch)错误,资源加载错误(script,link等)等,这些错误大多会导致页面功能异常甚至白屏。提升用户体验(性能监控)性能监控包括页面的加载时间,接口响应时间等,侧面反应了用户体验的好坏。 3性能监控3.1简单描述页面加载简单看一下,从输入url到页面加载完成的过程如下:首先需要通过DNS(域名解析系统)将URL解析为对应的IP地址,然后与这个IP地址确定的那台服务器建立起TCP网络连接,随后我们向服务端抛出HTTP请求,服务...
为什么要监控页面性能?一个页面性能差的话会影响用户体验。用户打开页面等待的太久,可能会直接关掉页面,甚至就不再使用了,这种情况在移动端更加明显,移动端用户对页面响应延迟容忍度很低。虽然页面性能很重要,但是在实际使用中,页面性能差的情况并不少见。首先,在产品的迭代演进过程中,页面性能可能会被忽略,性能随着版本迭代而有所衰减;其次,性能优化是一项复杂而挑战的事情,需要明确的优化方向和具体的优化手段才能快速落地取效。所以我们需要一个性能监控系统,持续监控和预警页面性能的状况,并且在发现瓶颈的时候指导优化工作。绝大多数的监控平台都提供规则报警的能力。稳定的前端监控和前端行为分析产品 webfunny...
前端出现异常只有一种情况是需要前端程序员自己背锅的,那就是前端代码错误。别人的锅都可以甩出去,甩锅给后端、三方公司、网络问题等等,但是剩下前端自己代码问题,这种就是前端的锅了。正常情况下,线上前端代码出现错误的可能行比较小,因为经过细心的测试,前端代码错误是很容暴露出来的。另外,前端自己的锅,咱自己应该清楚。加上我在设计webfunny前端监控系统的时候,做了一个非常细致的错误分析,针对前端问题解决起来也是得心应手。造成线上问题的因素有很多,代码错误是其中一个很小的因素。通过webfunny前端监控系统可以在这众多繁杂的因素之中找到真正原因,这个监控系统并不是帮你解决所有问题,而是能够告诉你那...
二、前端数据分类:2.4 异常相关的数据这里的异常是指 JS 的异常,用户的浏览器上报 JS 的 bug,这会极大地降低用户体验异常的提示信息:这是识别一个异常的重要依据,如:e.src 为空或不是对象JS 文件名异常所在行发生异常的浏览器堆栈信息:必要的时候需要函数调用的堆栈信息,但是注意堆栈信息可能会比较大,需要截取2.5 其它数据除了上面提到的 4 类基本的数据统计需求,我们当然还可以根据实际情况来定义一些其他的统计需求,如用户浏览器对 canvas 的支持程度, 再比如比较特殊的-用户进行轮播图翻页的次数,这些数据统计需求都是前端能够满足的,每一项统计的结果都体现了前端数据的价值web...