CN111190756A - 一种基于调用链数据的根因定位算法 - Google Patents

一种基于调用链数据的根因定位算法 Download PDF

Info

Publication number
CN111190756A
CN111190756A CN201911129086.7A CN201911129086A CN111190756A CN 111190756 A CN111190756 A CN 111190756A CN 201911129086 A CN201911129086 A CN 201911129086A CN 111190756 A CN111190756 A CN 111190756A
Authority
CN
China
Prior art keywords
service instance
request
abnormal
service
score
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201911129086.7A
Other languages
English (en)
Other versions
CN111190756B (zh
Inventor
陈鹏飞
关子杰
郑子彬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National Sun Yat Sen University
Original Assignee
National Sun Yat Sen University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National Sun Yat Sen University filed Critical National Sun Yat Sen University
Priority to CN201911129086.7A priority Critical patent/CN111190756B/zh
Publication of CN111190756A publication Critical patent/CN111190756A/zh
Application granted granted Critical
Publication of CN111190756B publication Critical patent/CN111190756B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/324Display of status information
    • G06F11/327Alarm or error message display
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/232Non-hierarchical techniques
    • G06F18/2321Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
    • G06F18/23213Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/20Administration of product repair or maintenance

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Tourism & Hospitality (AREA)
  • Health & Medical Sciences (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Strategic Management (AREA)
  • Biomedical Technology (AREA)
  • General Business, Economics & Management (AREA)
  • Probability & Statistics with Applications (AREA)
  • Economics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

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

Description

一种基于调用链数据的根因定位算法
技术领域
本发明涉及智能运维领域,尤其涉及一种基于调用链数据的根因定位算法。
背景技术
当前软件架构正迅速从单一体系转变为微服务体系结构。利用微服务架构, 应用程序可以根据业务功能将复杂的交互解耦成许多松耦合度的细粒度服务。但 由于微服务环境下各个服务之间复杂的依赖关系、持续集成和交付工具的应用以 及动态运行时环境,当环境中其中一个或者几个服务发生错误或故障时,会造成 一系列服务的级联失效。因此当故障发生时,及时定位到故障的根本原因十分关 键。
发明内容
本发明为克服上述现有技术所述的至少一种缺陷(不足),提供一种基于调 用链数据的根因定位算法。
本发明旨在至少在一定程度上解决上述技术问题。
为了达到上述技术效果,本发明的技术方案如下:
一种基于调用链数据的根因定位算法,包括:
S10对时间窗口的调用链数据进行异常检测,若当前时间窗口出现异常,则 进入S20;
S20从每个异常请求的请求头开始遍历调用链数据,对每个请求访问的服务 实例进行3δ异常过滤,通过对异常过滤结果中的服务实例逐个打分,将异常请求 的得分、服务实例间的依赖关系和每个请求覆盖的服务实例信息输入自定义的 PageRank矩阵进行迭代,得出服务实例异常得分;
S30对每个正常请求,将服务实例被请求覆盖情况、请求覆盖服务实例情况 以及服务实例间依赖关系输入自定义的PageRank矩阵进行迭代,得出服务实例 正常得分;
S40根据S20所得的服务实例异常得分和S30所得的服务实例正常得分,采 用频谱方法计算每个服务实例的最终得分,并根据得分高低返回可疑服务实例列 表。
优选地,所述所述异常检测采用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处的一类请求。
优选地,所述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,计算每个服务实例的异常得分
Figure BDA0002277765510000021
其中n为异常请求r中访问该服务 实例的次数,l为服务实例所在层级,即从异常请求r访问第一个服务实例开始, 第l次访问访问该服务实例;dfn为该服务实例正常工作时访问延迟,dcn为该服务 实例异常时访问延迟;ω为可调参数,控制层级得分和异常程度得分的比例;
S204对所有异常请求,构造PageRank矩阵
Figure RE-GDA0002405641930000031
该PageRank 矩阵可以看做作向量
Figure RE-GDA0002405641930000032
自乘的结果,其中nm为系统中m 个服务实例,rk为时间窗口tw1中k个异常请求,pfnn为服务实例关系子矩阵, 若服务实例A访问服务实例B、C,则Pfnn(A,B)=1,Pfnn(A,C)=1,pfnr为服 务实例对异常请求贡献得分子矩阵,对于单个异常请求r和单个服务实例n, pfnr(n,r)=sn,pfrn为异常请求对服务实例贡献得分子矩阵,若异常请求r访问 了服务实例A、B、C,则
Figure RE-GDA0002405641930000033
S205根据异常请求覆盖的服务实例数量构造传递向量
Figure RE-GDA0002405641930000034
对应PageRank矩阵Pf,传递向量R中[0,...,0]代 表随机跳转到服务实例的概率为0,
Figure RE-GDA0002405641930000035
分别为随机跳转到异常请求r1到异常请求rk的概率,其中,Nrk表示第k个异常请求访问的服务实例数量;
S206将PageRank矩阵pa作为转移矩阵,R作为传递向量,取预定转移系 数输入PageRank算法进行迭代计算,得出每个服务实例的异常得分sfn
优选地,所述S30具体为:对所有正常请求,构造PageRank矩阵
Figure RE-GDA0002405641930000036
子矩阵pcnn为正常请求服务实例关系子矩阵,pcrn为正常 请求对服务实例贡献得分子矩阵,Pcnr对服务实例对正常请求贡献得分子矩阵, 若服务实例A被正常请求r1,r2访问,则
Figure RE-GDA0002405641930000037
将PageRank 矩阵PC作为转移矩阵,根据正常请求覆盖的服务实例数量构造传递向量
Figure RE-GDA0002405641930000038
Figure RE-GDA0002405641930000039
传递向量R中[0,...,0]代表随机跳转到服务实例的概率为0,
Figure RE-GDA00024056419300000310
分别为随机跳转到正常请求r1到正常请求rk的概率,其中,Nrk表 示第k个正常请求访问的服务实例数量,取预定转移系数输入PageRank算法进 行迭代计算,得出每个服务实例的正常得分Ssn
优选地,所述S40具体为:
S401计算频谱方法所需统计量,所需统计量至少包括:经过服务实例n的 异常请求数量efn,经过服务实例n的正常请求数量epn,未经过服务实例n的异 常请求数量nfn,未经过服务实例n的正常请求数量npn,将efn调整为
Figure RE-GDA0002405641930000041
将epn调整为
Figure RE-GDA0002405641930000042
将nfn调整为
Figure RE-GDA0002405641930000043
将npn调 整为
Figure RE-GDA0002405641930000044
Nf代表时间窗口tw1中异常请求的数量,Np代表时间窗口 tw1中正常请求的数量;
S402对于没有被任何正常请求访问的服务实例n,其正常得分为所有ssn得 分最小值的
Figure RE-GDA0002405641930000045
对于没有被任何异常请求访问的服务实例n,其异常得分为所有 sfn得分最小值的
Figure RE-GDA0002405641930000046
S403对每个服务实例n,通过
Figure RE-GDA0002405641930000047
计算其最终得分, 并按照得分从高到低排序,最后返回可疑服务实例列表。
优选地,所述预定转移系数d=0.85。
优选地,所述σ∈[2,3]。
与现有技术相比,本发明技术方案的有益效果是:本发明通过时间窗口是对 调用链数据在时间维度上进行划分,自动化的根因定位,当故障发生时能够自动 触发该算法并对微服务环境下的服务进行分析,输出一个故障根因列表,排名越 高的服务约有可能是根因,大大缩小运维人员排查范围。同时,本发明能够地充 分利用调用链数据,包括调用链数据中的服务示例依赖关系以及请求在每个服务 示例上的访问时间,并利用时间窗口内的一定数量请求为根因定位提供不同线 索,让调用链数据发挥最大价值,而非当前系统中发生故障后人工检查调用链数 据。
附图说明
图1为本发明的方法流程示意图。
图2为本发明服务实施例的服务依赖关系图。
具体实施方式
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、 “长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、 “右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、 “逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附 图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或 暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此 不能理解为对本发明的限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对 重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第 二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中, “多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。 在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、 “固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接, 或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过 中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系, 除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理 解上述术语在本发明中的具体含义。
在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下” 可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。 而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第 二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特 征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下 方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、 “具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体 特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明 书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且, 描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以 合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本 说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和 组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可 以对上述实施例进行变化、修改、替换和变型。
为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实 际产品的尺寸;
对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理 解的。
下面结合附图和实施例对本发明的技术方案做进一步的说明。
一种基于调用链数据的根因定位算法,包括:
S10对时间窗口的调用链数据进行异常检测,若当前时间窗口出现异常,则 进入S20;
S20从每个异常请求的请求头开始遍历调用链数据,对每个请求访问的服务 实例进行3δ异常过滤,通过对异常过滤结果中的服务实例逐个打分,将异常请求 的得分、服务实例间的依赖关系和每个请求覆盖的服务实例信息输入自定义的 PageRank矩阵进行迭代,得出服务实例异常得分;
S30对每个正常请求,将服务实例被请求覆盖情况、请求覆盖服务实例情况 以及服务实例间依赖关系输入自定义的PageRank矩阵进行迭代,得出服务实例 正常得分;
S40根据S20所得的服务实例异常得分和S30所得的服务实例正常得分,采 用频谱方法计算每个服务实例的最终得分,并根据得分高低返回可疑服务实例列 表。
本发明的时间窗口包含了这个时间窗口内所有到达系统的请求,时间窗口只 是对调用链数据在时间维度上进行划分。
优选地,所述所述异常检测采用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处的一类请求,σ代表两个类类中心 的间距大小,σ∈[2,3]。
优选地,所述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,计算每个服务实例的异常得分
Figure RE-GDA0002405641930000071
Figure RE-GDA0002405641930000072
其中n为异常请求r中访问该服务实例 的次数,l为服务实例所在层级,即从异常请求r访问第一个服务实例开始,第l 次访问访问该服务实例;dfn为该服务实例正常工作时访问延迟,dcn为该服务 实例异常时访问延迟;ω为可调参数,控制层级得分和异常程度得分的比例;
S204对所有异常请求,构造PageRank矩阵
Figure RE-GDA0002405641930000073
该PageRank 矩阵可以看做作向量
Figure RE-GDA0002405641930000074
自乘的结果,其中nm为系统中m 个服务实例,rk为时间窗口tw1中k个异常请求,pfnn为服务实例关系子矩阵, 若服务实例A访问服务实例B、C,则Pfnn(A,B)=1,Pfnn(A,C)=1,pfnr为服 务实例对异常请求贡献得分子矩阵,对于单个异常请求r和单个服务实例n,pfnr(n,r)=sn,pfrn为异常请求对服务实例贡献得分子矩阵,若异常请求r访问 了服务实例A、B、C,则
Figure RE-GDA0002405641930000081
S205根据异常请求覆盖的服务实例数量构造传递向量
Figure RE-GDA0002405641930000082
对应PageRank矩阵Pf,传递向量R中[0,...,0]代 表随机跳转到服务实例的概率为0,
Figure RE-GDA0002405641930000083
分别为随机跳转到异常请求r1到异常请求rk的概率,其中,Nrk表示第k个异常请求访问的服务实例数量;
S206将PageRank矩阵Pa作为转移矩阵,R作为传递向量,取预定转移系数 输入PageRank算法进行迭代计算,得出每个服务实例的异常得分sfn
优选地,所述S30具体为:对所有正常请求,构造PageRank矩阵
Figure RE-GDA0002405641930000084
子矩阵pcnn为正常请求服务实例关系子矩阵,pcrn为正常 请求对服务实例贡献得分子矩阵,Pcnr对服务实例对正常请求贡献得分子矩阵, 若服务实例A被正常请求r1,r2访问,则
Figure RE-GDA0002405641930000085
将PageRank 矩阵PC作为转移矩阵,根据正常请求覆盖的服务实例数量构造传递向量
Figure RE-GDA0002405641930000086
Figure RE-GDA0002405641930000087
传递向量R中[0,...,0]代表随机跳转到服务实例的概率为0,
Figure RE-GDA0002405641930000088
分别为随机跳转到正常请求r1到正常请求rk的概率,其中,Nrk表 示第k个正常请求访问的服务实例数量,取预定转移系数输入PageRank算法进 行迭代计算,得出每个服务实例的正常得分Ssn
优选地,所述S40具体为:
S401计算频谱方法所需统计量,所需统计量至少包括:经过服务实例n的 异常请求数量efn,经过服务实例n的正常请求数量epn,未经过服务实例n的异 常请求数量nfn,未经过服务实例n的正常请求数量npn,将efn调整为
Figure RE-GDA0002405641930000089
将epn调整为
Figure RE-GDA00024056419300000810
将nfn调整为
Figure RE-GDA00024056419300000811
将npn调 整为
Figure RE-GDA00024056419300000812
Nf代表时间窗口tw1中异常请求的数量,Np代表时间窗口tw1中正常请求的数量;
S402对于没有被任何正常请求访问的服务实例n,其正常得分为所有ssn得 分最小值的
Figure RE-GDA0002405641930000091
对于没有被任何异常请求访问的服务实例n,其异常得分为所有 sfn得分最小值的
Figure RE-GDA0002405641930000092
S403对每个服务实例n,通过
Figure RE-GDA0002405641930000093
计算其最终得分, 并按照得分从高到低排序,最后返回可疑服务实例列表。
优选地,所述预定转移系数d=0.85。
实操实例:
S1:假设有5个异常请求A、B、C、D、E,其是否异常已经标定,因此无 异常检测步骤,该步骤也非本发明的内容,而应视作本发明的前置条件或触发器; 表1为实施例的请求详细情况,
Figure RE-GDA0002405641930000094
表1
S2:对每个异常请求进行如下计算,首先,从请求头开始遍历调用链,对每 个请求访问的服务实例进行3δ异常过滤;然后,对异常过滤的结果,对异常的 服务实例逐个打分;最后,将得分情况、所有服务实例的依赖关系和每个请求覆 盖的服务实例信息输入自定义的PageRank矩阵进行迭代,得出服务实例异常得 分;
S21:从头至尾深度优先遍历每个异常请求,使用3δ方法过滤异常服务实例, 在实施例中请求3、4、5的A、C、D服务实例,都为异常服务实例;
S22:从头至尾深度优先遍历每个异常请求,对请求其它服务的服务实例, 使用该服务实例的访问时延减去所有访问的服务总时延,还原在该服务实例自身 耗时。表2为异常请求3~5中节点自身耗时;
Figure RE-GDA0002405641930000101
表2
S23:对每个请求r,按照该步骤所述公式计算每个服务实例的异常得分;
S24:对所有异常请求,构造如下PageRank矩阵
Figure RE-GDA0002405641930000102
对实施 例而言,
Figure RE-GDA0002405641930000103
Figure RE-GDA0002405641930000104
Figure RE-GDA0002405641930000105
S25:根据请求覆盖的服务实例数量构造传递向量
Figure RE-GDA0002405641930000111
其中,Nrk表示第k个请求访问的服务实例数量;
S26:将PageRank矩阵Pa作为转移矩阵,R作为传递向量,取转移系数 d=0.85输入PageRank算法进行迭代计算,得出每个服务实例的异常得分, [sfA,sfB,sfC,sfD,sfE]=[0.063,0.10,0.26,0.11];
S3:对所有异常请求,构造如下PageRank矩阵
Figure RE-GDA0002405641930000112
对实施例而 言,
Figure RE-GDA0002405641930000113
传递向量
Figure RE-GDA0002405641930000114
取转移系数d=0.85输入PageRank算法进行迭代计算, 得出每个服务实例的异常得分,[ssA,ssB,ssC,ssE]=[0.171,0.137,0.132,0.133];
S4:对S2和S3步骤的服务实例异常得分和正常得分,调整频谱方法,计 算每个服务实例的最终得分,[SA,SB,SC,SD,SE]=[0.19,0.03,0.35,1.76,0.37];返回的可 以服务实例列表为[SD,SE,SC,SA,SB]。
相同或相似的标号对应相同或相似的部件。

Claims (8)

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,计算每个服务实例的异常得分
Figure RE-FDA0002405641920000021
Figure RE-FDA0002405641920000022
其中n为异常请求r中访问该服务实例的次数,l为服务实例所在层级,即从异常请求r访问第一个服务实例开始,第l次访问访问该服务实例;dfn为该服务实例正常工作时访问延迟,dcn为该服务实例异常时访问延迟;ω为可调参数,控制层级得分和异常程度得分的比例;
S204对所有异常请求,构造PageRank矩阵
Figure RE-FDA0002405641920000023
该PageRank矩阵可以看做作向量
Figure RE-FDA0002405641920000024
自乘的结果,其中nm为系统中m个服务实例,rk为时间窗口tw1中k个异常请求,pfnn为服务实例关系子矩阵,若服务实例A访问服务实例B、C,则Pfnn(A,B)=1,Pfnn(A,C)=1,pfnr为服务实例对异常请求贡献得分子矩阵,对于单个异常请求r和单个服务实例n,pfnr(n,r)=sn,pfrn为异常请求对服务实例贡献得分子矩阵,若异常请求r访问了服务实例A、B、C,则
Figure RE-FDA0002405641920000025
S205根据异常请求覆盖的服务实例数量构造传递向量
Figure RE-FDA0002405641920000026
对应PageRank矩阵Pf,传递向量R中[0,...,0]代表随机跳转到服务实例的概率为0,
Figure RE-FDA0002405641920000031
分别为随机跳转到异常请求r1到异常请求rk的概率,其中,Nrk表示第k个异常请求访问的服务实例数量;
S206将PageRank矩阵pa作为转移矩阵,R作为传递向量,取预定转移系数输入PageRank算法进行迭代计算,得出每个服务实例的异常得分sfn
4.如权利要求3所述的基于调用链数据的根因定位算法,其特征在于,所述S30具体为:对所有正常请求,构造PageRank矩阵
Figure RE-FDA0002405641920000032
子矩阵pcnn为正常请求服务实例关系子矩阵,pcrn为正常请求对服务实例贡献得分子矩阵,Pcnr对服务实例对正常请求贡献得分子矩阵,若服务实例A被正常请求r1,r2访问,则
Figure RE-FDA0002405641920000033
将PageRank矩阵PC作为转移矩阵,根据正常请求覆盖的服务实例数量构造传递向量
Figure RE-FDA0002405641920000034
传递向量R中[0,...,0]代表随机跳转到服务实例的概率为0,
Figure RE-FDA0002405641920000035
分别为随机跳转到正常请求r1到正常请求rk的概率,其中,Nrk表示第k个正常请求访问的服务实例数量,取预定转移系数输入PageRank算法进行迭代计算,得出每个服务实例的正常得分Ssn
5.如权利要求3所述的基于调用链数据的根因定位算法,其特征在于,所述S40具体为:
S401计算频谱方法所需统计量,所需统计量至少包括:经过服务实例n的异常请求数量efn,经过服务实例n的正常请求数量epn,未经过服务实例n的异常请求数量nfn,未经过服务实例n的正常请求数量npn,将efn调整为
Figure RE-FDA0002405641920000036
将epn调整为
Figure RE-FDA0002405641920000037
将nfn调整为
Figure RE-FDA0002405641920000038
将npn调整为
Figure RE-FDA0002405641920000039
Nf代表时间窗口tw1中异常请求的数量,Np代表时间窗口tw1中正常请求的数量;
S402对于没有被任何正常请求访问的服务实例n,其正常得分为所有ssn得分最小值的
Figure RE-FDA00024056419200000310
对于没有被任何异常请求访问的服务实例n,其异常得分为所有sfn得分最小值的
Figure RE-FDA0002405641920000041
S403对每个服务实例n,通过
Figure RE-FDA0002405641920000042
计算其最终得分,并按照得分从高到低排序,最后返回可疑服务实例列表。
6.如权利要求3所述的基于调用链数据的根因定位算法,其特征在于,所述预定转移系数d=0.85。
7.如权利要求1所述的基于调用链数据的根因定位算法,其特征在于,所述噪声临界值的区间为聚类总点数的0.5%~1%。
8.如权利要求2所述的基于调用链数据的根因定位算法,其特征在于,所述σ∈[2,3]。
CN201911129086.7A 2019-11-18 2019-11-18 一种基于调用链数据的根因定位算法 Active CN111190756B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911129086.7A CN111190756B (zh) 2019-11-18 2019-11-18 一种基于调用链数据的根因定位算法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911129086.7A CN111190756B (zh) 2019-11-18 2019-11-18 一种基于调用链数据的根因定位算法

Publications (2)

Publication Number Publication Date
CN111190756A true CN111190756A (zh) 2020-05-22
CN111190756B CN111190756B (zh) 2023-04-28

Family

ID=70707221

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911129086.7A Active CN111190756B (zh) 2019-11-18 2019-11-18 一种基于调用链数据的根因定位算法

Country Status (1)

Country Link
CN (1) CN111190756B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112866010A (zh) * 2021-01-04 2021-05-28 聚好看科技股份有限公司 一种故障定位方法及装置
CN113282635A (zh) * 2021-04-12 2021-08-20 国电南瑞科技股份有限公司 一种微服务系统故障根因定位方法及装置
CN113516174A (zh) * 2021-06-03 2021-10-19 清华大学 调用链异常检测方法、计算机设备以及可读存储介质
CN114124676A (zh) * 2021-11-19 2022-03-01 南京邮电大学 一种面向网络智能运维系统的故障根因定位方法及其系统
CN115733724A (zh) * 2021-08-27 2023-03-03 中移动信息技术有限公司 业务故障根因定位方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102436563A (zh) * 2011-12-30 2012-05-02 奇智软件(北京)有限公司 一种检测页面篡改的方法及装置
US20160261712A1 (en) * 2015-03-03 2016-09-08 Calgary Scientific Inc. Methods and systems for requesting access to limited service instances
US20180041573A1 (en) * 2015-07-16 2018-02-08 Tsinghua University Method for detecting abnormal load in cloud computing oriented online service
CN108282368A (zh) * 2018-01-24 2018-07-13 云宏信息科技股份有限公司 一种微服务管理系统、方法及计算机存储介质
CN109933452A (zh) * 2019-03-22 2019-06-25 中国科学院软件研究所 一种面向异常传播的微服务智能监测方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102436563A (zh) * 2011-12-30 2012-05-02 奇智软件(北京)有限公司 一种检测页面篡改的方法及装置
US20160261712A1 (en) * 2015-03-03 2016-09-08 Calgary Scientific Inc. Methods and systems for requesting access to limited service instances
US20180041573A1 (en) * 2015-07-16 2018-02-08 Tsinghua University Method for detecting abnormal load in cloud computing oriented online service
CN108282368A (zh) * 2018-01-24 2018-07-13 云宏信息科技股份有限公司 一种微服务管理系统、方法及计算机存储介质
CN109933452A (zh) * 2019-03-22 2019-06-25 中国科学院软件研究所 一种面向异常传播的微服务智能监测方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
丁学英;刘迪;邱镇;: "基于微服务架构的应用监控系统设计与实现" *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112866010A (zh) * 2021-01-04 2021-05-28 聚好看科技股份有限公司 一种故障定位方法及装置
CN113282635A (zh) * 2021-04-12 2021-08-20 国电南瑞科技股份有限公司 一种微服务系统故障根因定位方法及装置
CN113516174A (zh) * 2021-06-03 2021-10-19 清华大学 调用链异常检测方法、计算机设备以及可读存储介质
CN113516174B (zh) * 2021-06-03 2022-04-19 清华大学 调用链异常检测方法、计算机设备以及可读存储介质
CN115733724A (zh) * 2021-08-27 2023-03-03 中移动信息技术有限公司 业务故障根因定位方法、装置、电子设备及存储介质
CN114124676A (zh) * 2021-11-19 2022-03-01 南京邮电大学 一种面向网络智能运维系统的故障根因定位方法及其系统
CN114124676B (zh) * 2021-11-19 2024-04-02 南京邮电大学 一种面向网络智能运维系统的故障根因定位方法及其系统

Also Published As

Publication number Publication date
CN111190756B (zh) 2023-04-28

Similar Documents

Publication Publication Date Title
CN111190756A (zh) 一种基于调用链数据的根因定位算法
WO2021218003A1 (zh) 一种雷达嵌入式健康管理系统
CN113869801B (zh) 一种企业数字中台的成熟状态评估方法和装置
CN104679655B (zh) 基于参数相关性的软件系统状态评估方法
CN113015195B (zh) 一种无线传感器网络数据采集方法和系统
CN113468157B (zh) 一种基于能耗分析的相似建筑挑选方法和装置
EP3598258B1 (en) Risk assessment device, risk assessment system, risk assessment method, and risk assessment program
Haikka et al. Genomic prediction of grain yield in commercial Finnish oat (Avena sativa) and barley (Hordeum vulgare) breeding programmes
CN111382943A (zh) 一种基于加权灰色关联度分析的故障诊断评估方法
CN112904266A (zh) 一种电能表寿命预测方法及装置
JP2010218187A (ja) 製造条件調整装置
CN112367191A (zh) 一种5g网络切片下服务故障定位方法
EP4369469A1 (en) Fire-protection system and method for container-type energy storage device and storage medium
CN116074181A (zh) 保护机制影响下基于图推理的服务故障根因定位方法及装置
CN116204393A (zh) 业务系统的风控管理方法及装置
CN111027218B (zh) 考虑权重及相关性的复杂系统风险优先数分析计算方法
CN111258788B (zh) 磁盘故障预测方法、装置及计算机可读存储介质
Yu et al. Analysis of distributed database access path prediction based on recurrent neural network in internet of things
CN105389406B (zh) 基于故障的单位加权累计数的整车设计可靠性评估方法
CN111766848A (zh) 仪控系统中子系统的拒动率验证方法和装置
CN110633810A (zh) 一种确定装备维修间隔时间的方法、系统及电子设备
JP5872429B2 (ja) 制御システム
CN113450872B (zh) 磷酸化位点特异激酶的预测方法
CN114418204A (zh) 一种输电网感知层终端部署分析与规划方法及系统
CN114430360A (zh) 一种互联网安全监控方法、电子设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant