范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

基于Sentry高效治理前端异常

  一个前端项目上线后的各种指标监控是极其重要的,通过各种指标数据可以知道项目存在的问题及未来优化的方向,在各种维度监控中的异常监控是必不可少的,通过异常数据可以及时发现用户遇到的问题,而异常上报中的各种数据指标可以给解决问题提供参考及方向。
  文章内所有异常上报及异常分析都是基于异常处理开源平台  Sentry  ,其他异常处理平台或自建平台可根据实际情况参考。本文主要分为以下几个部分: 异常治理的重要性 前期异常数据处理 高效发现异常 高效解决异常 异常治理重要性
  海恩法则指出: 每一起严重事故的背后,必然有  29  次轻微事故和  300  起未遂先兆以及  1000  起事故隐患。当一件重大事故发生后,我们在处理事故本身的同时,还要及时对同类问题的 "事故征兆" 和 "事故苗头" 进行排查处理,以此防止类似问题的重复发生,及时消除再次发生重大事故的隐患,把问题解决在萌芽状态。这个法则放在前端异常治理中同样适用,通过及时发现存在隐患的异常并及时解决,避免酿成重大事故。 用户体验
  前端项目的用户体验是很重要的一环,特别是公司业务面向C端的时候,一个好的用户体验可以更高的促进业务漏斗的转化。
  新增异常监控后,所有收到的异常数据都是实时的,异常发生时我们可以第一时间知晓且及时处理,对所有异常数据都要积极处理,不可敷衍了事,不能等到用户反馈时才打开异常平台修复问题,当你已经从其他渠道得到反馈有异常时,说明问题已经扩散到很大的范围了,这个时候才想起去看异常平台数据时没有将平台的作用最大化,也给用户带来了不好的体验。
  这里说的第一时间及时处理,并不是随时都在观察是否有新的异常产生,我们只需要在关键的节点提高警惕即可,主要是系统发布新的功能时,但这并不局限于本系统,比如 App 项目中 H5 未发布,但是App发布了新的版本;后端接口发布了新的版本;用户升级了新的系统版本等会需要及时观察是否存在异常数据波动。除此之外可能还有设备兼容性问题,复杂业务操作等产生的问题,这类问题可通过其他手段监测及时发现,后面的文章会说明。 公司成本
  某些异常是不影响用户使用的过程,比如组件卸载时未及时移除定时器或绑定的事件,虽然用户是无感知的,但是异常数据会源源不断的上报,如果这是一个日均PV上百万的项目,可想而知每天会产生多少新的数据,会造成多少网络流量的浪费。所以要及时处理异常,特别是高频发生,稳定复现的问题,减少网络流量及异常平台服务器的压力,及时减轻公司的运营成本。 前期异常数据处理
  在解决问题之前需保证该异常数据是我们需要解决的问题,而不是无意义或干扰性的问题等着我们去处理,此类问题会影响后续的数据分析及降低解决问题的效率,以下处理方案大都可以在异常上报SDK中统一处理。 规范上报异常数据,规范上报异常标题格式,以及其他附加数据,如  sentry  中的  tag , additional  数据等,以便于在不同的项目中都可以快速参考分析问题,另外就是要规范异常上报的时机,除开被动上报异常,其他用户主动操作行为产生的异常要及时上报,如接口异常,复杂逻辑中特定时机上报异常记录分析。 部分异常过滤,针对某些框架底层异常或是已知业务场景正常接口异常等,可直接过滤处理,不再显示到异常平台中再次处理。这类异常过滤的过程可以在  SDK  全局进行过滤处理,针对不同的项目可额外增加不同的过滤条件,也可在异常平台针对某些重要性较低的项目直接过滤处理。 部分自动处理,自动处理分为几个情况:自动删除,自动标记解决,自动列为忽略异常。经过上面的过滤后的异常,会再一次过滤处理,这类处理的异常内容可以是某些业务场景需要上报的接口异常但不能归属于代码逻辑错误,比如提交订单时,某个新出的机型未在后台新增,触发这个异常后运营会立即处理,后续不会再发生。针对这类型的异常可以使用程序自动处理。 完善健康度所需各维度数据,判断一个项目产生的异常不能单纯的以数量为依据,还要根据当前项目的用户量结合计算,所以要把当前计算健康度所需的各维度数据都要提前准备好,提高后期健康度计算结果的准确性。 高效发现异常
  经过以上的前期数据处理,接下来经过  SDK  上报到异常平台显示的数据就是我们要真正处理的异常数据。以转转举例,目前已经接入  Sentry  的前端项目有 **500+**,每天上报的异常数量约  250  万次,在如此大的体量下如何快速发现哪些才是目前紧急需处理的异常呢?
  异常上报后需要针对性的处理,优先处理紧急核心项目及上报数据不正常的异常,可通过以下几个方式高效发现异常,这里的异常并不是指全部的异常,而是值急需处理的异常。
  项目健康度排名
  通过一系列维度权重配置,给所有项目计算出一个健康度得分,通过得分排序即可得出当前项目质量的好坏程度,通知对应的负责人及时处理。相关维度项及解释如下: 24小时异常/PV比例:近24小时发生异常数量与该项目PV数量占比情况 14天异常数量:该项目14天发生异常数量总计数值 24小时异常数量:该项目24小时发生异常数量 PV:统计该项目昨日所有页面PV数量 是否核心项目:该项目是否标记为核心项目
  健康度得分计算公式:每个维度权重占比可随时调整,调整后会立即重新计算得分并排名,可通过维度权重的调整来提高整体项目的质量要求。 sentry大盘异常监控
  对异常平台内所有项目上报的汇总值监控,监控的指标有2个,突发异常数量过高,超出上一个区间数据的增量比例,另一个就是异常数据归零,没有收到任何异常,这种情况可能是短期异常太多导致平台崩溃或其他情况导致无法处理异常处理,针对这两个情况进行异常波动记录并触发企业微信推送。
  项目异常监控
  接下来就是针对项目级别的监控,但是作为一个集团大公司下的项目太多,对于一些异常数量极低的项目需要过滤处理,减小服务器的压力以及可以提升数据处理的速度。我们可以通过  Sentry  平台  Stats  中的项目进行监控处理,这里的项目可传入查询的时间段,这里最小时间段是小时级别,返回的是当前条件下新增的异常数量排名列表,我们只针对这个列表进行监控处理,由于需要更快速更准确的监控异常波动,基于这个列表再次查询每个项目5分钟内的新增异常数量,通过定时任务处理即可得出以下走势图,可快速发现某个时间段中的哪个项目出现了项目数据不正常的情况。针对这部分异常同样的也是进行异常波动数据存储及企业微信消息推送。
  企微消息推送
  以上2种情况最终都会触发到企业微信消息推送,因为消息推送的触达更为精准和迅速,但是也存在一些特殊的项目,比如夜间会定时任务可能存在过多的超时,本身  PV  量较高的项目所触发的配置数值有所不同。所以针对推送的部分增加了相关维度的配置,推送配置有推送区间,多少时间段内触发一次推送,推送时异常起点数量,增量异常比例以及是否开启推送。
  最终企业微信推送效果如下: 超时未处理提醒
  上面的项目波动监控是针对项目整体异常情况的,除此之外还增加了针对项目内部具体异常解决情况的监控并推送,获取到项目内部所有异常,定期执行推送,在消息推送内容中标明当前存在的异常数量,针对超过3日还未处理的异常@对应负责人,以提高相关人员警觉。最终企业微笑推送效果如下:整体流程如下: 高效解决异常
  经过上一步的发现异常,接下来将通过几个手段更加高效的解决异常,这个过程是基于公司内部现有情况处理,在不同的公司内部可能不一定适用,可参考处理。 知识库解决方案沉淀
  目前各小组解决项目异常问题都没有沉淀具体的解决方案,但是大家所遇到的问题都是大同小异,很多场景下的异常问题其解决方案都是可以复用的。鉴于此,我们把解决问题的过程沉淀到内部文档知识库中,以供其他同学遇到类似的问题时,提供一定的解决思路,提高异常问题的解决效率。整体流程如下:
  如该问题已有提交的文档记录,则进入异常问题详情页面时,右上角会有提示已解决方案参考地址,点击链接跳转到内部文档查看对应的解决方案。
  内部文档搜索关联
  研发同学都有记录文档的习惯,但是历史文档和  Sentry  并没有任何关联关系,所以在  Sentry  异常详情页面中新增按钮跳转到内部文档搜索,如有类似文档沉淀,则可以直接参考解决。 一键进入开发,内部系统打通
  Sentry  本身是一套独立的开源项目,所以和公司内部其他的系统没有任何关联关系,导致无法和其他系统进行联动操作,比如创建分支,查询内部项目相关信息等。导致每次解决异常时都需要创建需求和分支才能进入到开发中,整个流程重复且繁琐。
  基于这个背景在  Sentry  异常详情页面中增加一键创建需求和分支的能力,可快递进入到开发过程中。整个流程如下:涉及调用其他系统的接口较多,细节就不过多说明。核心就是基于异常详情中的页面地址解析出项目内部相关信息,基于这个数据创建tapd需求,创建项目仓库开发分支并和当前异常信息绑定记录。
  自动分发接口异常责任人
  现有项目中的接口异常占比约  80%  ,导致需要花费大量的时间去沟通协调处理异常,处理的过程一般都是在  Sentry  监控平台发现是接口异常,再发送相应的接口请求数据及响应数据给到对应的后端处理,每次的沟通繁琐且耗费时间。基于这个背景优化整个沟通的过程,首先对异常上报的标题进行组装统一,以便后期可以检索时可以快速发现该问题属于接口层面问题。然后根据标题中获取到的接口地址从ZAPI(内部接口文档平台)平台获取到对应的后端开发人员,最后就是推送该接口异常情况到群聊@对应的开发人员。这里为了方便RD还原当前的请求场景,会再查询一次  Sentry  平台异常详情接口,在详情中获取到接口请求时的 traceid ,这样就不用再提供请求出入参数给后端人员了。 const = sendTitle = `${sendType}--${requestUrl}--${responseText}`
  推送效果如下:
  整体流程如下:
  总结
  针对前端异常治理本文从两个方面说明了其重要性,然后在处理异常的前期增加了对异常数据的准确度的过滤处理,对过滤后的数据通过几个方式快速发现存在波动的异常情况,最后对需处理的异常增加了一些手段提高解决异常的效率。
  异常治理的过程是一条漫漫长路,需要相关的同学一起努力才能有一个较好的结果,比如经过一系列手段可以发现很多不正常的异常情况,接下来就需要对应的同学快速处理且沉淀下来解决的过程以供后续其他同学参考,只有沉淀到一定的量后才会有比较显著的效果。
  本文异常处理平台基于开源平台Sentry,其他平台处理逻辑类似,希望能给你带来帮助。
  作者:王绪侨
  来源:微信公众号:大转转FE
  出处:https://mp.weixin.qq.com/s/rl6QrHFnR9CCTKSZiMghVA

什么山寨比赛能成为家长眼里的香饽饽胡越(黑龙江大学)知名的叶圣陶杯系列比赛,在举办了6年之后竟被认定为山寨比赛。据央视新闻报道,叶圣陶杯华人青少年作文大赛及叶圣陶杯语文素养大赛数理大赛英语大赛编程创意大赛等系列赛事假球事件申花还是海港?今日,有资深媒体人爆料上海的一支球队参与了假球事件,具体是申花还是海港不得而知,作者我也不敢妄加揣测,在此附上陈戌源的履历,也许对各位有帮助。附历任上海港码头工人上海港务局办公室秘夺冠!马背上的这位南通少年,太飒了!2023年2月1012日2022年全国马术场地障碍青少年锦标赛在上海爱久马术俱乐部举行南通选手吴容宇携爱马Zenobia(又名灰尾巴)出征参加少年B组障碍高度90cm的团体赛比赛中每一位全明星参赛球员都将参与现场选人,赛前将持续1小时ESPN记者DaveMcMenamin今日报道了本届盐湖城全明星赛的改革详情。据一位联盟发言人透露,今年的全明星赛选人环节将在周日开赛前大约90分钟到半小时在Vivint球馆现场进火箭三位新秀在全明星赛上毫无作为休斯顿火箭队将要到周六晚上才有可能在盐湖城的全明星周末有所表现。今天火箭有三名球员参加了全明星新秀赛,这是一个由新秀二年级球员和发展联盟天才球员组成的四支球队组成的比赛。但对火箭来(体育)乒乓球世乒赛选拔赛首站王艺迪无缘晋级当日,在北京进行的中国乒乓球队德班世乒赛选拔赛首站女子单打首轮比赛中,王艺迪以1比3不敌队友石洵瑶,无缘晋级。2月18日,王艺迪在比赛中发球。新华社记者侯昭康摄2月18日,中国国家意外!上港仍有降级可能,前冠军有望成大赢家,媒体人太戏剧了随着陈戌源案的持续发酵,这次风暴来得太猛烈了,但如果不趁这一次一查到底,中国足球压根不会再有希望了。目前,大家除了关注陈戌源背后是否还有大鱼,大鱼能否最终落网,更加关注陈戌源的前东打羽毛球遇到高手是什么感觉?头条创作挑战赛我业余打羽毛球有十多年了,水平还可以。如果想要打好羽毛球,必须要练习技术,速度和力量,还要学会判断球路和研究对手。羽毛球的技术有很多,每一项都要认真训练才能有比较大的世乒赛选拔赛首站樊振东晋级2月18日,樊振东在比赛中发球。新华社记者侯昭康摄当日,在北京进行的中国乒乓球队德班世乒赛选拔赛首站男单首轮比赛中,樊振东以3比1战胜队友周恺,晋级下一轮。2月18日,樊振东(右)时装周确认明星!米兰赛点高,蔡徐坤肖战刘诗诗倪妮出席!让大家期待已久的四大时装周已经开始了,纽约已经结束,现在进行的是伦敦时装周,很快就是最大看点米兰和巴黎的主场了。21号27号是米兰时装周的时间,2月27号至3月7号是巴黎时装周的时活久见!新疆男篮这赛季就不想玩了?看样子篮球也要狂飙了!新疆广汇俱乐部董事长郭舰对媒体透露,如果篮协对新疆队的处罚得不到一个妥善解决,新疆队不排除未来退出CBA的比赛。此前,中国篮协宣布新疆广汇篮球俱乐部存在参赛主体混同等问题,构成注册
86年英国女王访华,中方请她品尝一道特色美食,她回国后归还国宝伊丽莎白二世是英国任职时间最长的女王,自从1952年开始担任,直到她在96岁与世长辞。在位期间,女王一直尽可能与我们国家保持友好的国际关系。1982年,伊丽莎白二世派遣撒切尔来到中台骀冰雕(50)201623孟家井上行几公里处,有一座山叫作台骀山,至于为什么以上古时期的治水英雄命名,却是一个无人能够回答的问题,或许当时台骀在这一带也治理过水患,后人为牢记他的功绩而用山名来作纪念。到了二武威市天祝县守好生态底线勾勒美丽乡村新画卷坝堵村已成为生态宜居幸福的林缘山庄。松林深处谁家屋,村墅斜阳若个亭。莫问笑谈归去晚,有诗留与赤松听。金秋时节,漫步在武威市天祝县西大滩镇坝堵村彩色的沥青路面上,松涛阵阵,花香袭人,好住与5A景区为邻!这个生态旅居盘居然把天然氧吧搬回家乐居买房讯逃离城市钢筋混凝土,于山水之间寻找一方世外桃源!近年来,随着人们的物质生活得到满足后,越来越多的人开始追求精神生活的富足,诗与远方越来越受追捧,因此生态旅居盘逐渐成为人们喜迎二十大奋进新征程图为在八一广场,大型花卉主题造型烘托出喜迎二十大的浓厚氛围。南昌新闻网讯党的二十大即将召开,洪城街头和公园绿地的花卉焕然一新,营造出喜庆隆重热烈的氛围。记者从城管执法部门了解到,全房车旅行第二季眉山眉山不是峨眉山,古称眉州,位于岷江和峨眉山之间,原眉山城中有一座山形似眉毛故因此而得名。眉山建城于南齐建武三年,是有名的进士之乡,也是宋代文豪苏洵苏轼苏辙三父子(史称三苏)的故乡。成都徒步(33)大邑篇云中屋云中屋就在鹤鸣山附近,以前到鹤鸣山都不知道,不过其实也没啥意思。登山步道入口在公路边,入口对面有云中屋的指示牌,指示牌旁边有个很小的简易停车场。开始走上一段石阶,经过小溪,后面都是谁知民工之辛酸你觉得最悲凉的一句话或一句诗是什么民工的辛酸只有自己知道无论寒冬雨雪纷飞还是酷暑烈日炎炎,风里来雨里去没日没夜的劳作,然而讨薪的路上却是路途慢慢,遥遥无期为修风景区景点民工从几公里又见桂林(散文)大凡去过桂林的人,总会被桂林的山青水秀洞奇石美所折服,也会钟情于桂林的风味小吃,美味佳肴的桂林三宝,而我也是如此。一hr第一次到桂林是上世纪九十年代初,那是八月桂花遍地香的时候,我改革开放下的世界之窗堪称一个世界奇迹头条创作挑战赛世界之窗是深圳的著名旅游景区,都说既然来到了深圳,不去世界之窗看看,就等于没有来过深圳。于是,我和我的弟弟一起去了世界之窗。这次我请客,弟弟做导游,我们玩得很开心,似带你走进江南第一石窟秋高气爽的季节,我们一行来到了距赣州市区约12公里的一个地方,海拔不到100米的一处山岩,通天岩。通天岩属全国重点文物保护单位。它由摩沙岩石山组成,山中有很多天然岩洞,其中一个岩洞