一句话:提出 MEPFL,利用系统跟踪日志学习模型,在微服务生产运行时预测潜在错误、定位故障微服务并识别故障类型。
针对生产环境中微服务故障常因复杂动态交互、多实例、配置和异步交互而难以复现和诊断的问题,论文提出 MEPFL。方法从目标应用及其注入故障版本的自动执行中采集系统跟踪日志,在 trace 与微服务两个粒度构造特征并训练预测模型;运行时对捕获的 trace 实例预测潜在错误、故障微服务和故障类型。基于容器编排器与服务网格基础设施实现,并在两个开源微服务应用上开展实验。结果表明,MEPFL 在应用内预测潜在错误、故障微服务和故障类型方面准确率较高,优于现有分布式系统故障诊断方法,并能有效预测真实故障案例引发的潜在错误。
In the production environment, a large part of microservice failures are related to the complex and dynamic interactions and runtime environments, such as those related to multiple instances, environmental configurations, and asynchronous interactions of microservices. Due to the complexity and dynamism of these failures, it is often hard to reproduce and diagnose them in testing environments. It is desirable yet still challenging that these failures can be detected and the faults can be located at runtime of the production environment to allow developers to resolve them efficiently. To address this challenge, in this paper, we propose MEPFL, an approach of latent error prediction and fault localization for microservice applications by learning from system trace logs. Based on a set of features defined on the system trace logs, MEPFL trains prediction models at both the trace level and the microservice level using the system trace logs collected from automatic executions of the target application and its faulty versions produced by fault injection. The prediction models thus can be used in the production environment to predict latent errors, faulty microservices, and fault types for trace instances captured at runtime. We implement MEPFL based on the infrastructure systems of container orchestrator and service mesh, and conduct a series of experimental studies with two opensource microservice applications (one of them being the largest open-source microservice application to our best knowledge). The results indicate that MEPFL can achieve high accuracy in intraapplication prediction of latent errors, faulty microservices, and fault types, and outperforms a state-of-the-art approach of failure diagnosis for distributed systems. The results also show that MEPFL can effectively predict latent errors caused by real-world fault cases.
@inproceedings{paperbot5097,
title = {Latent error prediction and fault localization for microservice applications by learning from system trace logs},
author = {Xiang Zhou and Xin Peng and Tao Xie and Jun Sun and Chao Ji and Dewei Liu and Qilin Xiang and Chuan He},
booktitle = {FSE},
year = {2019},
doi = {10.1145/3338906.3338961}
}