一种面向异常传播的微服务智能监测方法技术

技术编号:21453699 阅读:21 留言:0更新日期:2019-06-26 04:42
本发明专利技术涉及一种面向异常传播的微服务智能监测方法,基于代理技术监测服务调用信息,建立微服务调用拓扑图以刻画微服务间异常传播关系;采用Lasso回归建模接口调用与度量间关联,通过监测关联模型的变化检测异常微服务;基于PageRank算法评估微服务及其调用接口的异常程度,本发明专利技术实现了透明化服务监测,自动化度量值预测以发现异常服务,智能化评估图中节点的异常程度以检测问题根因。

【技术实现步骤摘要】
一种面向异常传播的微服务智能监测方法
本专利技术涉及微服务软件系统的故障诊断方法,尤其涉及一种面向异常传播的微服务智能监测方法,属于软件

技术介绍
单体式架构和SOA软件架构是软件公司普遍采用的架构形式,经过十几年的发展,软件系统已经变的异常复杂,扩展性与维护性很低,企业背负了沉重的技术债务。当今互联网竞争激烈,用户需求和市场环境时刻处于快速的变化当中,在面对当今的互联网应用时,传统软件架构形式的扩展性与灵活性明显不足,而设计、开发、测试及运维成本却显著增加。因此,微服务的概念被提出,微服务是一种将单个应用程序作为一组软件服务套件的软件架构形式,各个服务运行于独立的进程,彼此通过轻量级协议进行通信。微服务架构的特性非常适合敏捷开发与持续集成,解决了传统软件架构的痛点,获得了学术界和工业界的广泛关注与研究。当软件系统微服务化以后,在提高维护性及灵活性的同时,却使得服务之间的依赖关系错综复杂,增加了故障发生的几率和故障带来的损失。例如在一个高流量的网站中,某个服务组件一旦发生延迟,可能导致所有应用资源被耗尽,造成所谓的雪崩效应,严重时可致整个系统瘫痪。因此有效监测系统,并快速定位故障原因是保障微服务可靠性与性能的关键技术之一。针对微服务故障诊断的工作主要有以下几类:(1)基于度量监测的诊断方法。该方法主要是收集系统运行指标,比如CPU、内存、网络等,以此反映应用程序当前状态及一段时间内的运行趋势。如果某一度量超过预置的阀值,则表示系统出现了问题,并触发报警,然后,管理员以监测数据为依据,结合自身的经验来解决问题(WangT,ZhangW,YeC,WeiJ,ZhongH,HuangT.FD4C:AutomaticFaultDiagnosisFrameworkforWebApplicationsinCloudComputing.IEEETransactionsonSystems,Man,andCybernetics:Systems.2016,46(1):61-75;M.Farshchi,J.G.Schneider,I.Weber,andJ.Grundy,“Metricselectionandanomalydetectionforcloudoperationsusinglogandmetriccorrelationanalysis,”JournalofSystemsandSoftware,2018,137,pp.531-549.);(2)基于日志的监测分析方法,日志明确地记录了系统的运行情况,便于持久化,并且可以很容易地搜索,通常是查明故障原因和支持更多业务目标的有效手段(ELK.https://www.elastic.co/);(3)基于分布式请求追踪的监测诊断方法,通过基于标注的方法获取请求的执行路径,通过对执行路径的分析或者将路径进行对比,来发现系统故障(A.Nandi,A.Mandal,S.Atreja,G.B.Dasgupta,andS.Bhattacharya,"AnomalyDetectionUsingProgramControlFlowGraphMiningFromExecutionLogs,"22ndACMSIGKDDInternationalConferenceonKnowledgeDiscoveryandDataMining,SanFrancisco,California,USA,2016;T.Jia,P.Chen,L.Yang,Y.Li,F.MengandJ.Xu,"AnApproachforAnomalyDiagnosisBasedonHybridGraphModelwithLogsforDistributedServices,"IEEEInternationalConferenceonWebServices,Honolulu,HI,2017,pp.25-32.)。其中基于度量、日志的监控故障诊断方式实现简单,但不能反映系统的整体状态,无法跟踪业务流,故障定位的级别通常是服务组件,在复杂的微服务交互关系中,管理员将耗费大量的时间来查找和定位问题;而基于分布式请求追踪的监测诊断方法通过日志或者植入代码的方式监测请求的轨迹作为故障诊断的参考,但是此方法监测的扩展性较低,无法做到对应用透明,也没有考虑到异常传播的问题。
技术实现思路
本专利技术的技术解决问题:克服现有技术的不足,提供一种面向微服务的高效故障诊断系统。通过对服务透明的调用监测,提高系统的扩展性,降低监测对微服务运行的影响;通过分析监测数据,实现接口级别的细粒度故障根因定位。本专利技术技术解决方案:一种面向异常传播的微服务智能监测方法,实现步骤如下:第一步,服务调用监测:基于代理技术监测服务调用信息,用多元组Ni=(requestUID,serviceUID,spanUID,parentUID,info)来记录服务调用关系,其中requestUID为请求标识符,在请求入口处生成;serviceUID为服务标识符;spanUID为服务调用span标识符;parentUID为父span标识符,如果为-1,表示当前span为根span;info包含其他信息,用多元组info=(serviceUID,startTime,endTime,duration)来表示,其中ServiceUID由服务组件和实例编号唯一标识;startTime和endTime是服务调用开始、结束时间;duration为服务调用的执行时间。基于上述监测到的服务调用信息,构建服务调用拓扑图的具体过程如下:(1)初始阶段,拓扑图G为空,集合S中包含所收集的调用信息;(2)从集合S中取出属于同一请求的且有调用关系的元组,将元组中的serviceUID所代表的服务实例作为点,调用关系作为有向边加入到G中,如果点或边已经存在,不重复添加;(3)如果集合S不为空,则继续执行(2)。否则,算法结束。第二步,异常服务检测:构建服务内接口调用次数与服务监测度量之间的关联模型,具体步骤如下:(1)收集服务内度量的监测数据以及服务内所有接口调用次数的数据。对于某个服务S内的度量m来说,用向量来表示在时刻t时,服务i对该服务内q个接口的调用次数,其中表示时刻t服务i调用该服务内编号为t1的接口的次数,对其做标准化处理,作为Lasso回归模型的解释变量。用Yt表示度量m在时刻t的监测值,作为Lasso回归模型的响应变量;(2)基于上述数据构建Lasso回归模型,模型的自变量为通过(1)获得的服务接口调用次数构成的向量,因变量为某个度量m在时刻t的监测值。进一步构建的回归模型为:其中为回归系数,α为随机误差项。在约束条件下,通过坐标下降法求出使得极小化的回归系数和误差项;(3)采用广义交叉验证法来选择调整参数t,广义交叉验证法的形式为:其中RSS(c)表示残差平方和:p(c)为Lasso回归中有效回归系数的个数;(4)在服务运行过程中,基于Lasso回归模型对度量值进行预测,计算残差:当残差绝对值大于设定的阈值时,认定度量出现异常,进而认为服务出现异常;第三步,故障服务诊断:基于前两步得到的数据,将所有出现异常的服务根据其调用关系构建故障传播子图。在子图中,使用PageRank算法对每本文档来自技高网
...

【技术保护点】
1.一种面向异常传播的微服务智能监测方法,其特征在于,包括步骤如下:第一步,服务调用监测:基于代理技术监测服务调用信息,用多元组N=(requestUID,serviceUID,spanUID,parentUID,info)记录服务调用关系,其中requestUID为请求标识符,在请求入口处生成,serviceUID为服务标识符,span表示一次服务调用,spanUID为服务调用span标识符,parentUID为父span标识符,如果为‑1,表示当前span为根span,info为包含的其他相关信息,info=(serviceUID,startTime,endTime,duration),其中startTime和endTime是服务调用开始、结束时间,duration为服务调用的执行时间,基于上述监测到的服务调用信息,构建服务调用拓扑图,以刻画异常传播;第二步,异常服务检测:构建服务接口的调用次数与服务监测度量之间的关联模型,检测得出所有出现异常的服务,具体步骤如下:(1)服务接口调用监测:

【技术特征摘要】
1.一种面向异常传播的微服务智能监测方法,其特征在于,包括步骤如下:第一步,服务调用监测:基于代理技术监测服务调用信息,用多元组N=(requestUID,serviceUID,spanUID,parentUID,info)记录服务调用关系,其中requestUID为请求标识符,在请求入口处生成,serviceUID为服务标识符,span表示一次服务调用,spanUID为服务调用span标识符,parentUID为父span标识符,如果为-1,表示当前span为根span,info为包含的其他相关信息,info=(serviceUID,startTime,endTime,duration),其中startTime和endTime是服务调用开始、结束时间,duration为服务调用的执行时间,基于上述监测到的服务调用信息,构建服务调用拓扑图,以刻画异常传播;第二步,异常服务检测:构建服务接口的调用次数与服务监测度量之间的关联模型,检测得出所有出现异常的服务,具体步骤如下:(1)服务接口调用监测:表示在时刻t,服务i中q个服务接口的调用次数构成的向量,其中表示时刻t服务i中编号为t1的服务接口次数;(2)基于Lasso回归的资源建立Lasso回归模型:所述回归模型的自变量为通过步骤(1)中获得的服务接口调用次数构成的向量,因变量为某个度量m在时刻t的监测值...

【专利技术属性】
技术研发人员:王焘张文博薛晓东
申请(专利权)人:中国科学院软件研究所
类型:发明
国别省市:北京,11

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

1