KoushikRama/ECOM-SLA-Anomaly-Detection-Dashboard

GitHub: KoushikRama/ECOM-SLA-Anomaly-Detection-Dashboard

一个基于Serverless ML的电商SLA异常检测系统,实时识别指标偏差并提供根因分析。

Stars: 1 | Forks: 0

# 🚨 电商 SLA 异常检测(Serverless ML 系统) ## 🌐 实时演示 🚀 **访问已部署的控制台:** [![Streamlit 应用](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](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, 机器学习, 根因分析, 流量波动, 特征工程, 生产环境, 电商, 访问控制, 软件工程, 逆向工具