【技术实现步骤摘要】
一种微服务系统的故障根因定位方法
[0001]本专利技术涉及计算机应用
,具体涉及一种微服务系统的故障根因定位方法。
技术介绍
[0002]随着微服务系统的普及和大量使用,基于告警数据的根因定位方法无法适应微服务系统的动态变化,其大多基于CMDB数据构建静态的服务依赖关系。而现有大多数据调用链采集工具只能获取服务间的依赖关系,无法实时获取各个服务所在的进程信息、主机信息,因此大多数基于调用链的根因定位方案,只能定位到根因故障服务,无法具体到根因服务所在的进程或主机。
[0003]现有的一些技术方案中,需要CMDB数据或者TCP/IP数据来构建主机层面的拓扑关系,无法适应微服务系统中主机之间动态变化的连接关系。而且该类数据没有进程信息、服务信息,无法定位更准确,即不能准确定位到主机上具体哪个进程、哪个服务的故障。
[0004]现有的一些技术方案中,利用告警信息进行根因定位,需要基于大量的历史告警数据进行学习训练,不仅在定位系统部署的初期阶段无法准确定位,而且也无法适应微服务系统的动态变化问题。
[ ...
【技术保护点】
【技术特征摘要】
1.一种微服务系统的故障根因定位方法,其特征在于,包括以下步骤:1)实时采集微服务系统中产生的全量调用链数据;2)基于全量调用链数据,实时统计业务指标,利用异常检测算法判断业务指标是否异常,并确定对应的异常时间段;3)获取异常时间段内对应的所有调用链数据,对于每条调用链数据,实时构建span流程图并计算除了根节点外的每个节点的异常分,汇聚异常时间段所有span流程图构建服务拓扑图、进程拓扑图和主机拓扑图,基于进程拓扑图和主机拓扑图根据计算确定故障根因节点。2.根据权利要求1所述的微服务系统的故障根因定位方法,其特征在于,步骤1)中,全量调用链数据的每一条调用链包括span_id,parent_id,duration,service_id,process_id,host_id,error;其中,span_id表示该次调用的编号;parent_id表示该次调用的父调用的编号,如果该次调用为根节点,则parent_id为None;duration为该次调用的耗时;service_id表示该节点对应的服务编号;process_id表示该节点对应的进程编号;host_id表示该节点对应的主机编号;error等于0或1,表示该次调用是否失败。3.根据权利要求1所述的微服务系统的故障根因定位方法,其特征在于,步骤2)中,所述的统计业务指标包括:调用次数、错误率、90%分位点的耗时,50%分位点的耗时四个业务指标。4.根据权利要求2所述的微服务系统的故障根因定位方法,其特征在于,步骤3)中,对于每条调用链数据,实时构建span流程图,具体包括:3.1.1)根据该条调用链中每个span里的parent_id和span_id之间的对应关系,构建span_id之间的调用关系拓扑,其中开始节点是parent_id为None所对应的span_id;3.1.2)一条调用链的span_id之间的调用关系拓扑即为该调用链的span流程图。5.根据权利要求2所述的微服务系统的故障根因定位方法,其特征在于,步骤3)中,对于每条调用链数据,计算除了根节点外的每个节点的异常分,具体包括:3.2.1)计算得到:当前节点的error值为1时,则记为1,否则记为0;3.2.2)计算得到:当前节点的duration在父节点的duration中占比超过预设阈值,则记为1,否则记为0;3.2.3)计算得到:当前节点的父节点的duration与其所有子节点的duration之差在该父节点的duration中占比超过预设阈值,则记为1,否则记为0;3.2.4)合并上述三个异常分、、得到该节点的异常分,...
【专利技术属性】
技术研发人员:谢林涛,向成钢,
申请(专利权)人:杭州大乘智能科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。