当前位置: 首页 > 专利查询>中山大学专利>正文

一种基于调用链数据的根因定位算法制造技术

技术编号:24251304 阅读:112 留言:0更新日期:2020-05-22 23:27
本发明专利技术公开一种基于调用链数据的根因定位算法,对时间窗口的调用链数据进行异常检测,若出现异常,则从每个异常请求的请求头开始遍历调用链数据,通过3δ异常过滤从每个请求访问的服务实例中过滤异常并逐个打分,将以上得分情况、服务实例间依赖关系和每个请求覆盖服务实例信息输入自定义方阵迭代计算得到服务实例异常得分;将正常请求的服务实例被请求覆盖情况、请求覆盖服务实例情况以及服务实例间依赖关系输入自定义方阵迭代计算得到服务实例正常得分;结合服务实例异常得分和正常得分,采用频谱方法计算每个服务实例的最终得分,并根据最终得分高低返回可疑服务实例列表。本发明专利技术输出一个具有排名顺序的故障根因列表,缩小运维人员排查范围。

A root cause location algorithm based on call chain data

【技术实现步骤摘要】
一种基于调用链数据的根因定位算法
本专利技术涉及智能运维领域,尤其涉及一种基于调用链数据的根因定位算法。
技术介绍
当前软件架构正迅速从单一体系转变为微服务体系结构。利用微服务架构,应用程序可以根据业务功能将复杂的交互解耦成许多松耦合度的细粒度服务。但由于微服务环境下各个服务之间复杂的依赖关系、持续集成和交付工具的应用以及动态运行时环境,当环境中其中一个或者几个服务发生错误或故障时,会造成一系列服务的级联失效。因此当故障发生时,及时定位到故障的根本原因十分关键。
技术实现思路
本专利技术为克服上述现有技术所述的至少一种缺陷(不足),提供一种基于调用链数据的根因定位算法。本专利技术旨在至少在一定程度上解决上述技术问题。为了达到上述技术效果,本专利技术的技术方案如下:一种基于调用链数据的根因定位算法,包括:S10对时间窗口的调用链数据进行异常检测,若当前时间窗口出现异常,则进入S20;S20从每个异常请求的请求头开始遍历调用链数据,对每个请求访问的服务实例进行3δ异常过滤,通过对异常过滤结本文档来自技高网...

【技术保护点】
1.一种基于调用链数据的根因定位算法,其特征在于,包括:/nS10对时间窗口的调用链数据进行异常检测,若当前时间窗口出现异常,则进入S20;/nS20从每个异常请求的请求头开始遍历调用链数据,对每个请求访问的服务实例进行3δ异常过滤,对异常过滤结果中的服务实例逐个打分,将异常请求的得分、服务实例间的依赖关系和每个请求覆盖的服务实例信息输入自定义的PageRank矩阵进行迭代,得出服务实例异常得分;/nS30对每个正常请求,将服务实例被请求覆盖情况、请求覆盖服务实例情况以及服务实例间依赖关系输入自定义的PageRank矩阵进行迭代,得出服务实例正常得分;/nS40根据S20所得的服务实例异常得分...

【技术特征摘要】
1.一种基于调用链数据的根因定位算法,其特征在于,包括:
S10对时间窗口的调用链数据进行异常检测,若当前时间窗口出现异常,则进入S20;
S20从每个异常请求的请求头开始遍历调用链数据,对每个请求访问的服务实例进行3δ异常过滤,对异常过滤结果中的服务实例逐个打分,将异常请求的得分、服务实例间的依赖关系和每个请求覆盖的服务实例信息输入自定义的PageRank矩阵进行迭代,得出服务实例异常得分;
S30对每个正常请求,将服务实例被请求覆盖情况、请求覆盖服务实例情况以及服务实例间依赖关系输入自定义的PageRank矩阵进行迭代,得出服务实例正常得分;
S40根据S20所得的服务实例异常得分和S30所得的服务实例正常得分,采用频谱方法计算每个服务实例的最终得分,并根据最终得分高低返回可疑服务实例列表。


2.如权利要求1所述的基于调用链数据的根因定位算法,其特征在于,所述所述异常检测采用Kmeans聚类异常检测方法,具体如下:
S101对上一个未出现异常的时间窗口tw0内的调用链数据以及当前时间窗口tw1内的调用链数据,对每个请求总时延进行一维Kmeans聚类,设置聚类类别为2,对应得到两个类的类中心cen0和cen1,两个类的点个数n0和n1;
S102将n0或n1与参与聚类所有点的噪声临界值进行比较,若n0或n1小于噪声临界值,则舍弃该类的所有点,重新对存在的点进行聚类;
S103比较两个类的类中心cen0和cen1,若cen0<cen1则交换类中心cen0和cen1;
S104若(cen0-cen1)>σ*cen1,则认为当前时间窗口tw1发生异常,异常请求为总时延值经过聚类后中心在cen0处的一类请求,σ代表两个类类中心的间距大小。


3.如权利要求1所述的基于调用链数据的根因定位算法,其特征在于,所述20中从每个异常请求的请求头开始遍历调用链数据,对每个请求访问的服务实例进行3δ异常过滤的方法具体如下:
S201从头至尾深度优先遍历每个异常请求,对于单个异常请求r,设异常服务实例集合为Gan,计算上一个未现异常的时间窗口tw0中每个服务实例的访问时延平均值μs0及其标准差δs0,计算当前时间窗口tw1中每个服务实例访问时延平均值μs1,若μs1>μs0+3δs0,则该服务实例判定为异常;
S202从头至尾深度优先遍历每个异常请求,若服务实例与其他服务实例存在父子依赖关系,计算该服务实例所访问的所有其他服务实例的时延之和,通过该服务实例的时延减去所访问的所有其他服务实例的时延之和得到该服务实例的自身耗时,对于时间窗口tw0中的每个服务实例n计算服务自身耗时,设为dcn;若服务实例n在集合Gan中,则其在时间窗口tw1中异常请求的自身耗时为dfn,若服务实例n不在集合Gan中,则dfn=dcn;
S203对于每个异常请求r,计算每个服务实例的异常得分其中n为异常请求r中访问该服务实例的次数,l为服务实例所在层级,即从异常请求r访问第一个服务实例开始,第l次访问访问该服务实例;dfn为该服务实例正常工作时访问延迟,dcn为该服务实...

【专利技术属性】
技术研发人员:陈鹏飞关子杰郑子彬
申请(专利权)人:中山大学
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1