目录
目录README.md

Train Ticket:A New Version

简介🎙

​ 本项目基于 OpenTracing 标准的 Trace 采集系统Jaeger,结合 Prometheus 等性能监控组件,实现了一个面向 TrainTicket 微服务基准系统的 Trace 监控数据采集与异常检测系统。随着微服务架构的广泛应用,系统的复杂性和规模不断增加,传统的监控和异常检测方法已难以应对微服务环境中的动态性和复杂性。本系统通过 AutoPilot Observability (APO) 平台集成 JaegerPrometheus 以及深度学习方法,对微服务系统进行全面监控和异常检测,确保微服务的稳定运行。

​ 系统的核心目标是基于采集的 Trace 数据,结合 负载模拟工具stress-ng、Locust异常注入工具 Chaos 生成多样化的系统行为数据。通过 深度学习 方法对采集到的 Trace 数据进行分析,识别潜在的异常模式,为微服务系统提供高效的异常检测能力,从而为系统的稳定性和鲁棒性提供保障。

​ 通过 APO 平台进行集中化的监控数据采集与展示,APO 将自动处理 Jaeger 采集的 Trace 数据和 Prometheus 收集的性能数据。通过深度学习模型分析这些数据,系统能够及时识别出潜在的异常行为,并通过 Locust 模拟高并发流量,使用 Chaos 注入系统异常,测试系统的容错能力与鲁棒性。

​ 该系统利用 深度学习 技术(如 LSTMAutoencoders),对收集的 Trace 数据进行模式识别,能够高效地发现微服务间的性能瓶颈和潜在故障,提前预警系统异常,保障系统在面对高负载和异常条件下仍能稳定运行。系统能够自动化检测异常并响应,减少人为干预,提高微服务架构的可靠性和效率。

系统架构⚒️

本系统的架构由以下几个主要模块组成: 整体架构

  1. Trace 数据采集与监控
    • 使用 Jaeger(OpenTracing 兼容)采集微服务系统中的 Trace 数据,记录服务间的调用链、延迟、错误等信息。
    • 集成 Prometheus 进行系统性能指标(如 CPU、内存、网络流量等)的实时监控。
  2. 负载模拟与异常注入
    • 使用 stress-ng 进行负载模拟,模拟大规模并发请求,生成高负载下的系统行为数据。
    • 使用 ChaosBlade 注入系统异常(如延迟、超时、错误等),测试系统在异常条件下的表现和鲁棒性。
  3. 深度学习异常检测
    • 通过收集的 Trace 数据,使用深度学习方法(如 LSTM、Autoencoders)分析微服务系统的行为模式,及时检测系统异常。
    • 异常检测系统能够在系统出现故障、延迟或错误时,提供实时预警,并可进行自动响应或人工干预。异常检测

代码结构🔍️

项目根目录/  
├── build/          # 构建脚本与配置(编译、打包流程定义)  
├── image/          # 项目相关图片资源
├── manifests/      # K8s 部署清单(Service、Deployment、Helm Chart 配置)  
├── microservice_system_twin_graph_based_anomaly_detection/  # 核心算法模块(基于系统孪生图的异常检测模型实现)  
├── monitoring/     # 监控系统集成(对接 Jaeger、Prometheus 采集与分析逻辑)  
└── ts_deployment/  # 微服务基准系统部署(TrainTicket 服务启动配置)  

部署指南📘

部署前我们需要在您的环境中存在一些工具:

1.部署kubernetes环境

2.安装helm来管理kubernetes应用程序

3.你需要有一个自己的镜像仓库,以便于你可以推送和拉去下来镜像(可以使用腾讯云的免费镜像仓库,不过由于本项目要推送的镜像数目瞬时推送的镜像数可能过多,可能推送失败,可以分批推送)

设置必要的工具后,您可以使用 Skaffold 部署您的应用程序

mvn clean package -Dmaven.test.skip=true
skaffold run
skaffold build --default-repo= # push to the local repository

部署说明⚙️

要部署应用程序,请使用以下 Helm 命令

use person images
helm install ts manifests/helm/generic_service -n ts --create-namespace --set global.monitoring=opentelemetry --set skywalking.enabled=false --set global.image.tag=c6c0427a --set global.image.repository=ccr.ccs.tencentyun.com/train-ticket_al

更新部署,请使用以下Helm命令

# use apo
helm upgrade ts manifests/helm/generic_service -n ts-dev --create-namespace --set global.monitoring=opentelemtry --set opentelemtry.enabled=false --set services.tsUiDashboard.nodePort=30081 --set global.image.tag=c6c0427a

卸载部署,请使用以下Helm命令

# uninstall
helm uninstall ts -n ts

总结🪢

​ 本系统提供了一套全面的微服务监控与异常检测解决方案,结合 APO 平台、JaegerPrometheus,能够有效监控微服务系统的性能和健康状况。通过 负载模拟异常注入 测试系统的鲁棒性,并使用 深度学习 方法实现实时的异常检测和告警。该系统将帮助确保 TrainTicket 微服务系统在复杂环境下的稳定性和高可用性。

示例DEMO📺

示例demo

未来展望📨

​ 考虑到我们对 操作系统eBPF 技术的浓厚兴趣,未来我们计划采用更为多样化的 Trace 数据采集 方法,以适应不同的应用场景。除了现有的基于 JaegerPrometheus 的解决方案,我们还将考虑引入 DeepFlow 作为数据采集的补充工具。

DeepFlow 是一个基于 eBPF 技术的高效追踪系统,它能以极低的性能开销获取 深度系统级别的行为数据,特别是在微服务和容器化环境中具有显著优势。与传统的追踪工具不同,DeepFlow 能够通过 eBPF 直接在内核层进行数据采集,捕捉到操作系统层的 系统调用、网络请求、文件操作、内存分配等行为,这为我们提供了更加全面的 Trace 数据源。

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

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