Revelio:ML生成的调试查询,用于查找分布式系统中的根本原因

的一部分机器学习与系统4(MLSys 2022)

Biptex公司 纸类

作者

Pradeep Dogga、Karthik Narasimhan、Anirudh Sivaraman、Shiv Saini、George Varghese、Ravi Netravali

摘要

调试分布式系统的一个主要困难在于手动确定要使用哪些可用的调试工具以及如何查询该工具的日志。我们自己对生产调试工作流的研究证实了这一负担的重要性。本文探讨了根据过去的错误报告和调试日志训练的深度神经网络是否可以帮助开发人员进行分布式系统调试。我们提供了Revelio,一个调试助手,它将用户报告和系统日志作为输入,并输出调试查询,开发人员可以使用这些查询来查找错误的根本原因。关键的挑战在于(1)组合不同类型的输入(例如,自然语言报告和定量日志)和(2)概括未发现的错误。Revelio通过使用深层神经网络将不同的输入源和潜在的查询统一嵌入到高维向量空间来解决这些问题。此外,它利用生产系统的观察结果,将查询生成分解为两个计算和统计上更简单的学习任务。为了评估Revelio,我们构建了一个带有多个分布式应用程序和调试工具的测试台。通过注入错误并对800 Mechanical Turkers的日志和报告进行训练,我们表明Revelio在96%的时间内将最有用的查询包含在其预测的前3个相关查询列表中。我们的开发者研究证实了Revelio的实用性。