一种微服务系统故障根因定位方法及装置制造方法及图纸

技术编号:29757515 阅读:28 留言:0更新日期:2021-08-20 21:10
本发明专利技术公开了一种微服务系统故障根因定位方法及装置,所述方法包括如下步骤:对业务指标数据进行异常检测,如发现异常,则计算异常时间窗口;对异常时间窗口内的调用链数据进行故障定位分析:若数据库相关调用链数据存在失败记录,则判定故障实例为数据库;否则,对异常时间窗口内耗时最长的调用链进行调用链重建,根据重建调用链以及微服务系统的拓扑结构判断故障实例;对故障实例的各项实例监控指标进行异常检测,将异常实例监控指标加入故障根因集,并根据故障根因集实现故障根因定位。本发明专利技术能够实现故障根因自动定位,提高运维效率。

【技术实现步骤摘要】
一种微服务系统故障根因定位方法及装置
本专利技术涉及一种微服务系统故障根因定位方法及装置,属于电力系统

技术介绍
为满足新一代电网调度控制系统“物理分布、逻辑统一”的核心特征,调控支撑平台需满足“服务灵活部署”和“开放接入”的需求,因此引入了先进成熟的微服务技术,实现业务灵活分布和服务功能解耦和重用,降低应用服务的实现复杂度。但是微服务架构下,各服务之间存在复杂的依赖关系,当某一个或几个服务发生故障时,可能会引起级联故障。因此,需采用智能运维(AIOps:ArtificialIntelligenceforITOperations)技术,及时发现服务异常并定位故障根因,提高运维效率,保障电网调度控制系统安全稳定运行。目前在线运行的电网调度控制系统,仍主要采用传统的手工运维方式,一般由运维人员通过手工执行操作保证系统正常运行,当系统出现故障时由运维人员根据经验采取相应的补救措施。近年来,自动化专业针对不同监控对象也建设了独立的监控系统,例如网管系统、网络安全管理平台等。但这些监控系统主要侧重于业务、平台等指标数据的采集与监控,未能深入挖掘运维数据的价值,形成运维数据洞察,实现智能运维。被动的手工运维方式存在工作效率低、无法快速定位故障等不足。同时,各监控系统所采集的数据长期处于分散堆积的状态,形成了一个个运维数据孤岛,数据价值得不到有效挖掘,未能采用大数据、机器学习等技术,实现异常的自动检测与故障根因的自动定位。
技术实现思路
本专利技术的目的在于克服现有技术中的不足,提供一种微服务系统故障根因定位方法及装置,能够实现故障根因自动定位,提高运维效率。为达到上述目的,本专利技术是采用下述技术方案实现的:一方面,本专利技术提供一种微服务系统故障根因定位方法,包括如下步骤:对业务指标数据进行异常检测,如发现异常,则计算异常时间窗口;对异常时间窗口内的调用链数据进行故障定位分析:若数据库相关调用链数据存在失败记录,则判定故障实例为数据库;否则,对异常时间窗口内耗时最长的调用链进行调用链重建,根据重建调用链以及微服务系统的拓扑结构判断故障实例;对故障实例的各项实例监控指标进行异常检测,将异常实例监控指标加入故障根因集,并根据故障根因集实现故障根因定位。进一步的,将所述业务指标数据分别采用训练好的K-means聚类模型和TurkeyTest进行异常检测,若两异常检测结果中有一次检测结果为业务指标数据异常,则表明该条业务指标数据异常。进一步的,所述K-means聚类模型采用历史业务指标数据中服务调用的平均用时和服务调用的成功率作为特征对K-means模型训练获取;所述服务调用平均用时通过TurkeyTest,得到上下界阈值。进一步的,所述异常时间窗口的计算方法包括:根据业务指标数据异常起始时间作为异常时间窗口的起始时间Tstart;根据异常时间窗口的起始时间Tstart和设定的异常持续时间Tduration计算异常时间窗口的终止时间Tend;其中,Tend=Tstart+Tduration;所述异常持续时间Tduration按照历史经验设定;所述异常时间窗口即为[Tstart,Tend]。进一步的,根据父子节点关系对异常时间窗口内耗时最长的N条调用链进行调用链重建,N=80。进一步的,判断故障实例的方法包括:对于耗时最长的调用链进行节点耗时突变统计:若某容器耗时突变次数最多,则认定该容器故障;若同一主机下若干容器均发生多次耗时突变,则认定该主机故障;若所有容器均存在耗时突变,则认定为远程调用故障,通过遍历所有主机结合业务指标数据判定故障主机。进一步的,若节点耗时大于等于重建后整条调用链耗时的30%认为发生节点耗时突变。进一步的,对故障实例的各项实例监控指标进行异常检测的方法包括:对实例监控指标一阶差分后采用DBScan算法和3-sigma算法进行异常检测,仅当两算法检测该实例监控指标异常时,判定该实例监控指标异常。进一步的,所述各项实例监控指标指位于[Tstart-5min,Tend+5min]时间窗口内的所有实例监控指标;其中:Tstart为异常时间窗口的起始时间;Tend为异常时间窗口的终止时间。另一方面,本专利技术提供一种微服务系统故障根因定位装置,包括处理器和存储介质,所述存储介质用于存储指令;所述处理器用于加载所述指令以执行前述任一项所述方法的步骤。与现有技术相比,本专利技术所达到的有益效果:本专利技术能够通过业务指标数据,监控整个微服务系统的运行状态,及时有效地发现业务异常,并通过分析调用链数据和实例监控指标实现故障根因自动定位,提高微服务系统的运维效率,保证系统安全稳定运行。附图说明图1是根据本专利技术实施例提供的一种微服务系统故障根因定位方法的流程图;图2是根据本专利技术实施例提供的一种业务指标数据异常检测的方法流程图;图3是根据本专利技术实施例提供的一种故障根因集的获取方法流程图。具体实施方式下面结合附图对本专利技术作进一步描述。以下实施例仅用于更加清楚地说明本专利技术的技术方案,而不能以此来限制本专利技术的保护范围。实施例一:如图1所示,是本专利技术实施例提供的一种微服务系统故障根因定位方法,包括如下步骤:Step10:对业务指标数据进行异常检测,如发现异常,则计算异常时间窗口;其中业务指标数据包括:serviceName服务名称startTime服务开始时间avg_time服务调用平均用时num总调用次数success_num成功调用次数success_rate服务调用成功率Step20:对异常时间窗口内的调用链数据进行故障定位分析:首先分析数据库相关调用链数据,若发现有失败记录,则直接判定为数据库故障,及故障实例为数据库;若非数据库故障,则选择调用时间最长的N条调用链进行调用链重建,对重建后调用链中各节点的运行时间和状态进行统计分析,并结合微服务系统的拓扑结构判断故障实例;其中N为设定值,在本专利技术实施例中N可取为80;所述调用链数据包括:callType调用类型serviceName服务名startTime调用开始时间elapsedTime耗时success调用结果id本条记录idtraceId所属调用链idpid父节点iddsName数据源名称(该字段仅数据库调用记录)empt_id设备标识id(OS/d本文档来自技高网...

【技术保护点】
1.一种微服务系统故障根因定位方法,其特征在于,包括如下步骤:/n对业务指标数据进行异常检测,如发现异常,则计算异常时间窗口;/n对异常时间窗口内的调用链数据进行故障定位分析:若数据库相关调用链数据存在失败记录,则判定故障实例为数据库;否则,对异常时间窗口内耗时最长的调用链进行调用链重建,根据重建调用链以及微服务系统的拓扑结构判断故障实例;/n对故障实例的各项实例监控指标进行异常检测,将异常实例监控指标加入故障根因集,并根据故障根因集实现故障根因定位。/n

【技术特征摘要】
1.一种微服务系统故障根因定位方法,其特征在于,包括如下步骤:
对业务指标数据进行异常检测,如发现异常,则计算异常时间窗口;
对异常时间窗口内的调用链数据进行故障定位分析:若数据库相关调用链数据存在失败记录,则判定故障实例为数据库;否则,对异常时间窗口内耗时最长的调用链进行调用链重建,根据重建调用链以及微服务系统的拓扑结构判断故障实例;
对故障实例的各项实例监控指标进行异常检测,将异常实例监控指标加入故障根因集,并根据故障根因集实现故障根因定位。


2.根据权利要求1所述的微服务系统故障根因定位方法,其特征在于,所述异常检测的方法包括如下步骤:
将所述业务指标数据分别采用训练好的K-means聚类模型和TurkeyTest进行异常检测,若两异常检测结果中有一次检测结果为业务指标数据异常,则表明该条业务指标数据异常。


3.根据权利要求2所述的微服务系统故障根因定位方法,其特征在于,所述K-means聚类模型采用历史业务指标数据中服务调用的平均用时和服务调用的成功率作为特征对K-means模型训练获取;
所述服务调用平均用时通过TurkeyTest,得到上下界阈值。


4.根据权利要求1所述的微服务系统故障根因定位方法,其特征在于,所述异常时间窗口的计算方法包括:
根据业务指标数据异常起始时间作为异常时间窗口的起始时间Tstart;
根据异常时间窗口的起始时间Tstart和设定的异常持续时间Tduration计算异常时间窗口的终止时间Tend;其中,Tend=Tstart+Tduration;所述异常持续时间Tduration按照历史经验设定;
所述异常时间窗...

【专利技术属性】
技术研发人员:季学纯徐丽燕王纪立陈佳佳季惠英沙一川李昊翟明玉宋爱波张珂珩
申请(专利权)人:国电南瑞科技股份有限公司国电南瑞南京控制系统有限公司
类型:发明
国别省市:江苏;32

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

1