一句话:提出用户空间众包诊断方法 DyCause,基于轻量 API 日志推断服务间时变因果关系,定位微服务内核故障。
现有微服务故障诊断方法高度依赖内核侧监控指标,在缺乏完整监控基础设施时,应用拥有者乃至云运营商都难以使用。本文基于商业云平台运维经验,首次提出从用户空间诊断微服务内核故障,并实现众包方案 DyCause。DyCause 以分布式方式部署在应用侧,通过轻量 API 日志共享协作收集内核服务运行状态并按需发起诊断,无需对内核架构和功能提出要求。为从非对称诊断信息中提取更准确关联,作者设计统计算法高效发现服务间时变因果关系,并构建异常传播时序。在模拟测试床和真实云系统上的实验表明,DyCause 的运行准确率优于多种内核侧最先进算法,且在算法效率与数据敏感性上更具优势:当指标更少或更稀疏时,效果显著更好。
With the widespread use of cloud-native architecture, increasing web applications (apps) choose to build on microservices. Simultaneously, troubleshooting becomes full of challenges owing to the high dynamics and complexity of anomaly propagation. Existing diagnostic methods rely heavily on monitoring metrics collected from the kernel side of microservice systems. Without a comprehensive monitoring infrastructure, application owners and even cloud operators cannot resort to these kernel-space solutions. This paper summarizes several insights on operating a top commercial cloud platform. Then, for the first time, we put forward the idea of user-space diagnosis for microservice kernel failures. To this end, we develop a crowdsourcing solution - DyCause, to resolve the asymmetric diagnostic information problem. DyCause deploys on the application side in a distributed manner. Through lightweight API log sharing, apps collect the operational status of kernel services collaboratively and initiate diagnosis on demand. Deploying DyCause is fast and lightweight as we do not have any architectural and functional requirements for the kernel. To reveal more accurate correlations from asymmetric diagnostic information, we design a novel statistical algorithm that can efficiently discover the time-varying causalities between services. This algorithm also helps us build the temporal order of the anomaly propagation. Therefore, by using DyCause, we can obtain more in-depth and interpretable diagnostic clues with limited indicators. We apply and evaluate DyCause on both a simulated test-bed and a real-world cloud system. Experimental results verify that DyCause running in the user-space outperforms several state-of-the-art algorithms running in the kernel on accuracy. Besides, DyCause shows superior advantages in terms of algorithmic efficiency and data sensitivity. Simply put, DyCause produces a significantly better result than other baselines when analyzing much fewer or sparser metrics. To conclude, DyCause is faster to act, deeper in analysis, and easier to deploy.
DOI 原文 ·
@inproceedings{paperbot6675,
title = {Faster, deeper, easier: crowdsourcing diagnosis of microservice kernel failure from user space},
author = {Yicheng Pan and Meng Ma and Xinrui Jiang and Ping Wang},
booktitle = {ISSTA},
year = {2021},
doi = {10.1145/3460319.3464805}
}