【技术实现步骤摘要】
一种面向云原生系统的微服务根因定位方法
本专利技术涉及服务计算
,尤其涉及一种面向云原生系统的微服务根因定位方法。
技术介绍
随着云计算、物联网、服务计算等技术的快速发展,用户对软件系统的需求越来越多样化,需求变化也越来越频繁,软件系统需要在稳定的服务集成和灵活的需求适应之间取得平衡。在传统的系统或服务中,如果出现异常,通常会通过日志和事件跟踪来监控。然后通过ELK工具定位和分析性能问题。随着业务越来越复杂,传统的日志监控等方法无法达到跟踪和故障诊断的需求,具有独立流程和部署能力的微服务技术得到了越来越多企业的青睐。微服务架构将单个应用开发为一套小业务组合的微服务系统,这些微服务可以独立部署,相互之间松散耦合。使用微服务架构的同时也带来一些问题:一旦某个微服务出现异常,由于微服务之间的协作复杂度较高,出现异常的微服务会不同程度地牵连到与其协作的所有微服务,导致其响应时间延迟、甚至停止服务。一般来说,微服务系统的根因定位首先要缩小故障范围,然后在复杂的微服务网络中梳理出之前的依赖关系,最后结合服务依赖信息,在短时间内准确定位出现异常的根源微服务。目前,微服务根因定位问题的挑战有:1)可扩展性:微服务系统的一个重要特点是可扩展性,一个微服务可能有很多副本,因而复杂化服务依赖网络,导致定位异常的难度加大。2)监控指标多:服务之间的通信量大且频繁,造成监控指标数量繁多。如Uber和OpenStack拥有500,000,000个指标,17608个指标。要从这些指标中准确定位性能问题,是一个很有挑战性的问题。3)高 ...
【技术保护点】
1.一种面向云原生系统的微服务根因定位方法,其特征在于,该方法包括以下步骤:/n步骤S1:收集微服务系统的系统性能指标和SLO指标并存入时序数据库作为基础数据,所述SLO指标表示Service Level Objective指标;/n步骤S2:采用DTW方法计算任意两个微服务在相应时间序列上的相似度,并对相似度集合进行聚类判断微服务系统是否出现异常,所述DTW方法表示Dynamic Time Wrapping方法;/n步骤S3:通过收集到的SLO指标中的HTTP请求和TCP请求建立服务依赖图SDG;/n步骤S4:结合服务请求链路调整各微服务节点的异常权重;/n步骤S5:采用PPR算法结合全局的服务依赖图SDG信息对异常节点进行定位,所述PPR算法表示Personalized PageRank算法。/n
【技术特征摘要】
1.一种面向云原生系统的微服务根因定位方法,其特征在于,该方法包括以下步骤:
步骤S1:收集微服务系统的系统性能指标和SLO指标并存入时序数据库作为基础数据,所述SLO指标表示ServiceLevelObjective指标;
步骤S2:采用DTW方法计算任意两个微服务在相应时间序列上的相似度,并对相似度集合进行聚类判断微服务系统是否出现异常,所述DTW方法表示DynamicTimeWrapping方法;
步骤S3:通过收集到的SLO指标中的HTTP请求和TCP请求建立服务依赖图SDG;
步骤S4:结合服务请求链路调整各微服务节点的异常权重;
步骤S5:采用PPR算法结合全局的服务依赖图SDG信息对异常节点进行定位,所述PPR算法表示PersonalizedPageRank算法。
2.根据权利要求1所述的面向云原生系统的微服务根因定位方法,其特征在于,步骤S1具体包括:
步骤S1.1:收集微服务系统的系统性能指标,包括:微服务所在的物理机及docker容器的CPU利用率、内存利用率、网络交换速率;
步骤S1.2:收集微服务系统的SLO指标,即在应用层面的指标,包括:HTTP请求总数、请求入站时间、请求出站时间、TCP请求;
步骤S1.3:从微服务系统开始运行的时刻开始,每经过时间间隔interval将步骤S1.1和步骤S1.2收集到的各项指标存入时序数据库InfluxDB。
3.根据权利要求1所述的面向云原生系统的微服务根因定位方法,其特征在于,步骤S2具体包括:
步骤S2.1:抽取时序数据库中所有微服务当前时刻时间窗口time_window的SLO指标中的请求入站时间序列rt_inbound和请求出站时间序列rt_outbound;其中请求入站时间inbound表示客户端微服务发送请求到服务端微服务收到请求的时间,请求出站时间outbound表示服务端微服务发送数据到客户端微服务收到数据的时间;
步骤S2.2:对于每个微服务,计算该微服务在当前时间窗口的响应时间序列计为rt,rt=rt_inbound+rt_outbound;每经过时间间隔interval收集一次数据,在当前时间窗口time_window共有n=Ceiling(timw_window/interval)个inbound和outbound数据,其中Ceiling函数表示向上取整,即rt={rt_1,rt_2,…,rt_n};
步骤S2.3:利用动态时间规整方法,即DTW方法,计算微服务系统中任意两个微服务在响应时间序列上的相似度;
步骤S2.4:判断微服务系统是否出现异常。
4.根据权利要求3所述的面向云原生系统的微服务根因定位方法,其特征在于,步骤S2.3具体包括:
利用DTW方法计算任意两个微服务在响应时间序列上的相似度方法如下:首先从时序数据库InfluxDB抽取两个微服务ms1和ms2在当前时间窗口下的响应时间序列ms1_rt和ms2_rt;然后将ms1_rt和ms2_rt作为动态时间规整DTW的输入,计算两个时间序列的距离d1;相同的步骤计算微服务系统中任意两个微服务在响应时间序列上的距离得到集合D={d1,d2,…,dn};最后对D进行归一化处理,得到微服务系统中任意两个微服务在响应时间序列上的相似度集合Sim={sim1,sim2,…,simn}。
5.根据权利要求4所述的面向云原生系统的微服务根因定位方法,其特征在于,步骤S2.4具体包括:
判断微服务系统是否出现异常的具体方法是:使用K-Means聚类算法对步骤S2.3中得到的相似度集合做聚类处理;如最终聚类结果出现多个类别,即出现异常;如最终聚类结果仅一个类别,即未出现异常。
6.根据权利要求2所述的面向云原生系统的微服务根因定位方法,其特征在于,步骤S3具体包括:
步骤S3:对于每一次服务请求根据步骤S1.2收集到的HTTP请求和TCP请求构建服务依赖图SDG;
构建服务依赖图SDG的具体方法是:根据步骤S1.2中收集到的HTTP请求信息,从前端微服务frontend发出的HTTP请求和TCP请求经过微服务集合M={m1,m2,…,mk},对于微服务集合M中的每一个元素m,添加一条方向从前端微服务frontend到m的边E(frontend,m)至服务依赖图SDG,如果HTTP请求和TCP请求重复则对重复节...
【专利技术属性】
技术研发人员:孙世磊,张泽锟,李兵,王健,
申请(专利权)人:武汉大学,
类型:发明
国别省市:湖北;42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。