KoushikRama/ECOM-SLA-Anomaly-Detection-Dashboard
GitHub: KoushikRama/ECOM-SLA-Anomaly-Detection-Dashboard
一个基于Serverless ML的电商SLA异常检测系统,实时识别指标偏差并提供根因分析。
Stars: 1 | Forks: 0
# 🚨 电商 SLA 异常检测(Serverless ML 系统)
## 🌐 实时演示
🚀 **访问已部署的控制台:**
[](https://ecom-sla-anomaly-detection-dashboard-5lvhxfr87rf9xu349caae3.streamlit.app/)
## 🎯 目标
检测 **每小时聚合的电商 SLA 指标异常**,包括:
- 流量激增 / 骤降
- 延迟退化
- 故障激增
系统设计目标:
- 检测 **微小与重大偏差**
- 提供 **根因分析**
- 通过 API 提供 **实时推理**
- 使用交互式仪表盘可视化结果
## 📊 问题背景
电商系统生成高流量的 SLA 指标,例如:
- 成功/失败请求量
- 响应时间(延迟)
这些数据按 **每小时**、**每个操作** 聚合:
- browse_products
- checkout
- cart_update
异常可能表明:
- 系统退化
- 延迟激增
- 故障激增
- 流量不规则
## 🏗️ 架构概览
```
Synthetic Data → Feature Engineering → Model → Thresholding → Inference → API Gateway → Dashboard
```
### ☁️ 云架构
```
Streamlit UI
↓
API Gateway (REST API)
↓
SageMaker Endpoint (Serverless)
↓
ML Model (XGBoost)
```
## 📁 项目结构
```
.
├── app.py # Streamlit UI
├── config/ # Config (API URL, constants)
├── core/
│ ├── pipeline.py # End-to-end pipeline
│ └── generate_test_data.py
├── services/
│ └── api_client.py # API calls
├── utils/ # Plotting & helpers
├── requirements.txt
```
## ⚙️ 特征工程
### 🕒 时间特征
- `hour`
- `hour_sin`, `hour_cos`
→ 捕捉周期性小时模式
### 🎯 SLA 指标
- `success_vol`
- `fail_vol`
- `success_rt_avg`
- `fail_rt_avg`
## 📡 API 格式
### 请求
```
[
{
"timestamp": "2025-04-01 10:00:00",
"operation": "browse_products",
"success_vol": 8000,
"fail_vol": 300,
"success_rt_avg": 150,
"fail_rt_avg": 120
}
]
```
### 响应
```
[
{
"operation": "browse_products",
"hour": 10,
"success_vol": 8000,
"fail_vol": 300,
"success_rt_avg": 150,
"fail_rt_avg": 120,
"pred_success_rt_avg": 169.92,
"pred_fail_rt_avg": 145.48,
"pred_success_vol": 82533.85,
"pred_fail_vol": 273.93,
"Status": "Anomaly",
"Root_Cause": "success_vol",
"All_Causes": "success_vol:2.89",
"Severity": 2.893,
"Severity_Label": "🚨 Critical"
}
]
```
## 🤖 模型(基于 XGBoost 的残差检测)
### 🔍 方法
- 为每个 SLA 指标训练回归模型
- 预测期望值
- 计算残差(实际值 vs 预测值)
- 应用基于阈值的异常检测
### ⚙️ 管道
```
Features → XGBoost → Prediction → Residual → Threshold → Alert
```
### 📈 优势
- 精确检测微小偏差
- 提供根因(指标级)
- 输出可解释
### ⚠️ 限制
- 需要阈值调优
- 依赖一致的输入模式
### 🔁 阈值策略
- 基于残差的检测
- 组合使用:
- 百分比偏差
- 绝对偏差
### 🧪 数据模拟
合成 SLA 数据包括:
- 真实的流量模式(高峰与低谷)
- 基于负载的延迟增加
- 故障率与负载的相关性
### 🚨 注入异常
- 流量激增
- 流量骤降
- 延迟激增
- 故障激增
## 🚀 运行项目
1️⃣ 克隆仓库
git clone https://github.com/KoushikRama/ECOM-SLA-Anomaly-Detection-Dashboard.gitcd ECOM-SLA-Anomaly-Detection-Dashboard
2️⃣ 创建虚拟环境
python -m venv .venv.\.venv\Scripts\Activate.ps1
3️⃣ 安装依赖
pip install -r requirements.txt
4️⃣ 运行 Streamlit 应用
streamlit run app.py
## 🌐 部署
**前端**
- Streamlit Cloud
**后端**
- AWS API Gateway
- SageMaker Serverless Endpoint
## 📊 仪表盘功能
- 📈 SLA 指标可视化
- 🚨 异常检测显示
- 🔍 根因识别
- 📊 严重性分析
## 🧠 核心能力
- 检测细微的 SLA 异常
- 提供指标级根因
- 支持交互式探索
- 完全 Serverless ML 推理
## 🚨 已知问题
- 缺失时间戳会导致失败
- 冷启动延迟(约 1–3 秒)
- 需要严格的输入模式
## 🔮 后续改进
- 实时流数据
- 漂移检测
- 自动阈值调优
- 告警系统(Slack / 邮件)
- 混合异常模型
## 💡 总结
本项目通过结合:
- ML 精度(XGBoost 残差模型)
- 云可扩展性(Serverless SageMaker)
- 交互 UI(Streamlit)
提供生产就绪的 SLA 监控异常检测系统。
## 👨💻 作者
### Koushik Rama
标签:Apex, API网关, AWS SageMaker, Kubernetes, REST API, SLA监控, Streamlit, XGBoost, 仪表盘, 实时推理, 小时聚合, 延迟检测, 异常检测, 数据管道, 时间序列, 服务器less, 机器学习, 根因分析, 流量波动, 特征工程, 生产环境, 电商, 访问控制, 软件工程, 逆向工具