工程师们利用日志作为大规模软件和系统测试中进行故障定位的主要资源,但这个过程是出了名的耗时、昂贵且劳动密集。

尽管在自动化故障定位方法方面取得了相当大的进展,但由于日志中缺乏大多数现有故障定位方法所需细粒度特征,这些方法的适用性在这些环境中仍然有限。

为了解决这个问题,我们引入了 FALCON,一个新颖的基于日志的故障定位框架。FALCON 将复杂的语义日志信息组织成图形化表示,并采用对比学习来捕获通过和失败日志之间的差异,从而能够识别关键的与故障相关的特征。它还结合了一种专门设计的基于传递分析的自适应图增强,以最大限度地减少与故障无关的日志信息对对比学习的影响。

通过对 34 种基于频谱的和 4 种基于学习的故障定位方法进行广泛的评估,FALCON 表现出卓越的性能,优于所有比较方法。此外,FALCON 在一家全球公司的测试系统中进行为期一个月的部署期间,成功地以文件级别的 Top-1 准确率识别了 90 个故障中的 71 个,证明了它的实际价值。


好的,下面是对对比学习和基于传递分析的自适应图增强的解释:

  • 对比学习 (Contrastive Learning):

    • 核心思想: 对比学习是一种机器学习方法,旨在通过学习区分相似和不相似的数据点来学习数据的表示。它不是直接预测标签,而是学习一个嵌入空间,在这个空间中,相似的样本彼此靠近,而不相似的样本彼此远离。
    • 工作方式:
      1. 正例和负例: 对比学习需要定义正例对(相似的样本)和负例对(不相似的样本)。通常,正例是通过对原始样本进行轻微的扰动(例如,图像的裁剪、旋转、颜色变换)来生成的。负例则是随机选择的其他样本。
      2. 嵌入空间: 模型(通常是神经网络)将输入样本映射到一个低维的嵌入空间。
      3. 损失函数: 使用对比损失函数(例如,InfoNCE loss, Triplet loss)来训练模型。这些损失函数的目标是:
        • 拉近正例对在嵌入空间中的距离。
        • 推远负例对在嵌入空间中的距离。
    • 在FALCON中的应用: FALCON使用对比学习来区分通过的日志和失败的日志。通过学习日志的嵌入表示,FALCON可以识别出与故障相关的关键特征,因为失败的日志在嵌入空间中会聚集在一起,并与通过的日志分开。
  • 基于传递分析的自适应图增强 (Transitive Analysis-based Adaptive Graph Augmentation):

    • 背景: 在日志分析中,日志信息可以表示成图结构,其中节点代表日志事件,边代表事件之间的关系。然而,日志中可能包含大量与故障无关的信息,这些信息会干扰故障定位。
    • 核心思想: 通过传递分析来增强图结构,并自适应地过滤掉与故障无关的日志信息,从而提高对比学习的效果。
    • 工作方式:
      1. 传递分析: 传递分析是指如果节点A与节点B相关,节点B与节点C相关,那么推断节点A与节点C也可能相关。在图结构中,这意味着如果A到B有一条边,B到C有一条边,那么可以添加一条从A到C的边。
      2. 自适应图增强:
        • 初始图: 首先构建一个初始的日志事件图。
        • 传递闭包: 应用传递分析,计算图的传递闭包,即添加所有可以通过传递关系到达的边。
        • 自适应过滤: 根据某种策略(例如,基于边的权重、节点的重要性等)自适应地删除一些边,以去除与故障无关的信息。这个过程可以看作是对图进行“剪枝”,保留最相关的连接。
    • 在FALCON中的应用: FALCON使用基于传递分析的自适应图增强来减少日志中与故障无关的信息对对比学习的影响。通过增强图结构并过滤掉不相关的连接,FALCON可以更准确地捕捉到与故障相关的日志事件之间的关系,从而提高故障定位的准确性。

总而言之,对比学习用于学习日志的有效表示,而基于传递分析的自适应图增强用于优化日志图结构,以提高对比学习的性能,最终实现更准确的故障定位。


http://example.com/posts/42.html
作者
司马吴空
发布于
2026年3月30日
许可协议