首页 | 本学科首页   官方微博 | 高级检索  
     

一种基于执行轨迹监测的微服务故障诊断方法
引用本文:王子勇,王焘,张文博,陈宁江,左春. 一种基于执行轨迹监测的微服务故障诊断方法[J]. 软件学报, 2017, 28(6): 1435-1454
作者姓名:王子勇  王焘  张文博  陈宁江  左春
作者单位:中国科学院 软件研究所, 北京 100190;中国科学院大学, 北京 100190,中国科学院 软件研究所, 北京 100190,中国科学院 软件研究所, 北京 100190,广西大学, 广西桂林 530004,中国科学院 软件研究所, 北京 100190;中科软科技股份有限公司, 北京 100190
基金项目:国家自然科学基金(61402450,61363003,61572480);北京市自然科学基金(4154088);CCF-启明星辰“鸿雁”科研资助计划(CCF-VenustechRP2016007);国家科技支撑计划(2015BAH55F02)
摘    要:微服务正逐步成为互联网应用所采用的设计架构,如何有效检测故障并定位问题原因是保障微服务性能与可靠性的关键技术之一.然而,当前的方法通常监测系统度量,根据领域知识,人工设定报警规则,难以自动检测故障并细粒度定位问题原因.针对该问题,本文提出一种基于执行轨迹监测的微服务故障诊断方法.首先,利用动态插桩监测服务组件的请求处理流,进而利用调用树对请求处理的执行轨迹进行刻画;然后,针对影响执行轨迹的系统故障,利用树编辑距离来评估请求处理的异常程度,通过分析执行轨迹差异来定位引发故障的方法调用;最后,针对性能异常,采用主成分分析抽取引起系统性能异常波动的关键方法调用.实验结果表明,该方法可以准确刻画请求处理的执行轨迹,以方法为粒度准确定位系统故障以及性能异常的问题原因.

关 键 词:故障诊断  异常检测  微服务  执行轨迹  主成分分析
收稿时间:2016-07-21
修稿时间:2016-10-10

Fault Diagnosis for Microservices with Execution Trace Monitoring
WANG Zi-Yong,WANG Tao,ZHANG Wen-Bo,CHEN Ning-Jiang and ZUO Chun. Fault Diagnosis for Microservices with Execution Trace Monitoring[J]. Journal of Software, 2017, 28(6): 1435-1454
Authors:WANG Zi-Yong  WANG Tao  ZHANG Wen-Bo  CHEN Ning-Jiang  ZUO Chun
Affiliation:Institute of Software, Chinese Academy of Sciences, Beijing 100190, China;University of Chinese Academy of Sciences, Beijing 100190, China,Institute of Software, Chinese Academy of Sciences, Beijing 100190, China,Institute of Software, Chinese Academy of Sciences, Beijing 100190, China,Sinosoft Company Limited, Beijing 100190, China and Institute of Software, Chinese Academy of Sciences, Beijing 100190, China
Abstract:The microservice architecture is gradually adopted by more and more applications. How to effectively detect and locate faults is a key technology to guarantee the performance and reliability of microservices. Current approaches typically monitor physical metrics, and manually set alarm rules according to the domain knowledge. However, these approaches cannot automatically detect faults and locate root causes in fine granularity. To address the above issues, we propose a fault diagnosis approach for microservices based on the execution trace monitoring. Firstly, we use the dynamic instrumentation to monitor the execution traces crossing service components, and then use call trees to describe the execution traces of user requests. Secondly, for the faults affecting the structure of execution traces, we use the tree edit distance to assess the abnormality degree of processing requests, and locate the method calls leading to failures by analyzing the difference between execution traces. Thirdly, for the performance anomalies leading to the response delay, we use principal component analysis to extract the key method invocations causing unusual fluctuations in performance metrics. Experimental results show that our approach can accurately characterize the execution trace of processing requests, and accurately locate methods causing system failures and performance anomalies.
Keywords:Fault diagnosis  Anomaly detection  Microservices  Execution trace  Principal component analysis
点击此处可从《软件学报》浏览原始摘要信息
点击此处可从《软件学报》下载全文
设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号