ARMOR 不把指标、日志或调用链缺失当作边缘情况,而是将其视为生产环境中的基本条件。它按不同遥测数据的物理结构分别学习表示,显式标记缺失输入,在融合时抑制误导性的占位信息,并通过自监督重构训练一套共享故障表示。
1. 智能运维中容易被忽略的故障
微服务故障诊断通常结合三类遥测数据:连续的资源与服务指标、半结构化日志、分布式调用链。多数多模态系统默认三者始终齐全。真实环境中,采集代理可能崩溃,网络可能阻断 exporter,采样会丢弃调用链,配置错误也会让通道停止上报。
用零补齐并不是中性操作。一个缺失指标被填成零,可能恰好像服务处于健康空闲状态,模型反而会高置信地读出一条“伪正常信号”。如果过早或僵硬地融合多类数据,一个缺失模态还会污染另外两个尚且有效的模态。
2. 如何形式化不完整观测
对每个服务实例,ARMOR 接收指标 \(X^{M}\)、日志 \(X^{L}\) 与调用链 \(X^{T}\)。观测掩码记录哪些数据流实际可用:
输出分别是异常状态 \(y\)、故障类型 \(s\),以及服务实例上的根因概率分布 \(P=[p_1,\ldots,p_N]\)。显式输入 \(O\),模型才能区分“没有采到数据”和“真实数值为零”。
3. 机制一:模态专用状态学习
指标稠密、连续且通常维度较高,日志和调用链则是稀疏事件摘要。完全对称的编码器可能对稀疏事件过拟合,也可能无法充分表达波动复杂的指标。ARMOR 因此给指标分配更深、容量更高的时序模块,日志与调用链采用轻量模块。
在每个模态 \(m\) 内,特征提取分为三个层次:
大卷积核的深度卷积捕捉内存泄漏等长期时序变化,通道混合表达延迟与 I/O 同时升高等关联,实例混合则初步建立空间关系,同时避免不同模态过早互相干扰。
4. 机制二:缺失感知全局融合
各模态表示先被投影到统一维度。若模态 \(k\) 缺失,ARMOR 不会把零向量伪装成正常观测,而是放入可学习的缺失标记 \(E_{\mathrm{miss}}\),再加入模态身份向量:
多头注意力先建模模态间关系,随后第二层门控决定每个模态应贡献多少。关键约束是,缺失偏置必须为负:
占位表示回答“发生了什么”:遥测缺失;负向偏置回答“模型应如何处理”:把注意力转向仍然可靠的证据。惩罚按模态分别学习,因此高维指标缺失时,可以比稀疏事件流缺失受到更强抑制。
最后,ARMOR 在微服务调用拓扑上运行多头图注意力网络。根因证据可以沿真实依赖关系传播,而不是在互不相关的服务实例间简单平均。
5. 机制三:自监督学习正常运行规律
离线训练只使用无异常遥测,并随机丢弃整类模态。模型根据剩余数据流和相邻服务,预测完整的下一时刻 \(\widehat X^{(T+1)}\)。两个重构损失提供不同监督:
观测损失用于学习正常运行规律,掩码损失迫使模型完成跨模态、跨实例推断,例如根据调用量和相邻服务估计 CPU 状态。在线阶段,ARMOR 将重构偏差与潜在状态拼接为统一故障表征。异常检测与根因定位不需要故障标签,故障分类的下游分类器使用故障类型标签。
6. 实验证明了什么
论文使用两个业界常用微服务数据集,并设置三种缺失粒度:整类模态、特征通道和单个元素。完整数据实验首先确认,鲁棒性并不是以牺牲正常场景性能换来的。
| 数据集 | 方法 | AD F1 | FT F1 | RCL Avg@5 | |||
|---|---|---|---|---|---|---|---|
| 数值 | 绝对差值 | 数值 | 绝对差值 | 数值 | 绝对差值 | ||
| \(\mathcal D_1\) | ART | 0.942 | 0.812 | 0.776 | |||
| \(\mathcal D_1\) | ARMOR | 0.961 | +0.019 | 0.938 | +0.126 | 0.910 | +0.134 |
| \(\mathcal D_2\) | ART | 0.917 | 0.802 | 0.870 | |||
| \(\mathcal D_2\) | ARMOR | 0.997 | +0.080 | 0.869 | +0.067 | 0.893 | +0.023 |
整类模态缺失时,ARMOR 在两个数据集的所有场景下都优于 ART。指标缺失造成的冲击最大,因为高维指标占位会产生最强的伪正常干扰。在这一场景下,ARMOR 的根因定位准确率在两个数据集上均比 ART 高出 60% 以上。
更细粒度的实验把模态、通道和元素缺失率从 0% 提高到 40%,每个点使用十组随机掩码重复测试。ARMOR 在三个任务、两个数据集、三类缺失粒度下都保持更强表现,说明该机制不仅能处理训练时模拟的整类缺失,也能应对间歇性和局部数据损坏。
消融实验也与机制设计一致。把缺失感知门控换成均值融合、把可学习占位换成零填充、或者取消模态丢弃训练,都会降低性能;去掉或替换图注意力主要影响根因定位,符合服务拓扑模块的预期作用。
7. 适用边界与后续问题
ARMOR 假设离线历史档案足够完整,能够为人工掩码通道提供重构目标。如果某个模态在历史数据中长期缺失,这一训练信号会减弱。当前服务拓扑也来自历史调用链,若实例频繁创建与销毁,需要及时更新。跨实例对比学习与增量图学习是自然的后续方向。
ARMOR 本身不是自主智能体。它提供的是智能体服务所需的可靠运行底座:理解遥测结构,在观测基础设施失效时继续诊断,并显式区分缺失证据与正常数值。