服务端问题排查对开发而言是家常便饭,问题并不可怕但要花大量时间去处理;另一方面故障的快速解决至关重要。
目前问题排查最大的障碍是什么呢?我们认为有以下几个原因:
大量的告警信息。
链路的复杂性。
排查过程繁复。
依赖经验。
实际工作中的排查思路并非无迹可寻,排查思路和手段可以沉淀出一套经验模型。
沉淀路径
下面是我的订单列表的简单抽象,其执行过程是先拿到我买到的订单列表。订单列表中又用到了卖家,商品以及店铺信息服务,每个服务又关联着单次请求中提供服务对应的主机信息。
以线上常见的服务超时为例,上图中因为 127.123.12.12 这台机器出现异常导致商品服务超时,进而导致我的订单列表服务超时。根据日常中排查思路可以总结出以下分析范式:
上面这种分析范式看起来很简单清晰,但是它首先面临着以下问题
如何准确界定超时/异常。
上下游调用链路如何生成。
自己和下游,如何确定谁的问题(超时 &异常)。
下游异常时,如何区分超时/线程池满/未知异常。
以上问题本质上是底层数据埋点问题,幸运的是阿里集团完备的数据建设使得这些问题基本都能找到很好的解决方案。有了底层数据支撑再配合上层抽象出来的这样一套分析模型,设计并实现一套完全自动化问题定位系统是完全有可能的。
本文转载自淘系技术公众号。
原文链接:https://mp.weixin.qq.com/s/gDlCjHv4AovLvP-4veYojw
评论