ICSE 2022丨DeepTraLog:GNN 和 Trace-Log 数据相结合的微服务异常检测方法
论文标题丨Trace-Log Combined Microservice Anomaly Detection through Graph-based Deep Learning
论文来源丨ICSE 2022
论文链接丨https://cspengxin.github.io/publications/icse22-DeepTraLog.pdf
源码链接丨暂未开源
TL;DR
目前微服务系统中的 Trace 和 Log 异常检测方法不能捕获到 Trace 和 Log 间复杂的层次调用和交互特征,因此这篇文章中结合 Log 和 Trace 数据提出了一种基于 GNN 深度学习方法 DeepTraLog,可以把 Trace 间复杂的调用结构和服务的日志时间统一建模到图结构中,然后用 Deep SVDD 模型进行异常检测。实验部分证明 DeepTraLog 相比于其它 baselines 在基准服务中可以达到较高的 precision (0.93) 和 recall (0.97)。
Algorithm/Model
模型的整体架构如下所示
主要想法:对于每个 Trace,span 作为节点,每个 span 的对应的 log 通过 TF-IDF 嵌入作为特征向量,以此构建 TEG(trace event graph),示例如下
以 Gated Graph Neural Network + Attention 学习图特征,以 Deep-SVDD 作为异常检测器。异常分数计算如下
其中 为SVDD 的球心, 为球面半径。值大于 0 说明为异常,Trace 中每个 span 的注意力权重为每个 span 的异常分数。
Experiments
不同方法的实验对比结果如下
Thoughts
- 从业务层面看 Log 即可体现 Trace 是否异常,无需针对 Log 进行 Embedding 在放在 Trace 上异常检测,后续说不定出现 Metric-Trace-Log combined 模型。
- 模型集大成者,且单分类的 Deep-SVDD 模型其实对不同 Trace 模式的特征 embedding + anomaly detection 效果不好。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 梦家博客!
评论
TwikooValine