目录
目录README.md

面向微服务基准的Trace监控数据采集与异常检测工具

项目背景

  1. 微服务应用范围广
    • 腾讯微信,消息收发等功能,微服务数量众多
    • 陆军现役单体架构信息系统可靠性差,维护成本高[1]
    • Azure支撑美军任务系统,精准检测保障运行[2]
  2. 传统监控方法不足
    • 静态阈值不适应服务动态性
    • 无法适配动态扩缩容节点
    • 难以追踪跨服务调用链
  3. 微服务异常检测面临挑战
    • 服务依赖复杂,故障溯源难
    • 动态扩缩容,基线难稳定
    • 异常模式多样,难全面覆盖
设计背景图第二版

注:微服务部分组件出现异常时,用户访问情况的逻辑视图

项目简介

​ 本项目旨在容器化的微服务应用环境中,构建一套具备实时监控、精准检测与根因分析能力的异常监控系统。随着云计算与大数据技术的发展,微服务架构因灵活扩展、高度解耦、便于协作的特性成为大型应用开发部署的主流选择,但也面临着诸多挑战:分布式架构可能引发连锁故障风险,某个服务的微小异常可能沿调用链扩散,影响系统整体稳定性。

​ 传统监控手段聚焦单一服务或服务器指标,缺乏全局视角且依赖固定阈值,易出现误报或漏报,难以适应复杂环境;同时,突发访问高峰、硬件故障等不确定性因素也随时可能导致微服务异常。

​ 基于这些背景,本系统通过三个核心模块协同运作形成完整闭环:

  1. 监控采集模块部署在Kubernetes集群中,基于eBPF技术从POD、Node和集群中收集文件访问、网络通信、CPU利用率等多模态数据,包括性能指标、日志和Trace数据,并结合Prometheus和Grafana实现指标的可视化展示,为后续分析提供基础数据;
  2. 异常生成模块同样部署在Kubernetes集群,具备异常注入和压力测试功能,可模拟网络延迟、资源过载等异常场景以及真实用户访问,生成标注化的异常样本与正常运行数据,支撑算法训练与系统验证;
  3. 算法处理模块采用“离线训练、在线检测”的方式,通过WMISIS算法对收集的指标进行筛选,保留关键特征,再利用AnomalyTransformer算法进行异常检测,最后借助MRCAG算法实现根因分析,精准定位故障根源

​ 该系统能够提高微服务应用的安全性,及时发现潜在安全风险;助力异常响应与排除,加快问题解决速度;满足金融、医疗等行业的合规性和审计需求,同时在防范重大安全事件、提升业务连续性等方面具有重要意义,为微服务应用的稳定运行提供有力保障。

系统架构

系统架构图第三版.drawio
  1. Kubernetes云原生计算底座:

    本项目的监控数据采集模块、异常注入模块、Train Ticket微服务实例部署都是基于Kubernetes云原生计算底座的,负责为各个模块提供计算资源。

  2. 监控数据采集模块:

    包含Trace数据采集模块、Logs采集模块、基于eBPF的Metrics指标采集模块,分别用于收集微服务的调用链数据、微服务的日志数据以及集群设施、微服务的资源占用、网络延迟、服务可达性、容器调用等指标数据。为后续的基于深度学习的异常检测、基于多模态融合的根因分析提供数据来源。

  3. 异常注入模块:

    负责为Train Ticket微服务实例注入如网络延迟异常、资源耗尽异常、服务镜像异常等多种不同的异常,以产生不同的异常数据。为后续异常检测模型训练、多模态融合根因分析提供异常数据来源。

  4. 基于深度学习的异常检测模块:

    包含两个部分,分别是指标筛选算法模块与异常检测模块;指标筛选算法用于将监控数据采集模块收集到的众多Metrics指标进行筛选以达到提高异常检测效率的同时降低异常检测的计算开销和时间开销。异常检测模块则使用指标筛选算法筛选后的指标进行异常检测,得出二元异常检测结果,并交给多模态根因分析模块,以进一步故障诊断。

  5. 多模态融合的根因分析模块:

    该模块使用监控数据采集模块收集到的三种模态的数据,分别对三种模态数据进行特征提取、模态融合,最终进行故障诊断,找到异常的根因。

  6. 压力测试模块:

    该模块使用开源工具Locust实现,用于模仿实际应用中用户对微服务的访问请求。

  7. 监控可视化与异常检测前端模块:

    该模块是我们自主开发的一个将监控数据采集模块中部分指标与异常检测的结果进行集成显示的一个前端界面。

系统功能

系统功能图第二版
  1. 基于多模态融合的微服务异常检测系统:该系统主要包含微服务应用监控以及异常检测与故障诊断两大核心板块。
  2. 微服务应用监控
    • 涵盖微服务调用数据采集、指标采集、微服务日志数据采集三项内容
    • 具体采集节点CPU占用、节点内存占用、节点网络发送速率、节点网络接收速率、微服务CPU占用、微服务内存占用、微服务可达和延迟等多维度指标。
  3. 异常检测与故障诊断
    • 异常检测环节,依次进行多维度指标筛选、筛选指标数据异常检测,最后返回异常检测结果。
    • 故障诊断环节,先开展单模态特征提取、多模态特征融合、根因分析,最终返回故障诊断结果。

技术创新

  1. 多模态数据采集的突破
    • 依托 eBPF 技术实现内核级直接监控,无需侵入容器即可捕获进程调度、网络交互等细粒度事件,在容器 CPU 占用 80% 时,采集框架仅消耗 1.42% 资源,解决了传统监控 “高开销” 问题。
    • 采用双轨采集架构,融合传统指标的稳定性与 eBPF 深度指标,覆盖 CPU、内存等传统资源指标及内核调度延迟等深度指标,解决了传统监控 “表面化” 问题,为异常分析提供全面数据基础。
  2. 异常检测能力的提升
    • 创新性采用 WMISIS 算法进行指标筛选,先通过加权互信息快速过滤低影响指标,再用异常敏感度分析(以单变量异常检测模型的 F1 分数评估)精准选出关键指标,在降低特征维度的同时提升检测效率
    • 结合 AnomalyTransformer 算法的双注意力机制(先验关联与序列关联),无需人工预设规则,能自适应学习复杂时序模式,通过学习正常状态下两种关联的 “健康差异模式”,依据差异变化识别异常,显著降低误报率。
    指标筛选与异常检测流程
  3. 根因分析的创新
    • 提出 MRCAG 算法,针对性能指标、日志、调用链三类数据设计差异化特征提取策略:对性能指标和调用链延迟数据采用序列分解和自相关机制提取时序特征;对日志数据通过霍克斯过程建模事件发生概率。
    • 利用注意力机制融合多模态信息,结合从调用链解析的服务依赖图,借助图注意力网络进一步整合形成系统状态表征,实现根因定位,较单模态方法在 HR@1 指标上平均提升 70%,有效应对微服务故障传播路径复杂的问题。

赛题完成情况

image-20250720144414567

演示Demo

  1. 网络延迟异常演示

    网络延迟异常演示2

  2. 服务镜像异常

    Pod异常

关于
191.0 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

©Copyright 2023 CCF 开源发展委员会
Powered by Trustie& IntelliDE 京ICP备13000930号