中文

从日志中提取故障指示信息用于故障诊断的揭秘与实现

软件工程 2024-09-23 v1 计算与语言

摘要

日志对于在线服务系统的维护至关重要,其中通常包含有效缓解故障所需的重要信息。虽然现有的异常检测方法有助于在大量运行时数据中识别异常日志,但工程师仍需手动检查日志消息以理解故障,这既耗费人力又容易出错。通过研究CloudA的基于日志的故障排查实践,我们发现工程师在诊断时通常优先关注两类日志信息:记录异常系统事件的故障指示描述,以及指明相关实体的故障指示参数。基于这一发现,我们提出了一种名为LoFI的方法,用于自动从日志中提取此类故障指示信息以进行故障诊断。LoFI包含两个关键阶段。第一阶段,LoFI基于语义相似性进行粗粒度过滤,以收集与故障相关的日志。第二阶段,LoFI利用预训练语言模型和一种新颖的基于提示的微调方法,从收集的日志中提取感兴趣的细粒度信息。我们在Apache Spark收集的日志和CloudA的工业数据集上评估了LoFI。实验结果表明,LoFI显著优于所有基线方法,相较于最佳基线方法ChatGPT,F1分数绝对提升了25.8~37.9。这凸显了LoFI在识别故障指示信息方面的有效性。此外,LoFI在CloudA的成功部署和用户研究验证了我们方法的实用性。代码和数据可在 https://github.com/Jun-jie-Huang/LoFI 获取。

关键词

引用

@article{arxiv.2409.13561,
  title  = {Demystifying and Extracting Fault-indicating Information from Logs for Failure Diagnosis},
  author = {Junjie Huang and Zhihan Jiang and Jinyang Liu and Yintong Huo and Jiazhen Gu and Zhuangbin Chen and Cong Feng and Hui Dong and Zengyin Yang and Michael R. Lyu},
  journal= {arXiv preprint arXiv:2409.13561},
  year   = {2024}
}

备注

This paper has been accepted by the 35th IEEE International Symposium on Software Reliability Engineering (ISSRE'2024)