###
Journal of Software:2017.28(6):1435-1454

一种基于执行轨迹监测的微服务故障诊断方法
王子勇,王焘,张文博,陈宁江,左春
(中国科学院 软件研究所, 北京 100190;中国科学院大学, 北京 100190;广西大学 计算机与电子信息学院, 广西 桂林 530004;中国科学院 软件研究所, 北京 100190;中科软科技股份有限公司, 北京 100190)
Fault Diagnosis for Microservices with Execution Trace Monitoring
WANG Zi-Yong,WANG Tao,ZHANG Wen-Bo,CHEN Ning-Jiang,ZUO Chun
(Institute of Software, Chinese Academy of Sciences, Beijing 100190, China;University of Chinese Academy of Sciences, Beijing 100190, China;School of Computer, Electronics and Information, Guangxi University, Guilin 530004, China;Institute of Software, Chinese Academy of Sciences, Beijing 100190, China;Sinosoft Company Limited, Beijing 100190, China)
Abstract
Chart / table
Reference
Similar Articles
Article :Browse 2020   Download 1654
Received:July 21, 2016    Revised:October 11, 2016
> 中文摘要: 微服务正逐步成为互联网应用所采用的设计架构,如何有效检测故障并定位问题原因,是保障微服务性能与可靠性的关键技术之一.当前的方法通常监测系统度量,根据领域知识人工设定报警规则,难以自动检测故障并细粒度定位问题原因.针对该问题,提出一种基于执行轨迹监测的微服务故障诊断方法.首先,利用动态插桩监测服务组件的请求处理流,进而利用调用树对请求处理的执行轨迹进行刻画;然后,针对影响执行轨迹的系统故障,利用树编辑距离来评估请求处理的异常程度,通过分析执行轨迹差异来定位引发故障的方法调用;最后,针对性能异常,采用主成分分析抽取引起系统性能异常波动的关键方法调用.实验结果表明:该方法可以准确刻画请求处理的执行轨迹,以方法为粒度,准确定位系统故障以及性能异常的问题原因.
Abstract: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, this work proposes a fault diagnosis approach for microservices based on the execution trace monitoring. First, dynamic instrumentation is used to monitor the execution traces crossing service components, and then call trees are used to describe the execution traces of user requests. Second, for the faults affecting the structure of execution traces, the tree edit distance is used to assess the abnormality degree of processing requests, and the method calls leading to failures are located by analyzing the difference between execution traces. Third, for the performance anomalies leading to the response delay, principal component analysis is used to extract the key method invocations causing unusual fluctuations in performance metrics. Experimental results show that this new approach can accurately characterize the execution trace of processing requests, and locate the methods that cause system failures and performance anomalies.
文章编号:     中图分类号:    文献标志码:
基金项目:国家自然科学基金(61402450,61363003,61572480);北京市自然科学基金(4154088);CCF-启明星辰“鸿雁”科研资助计划(CCF-VenustechRP2016007);国家科技支撑计划(2015BAH55F02) 国家自然科学基金(61402450,61363003,61572480);北京市自然科学基金(4154088);CCF-启明星辰“鸿雁”科研资助计划(CCF-VenustechRP2016007);国家科技支撑计划(2015BAH55F02)
Foundation items:National Natural Science Foundation of China (61402450, 61363003, 61572480); Natural Science Foundation of Beijing(4154088); CCF-Venustech Hongyan Research Initiative (CCF-VenustechRP2016007); National Key Technology R&D Program of China under Project(2015BAH55F02)
Reference text:

王子勇,王焘,张文博,陈宁江,左春.一种基于执行轨迹监测的微服务故障诊断方法.软件学报,2017,28(6):1435-1454

WANG Zi-Yong,WANG Tao,ZHANG Wen-Bo,CHEN Ning-Jiang,ZUO Chun.Fault Diagnosis for Microservices with Execution Trace Monitoring.Journal of Software,2017,28(6):1435-1454