add video
ATLAS是一个基于深度学习的微服务系统异常检测与根因定位框架。该框架通过融合多源观测数据(日志、指标、链路跟踪),实现对微服务系统的智能监控和故障诊断。
# 克隆项目 git clone <repository-url> cd Eadro-main # 创建虚拟环境 conda create -n eadro python=3.7 conda activate eadro # 安装依赖 pip install -r requirements.txt # 或使用安装脚本 bash install.sh
dgl==0.9.1 torch==1.12.1 numpy==1.21.5 pandas==1.4.2 scikit-learn==1.1.2 matplotlib==3.5.2 seaborn==0.11.2
项目支持两个基准数据集:
在使用之前需要对数据进行预处理,命令如下:
pip install drain3 export ROOT_PATH=path/to/the/downloaded/eadro/dataset cd codes/preprocess/ python parse_raw_records.py python parse_raw_metrics.py python parse_raw_traces.py python parse_raw_logs.py python align.py --name TT python align.py --name SN
cd single_model python main.py --data TT --epochs 50 --lr 0.001
cd split_model # 独立训练模式 python main.py --data TT --training_mode independent --epochs 50 # 顺序训练模式 python main.py --data TT --training_mode sequential --epochs 50 # 两阶段训练模式 python main.py --data TT --training_mode two_stage --epochs 50
cd single_model python inference.py \ --model_path ../outputs/single_model/best_single_model_xxx.ckpt \ --config_path ../outputs/single_model/model_config_xxx.json \ --data TT
cd split_model python inference.py \ --anomaly_model_path ../outputs/split_models/anomaly_detection_xxx.ckpt \ --localization_model_path ../outputs/split_models/root_cause_localization_xxx.ckpt \ --config_path ../outputs/split_models/model_config_xxx.json \ --training_mode independent \ --data TT
Eadro-main/ ├── README.md # 项目说明文档 ├── requirements.txt # Python依赖包 ├── install.sh # 安装脚本 │ ├── single_model/ # 单一模型模块 │ ├── main.py # 训练入口 │ ├── inference.py # 推理脚本 │ ├── model.py # 模型定义 │ ├── base.py # 基础模型类 │ └── comprehensive_evaluation.py # 全面评估 │ ├── split_model/ # 分离模型模块 │ ├── main.py # 训练入口 │ ├── inference.py # 推理脚本 │ ├── split_models.py # 分离模型定义 │ ├── split_training.py # 分离训练器 │ ├── model.py # 基础组件 │ └── comprehensive_evaluation.py # 全面评估 │ ├── codes/ # 核心代码 │ ├── model.py # 共享模型组件 │ ├── utils.py # 工具函数 │ ├── chunks/ # 预处理数据 │ │ ├── TT/ # Train Ticket数据集 │ │ └── SN/ # Social Network数据集 │ └── preprocess/ # 数据预处理脚本 │ ├── align.py # 数据对齐 │ ├── parse_raw_logs.py # 日志解析 │ └── parsed_data/ # 解析后数据 │ ├── outputs/ # 模型输出 │ ├── single_model/ # 单一模型权重 │ ├── split_models/ # 分离模型权重 │ └── evaluation_reports/ # 评估报告 │ ├── datasets/ # 原始数据集 │ ├── TT Dataset/ # Train Ticket原始数据 │ └── SN Dataset/ # Social Network原始数据 │ └── result/ # 训练结果 └── {hash_id}/ # 按训练配置分组的结果 ├── params.json # 训练参数 ├── running.log # 训练日志 └── evaluation/ # 评估结果
anomaly_details_*.csv
anomaly_details_*.json
包含完整的概率分布、节点排名等技术细节。
anomaly_summary_*.txt
人类友好的文本报告,包含:
后端使用了Django框架,源代码位于ATLAS_backend文件夹中,使用方法:
ATLAS_backend
进入文件夹,执行python manage.py runserver,服务默认运行在8000端口
python manage.py runserver
前端使用了vue3框架,源代码位于ATLAS_frontend文件夹中,使用方法:
ATLAS_frontend
如果没有安装依赖包,首先执行npm install
npm install
执行npm run dev,服务默认运行在5173端口
npm run dev
使用浏览器进入http://localhost:5173,即可以看到前端页面
http://localhost:5173
©Copyright 2023 CCF 开源发展委员会 Powered by Trustie& IntelliDE 京ICP备13000930号
ATLAS - 面向微服务基准的 Trace 监控数据采集与异常检测工具
项目简介
ATLAS是一个基于深度学习的微服务系统异常检测与根因定位框架。该框架通过融合多源观测数据(日志、指标、链路跟踪),实现对微服务系统的智能监控和故障诊断。
核心功能
功能特点
模型架构
多源数据支持
丰富的评估指标
详细的结果输出
安装说明
环境要求
快速安装
依赖包
快速开始
1. 数据准备
项目支持两个基准数据集:
在使用之前需要对数据进行预处理,命令如下:
2. 模型训练
单一模型训练
分离模型训练
3. 模型推理
单一模型推理
分离模型推理
项目结构
模型介绍
单一模型 (Single Model)
分离模型 (Split Model)
异常检测模型
根因定位模型
训练模式
结果说明
推理输出文件
1. 异常详情表格 (
anomaly_details_*.csv)2. 技术数据 (
anomaly_details_*.json)包含完整的概率分布、节点排名等技术细节。
3. 分析报告 (
anomaly_summary_*.txt)人类友好的文本报告,包含:
评估指标
异常检测指标
根因定位指标
启动后端
后端使用了Django框架,源代码位于
ATLAS_backend文件夹中,使用方法:进入文件夹,执行
python manage.py runserver,服务默认运行在8000端口启动前端
前端使用了vue3框架,源代码位于
ATLAS_frontend文件夹中,使用方法:如果没有安装依赖包,首先执行
npm install执行
npm run dev,服务默认运行在5173端口使用浏览器进入
http://localhost:5173,即可以看到前端页面