如何应对线上的偶现问题

本以为线上问题就已经够棘手了,没曾想,线上的偶现问题才是最要命的

好些日子没写文章了,今天不扯代码,讲点没有多少营养的心得体会

一、真正难解的问题

作为最接近用户的前端,每每出现问题当然首当其冲,如果必现也就罢了,Debug 或者 抓包什么的反正各种手段,是自己的问题解决问题,不是自己的问题,也方便甩锅出去。但是如果这个项目恰好还复杂度高、链路长、关联方很多,并且这个问题还是 偶现线上 问题,无异于在开动的火车上排查轨道上出现的大石头,却还不知道大石头会在哪出现,你说绝望不绝望

遇到这样的问题该怎么做呢?当然不是放弃啦

二、如何应对

尝试寻找复现路径

虽虽然是一个偶现的问题,如果复现的概率比较高,尝试在这些复现的现象当中寻找一些内在的关联,例如 弱网、快速重复点击、超时操作等等,需要一些经验以及运气。如果有幸找到了必现路径,那么恭喜啊,这个问题从一个 偶现 的问题降级到了一个 必现 问题的 Level。这个时候应该怎么做还需要我教你!!?

分析代码可能的问题,逆推必现路径

上面第一步,可以让测试的同学帮忙操作,而你呢,可以把精力放在分析你的代码上,考虑各种场景,是不是会有漏洞,是不是会导致问题,然后再来逆推必现路径。如果某个逆推出来的路径刚好可以复现这个问题。那么,拍完大腿动动手指把问题解决,你就可以好好去享受你的下午茶了

完善监控日志

糟糕,除了客户线上反馈了这个问题(视频截图为证,抵赖不得),整个项目组没有谁能复现这个问题,或者就算测试的同学给偶然复现了,也根本来不及让你 debug 捕捉日志。你在分析代码上也发现不了蛛丝马迹,这个时候就要依赖于日志系统了。在你觉得必要的地方,打印日志上传日志系统,毕竟以线上用户的量级,就算发生的概率只有千百分之一,也很容易收集到一些关键的信息

带了日志的版本发出去一段时间之后,是时候分析日志了,某个接口报错了?某个 native 的 js api 没有返回?还是后天返回的某个数据类型跟预期的不一致?Anyway,总算可以把锅甩出去了

串联全链路的日志标识

前面说了,整个系统复杂度高,链路很长,如果你收集到的异常日志,只是没有收到后台的某个消息,当你理直气壮的去找模块A的后台同学的时候,他查了日志之后白了你一眼,你看你看,我消息发出去了啊,应该是别的模块有问题吧。然后你再找到模块B、模块C,得到了相同的答案,你说你能把锅甩给谁

本文当然不是叫你甩锅的啦,毕竟谁的问题,都是这个项目有问题,作为项目成员,你要有 owner 意识不是,不管是什么问题,都要尝试定位解决

这个时候,不但需要我们每个模块都有日志,还需要有一个能够串联全链路的唯一标识。也就是说,在设计之初,前后台以及各个关联方,要做好这个全链路的日志体系设计。这样一旦出现问题,就有迹可循了,很容易就揪出来有问题的环节

三、总结

解决偶现问题,经验至关重要,这需要慢慢沉淀积累,没什么好说的。然后剩下最关键的,就是完善的日志体系设计了,这需要整个项目组的努力,而你需要成为一个推动者

另外,程序的状态设计合理,异常路径考虑充分,也非常有利于预防这类问题的发生,毕竟,现在不管是 react 还是 vue,都已经是面向状态、数据驱动的编程了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容