FrankAsanteVanLaarhoven/Sentinel-AIOPs
GitHub: FrankAsanteVanLaarhoven/Sentinel-AIOPs
一个将学习型检测与确定性因果推理严格分离的可度量 AIOps 系统,用于 SLO 违规检测、根因定位和修复提议。
Stars: 0 | Forks: 0
# Sentinel-AIOPs
**一个可度量的 AIOps 系统**,构建于*学习型检测*与*确定性因果推理*的严格分离之上。它能检测 SLO 违规,对其进行**因果定位**(根因 vs. 症状),找到根因变更,并在**人工审核关卡**之后*提议*修复方案——并将这一切呈现在信息密集的实时控制台中。每一个性能数据均来自真实的公开数据集;权衡都是**量化的,而非被隐藏的**。
```
Sentinel-AIOPs/
├─ engine/ Python · FastAPI · incident engine (detect → localize → correlate) + HTTP API
├─ console/ Next.js 16 · observability dashboard (BFF proxying the engine)
├─ docs/ MANUSCRIPT.md — the full technical report
└─ notebooks/ Sentinel_AIOPs_Grandmaster.ipynb — end-to-end reproduction
```
## 三层契约
1. **检测(学习型)。** 基于真实公开数据的统计模型可提供异常信号:
- **日志** — HDFS 异常检测 (`logfit-project/HDFS_v1`)
- **指标** — 服务器指标 PCA 重构 (NetManAIOps **SMD**)
2. **定位(确定性)。** 通过错误传播图分析 (`causal_root`) 进行根因服务识别。**绝不进行训练。** 完全可检查且可重放——没有模型权重。
3. **验证(经验性)。** 确定性规则基于公开的 **PetShop** RCA 语料库进行评分,对检测覆盖率和定位精度进行**度量**,并记录它们的权衡。
单一的查询接口 —— **`GET /validation`** —— 从已提交的卡片中展示上述三层内容,无需运行任何 pipeline。
## 当前基准(提交 `880880f`)
| 组件 | 状态 |
|---|---|
| 确定性因果核心 (`causal_root`) | 未改动且可复现 · 测试套件 **18/18** 通过 |
| 检测层 | 基于真实公开数据集的 **2** 个学习型检测器 |
| PetShop 验证 | recall@1 **0.265** / recall@3 **0.471**;领域内 **覆盖率 0.706 → 0.971** *(代价约为 6 个点的 recall@1 — 权衡已度量)* |
| 三层查询接口 | 实时 (`GET /validation`) |
| 文档与 notebook | 完整手稿 + 可运行 notebook |
## 基于真实公开数据的度量
| 层 | 组件 | 数据集 | 核心结果(留出集) |
|---|---|---|---|
| 检测(学习型) | 日志检测器 | HDFS | **F1 0.719** (P 0.992 · R 0.564 · AUC 0.787) |
| 检测(学习型) | 指标检测器 | SMD | **F1 0.210** / PA-F1 0.35 *(保守的仅训练集阈值)* |
| 定位(确定性) | `causal_root` | 合成 | **5/5** 符合真实标签 |
| 验证(经验性) | `causal_root` | PetShop | **recall@1 0.265** / recall@3 0.471 · 覆盖率 0.706 (领域内 → 0.971) |
| 基准测试(标准化) | `causal_root` | RCAEval RE1 (OB+SS+TT) | 跨越 **375 个案例** **AC@1 0.845** / AC@3 0.912 / **Avg@5 0.900**;在所有 3 个系统上的 AC@1 均击败复现的 **BARO** (OB 0.81 vs 0.72 · SS 0.87 vs 0.50 · TT 0.86 vs 0.22) *(RE2/RE3 为下一步计划)* |
没有虚构的数字;不声称跨领域迁移(检测器是独立的基于真实数据的能力)。
领域内结果缩小了覆盖率差距,**但**以定位精度为代价——作为一项权衡报告,而非一场胜利。
## 为什么控制台与众不同
除了与现代 AI-RCA 仪表板保持同等水平外,还有三大差异化优势——是展示出来的,而非口头断言:
1. **因果服务拓扑** — 根因闪烁 `crit`,症状闪烁 `warn`;错误边带有动画。
2. **变更相关性排名** — 真正的根因由引擎的得分(服务匹配 × 发病接近度)排在第 1 位,并在其旁边显示*朴素的近期排名*。
3. **透明、人工审核的调查** — 带有方法、置信度和失败模式的阶梯式时间线,以及明确的**批准 / 驳回**关卡。它只负责提议;绝不擅自行动。
## 快速开始
```
# 1 · engine → http://127.0.0.1:8008
cd engine && pip install -r requirements.txt && make serve
# 2 · console → http://localhost:3000
cd console && npm install && npm run dev
```
或者从 `console/` 目录:运行 `./scripts/dev.sh` 可同时启动两者。
## 复现这些数字
```
cd engine && pip install -r requirements-ml.txt
make verify # 5/5 synthetic scenarios at 100% ground truth
make train-logdet # HDFS log detector → P 0.992 / R 0.564 / F1 0.719 / AUC 0.787
make train-metricdet # SMD metric detector → P 0.142 / R 0.403 / F1 0.210 / PA-F1 0.35
make validate-rca # PetShop localization + within-domain trade-off (target vs all-metrics signal)
make validate-rcaeval# RCAEval RE1 (OB+SS+TT, 375 cases) → selective Top-1 0.845 / Top-3 0.912 (deterministic causal_root)
make test # 18/18 hermetic tests (offline)
```
语料库和训练好的权重被 git-ignored 并从源码重新生成;仓库仅提交可复现的 pipeline。
## 演示场景
控制台的场景选择器(深链接 `?scenario=`) 驱动整个面板;每个场景都会定位到一个有文档记录的真实根因:
| id | 根因 | 展示内容 |
|---|---|---|
| `flag_spike` | productcatalog | 教科书式的传播 (MTTD 1m) |
| `gradual` | payment | 缓慢燃烧,较晚检测到 (MTTD 2m) |
| `shared_infra` | productcatalog | 广泛的影响范围 |
| `symptom_louder` | productcatalog | 症状比根因更明显(置信度下降) |
| `noisy_multi_change` | payment | 相关性在四个变更中选中了正确的那个 |
## 将演示切换为 Prometheus
将引擎指向实时技术栈;控制台无需任何更改:
```
cd engine && DATA_SOURCE=prom PROM_URL=http://prometheus:9090 \
TEMPO_URL=http://tempo:3200 uvicorn sentinel.api.engine_api:app --port 8008
```
## 了解更多
- **[docs/PROJECT_BOUNDARY.md](docs/PROJECT_BOUNDARY.md)** — Sentinel **能做 / 不能做**什么,它在自治系统治理栈中的位置,类型化的 `ActionProposal` → VerdictPlane 契约,以及分阶段的企业就绪情况。
- **[docs/SENTINEL_PAPER.md](docs/SENTINEL_PAPER.md)** — 研究论文草稿:动机、分析性的相关工作 + 参考文献、完整的指标定义与指标→故障映射、方法、实验设置、结果、研究过程日志、范围限定的声明边界、幻灯片大纲,以及三篇论文的路线。
- **[docs/MANUSCRIPT.md](docs/MANUSCRIPT.md)** — 工程技术报告:假设、方法、数据集与真实标签、结果、失败/缓解日志、决策、方法论护栏,以及未来工作。
- **[docs/SLIDES.md](docs/SLIDES.md)** — 演示文稿 (Marp)。使用以下命令渲染
`npx @marp-team/marp-cli docs/SLIDES.md -o slides.pdf` (或 `--pptx` / `--html`)。
- **[notebooks/Sentinel_AIOPs_Grandmaster.ipynb](notebooks/Sentinel_AIOPs_Grandmaster.ipynb)** — 一个可运行的、Grandmaster 风格的演练,可端到端复现三层 pipeline。
- `engine/README.md` · `console/README.md` — 组件详情。
- Endpoint 参考和模型卡片:`GET /investigate`, `/action-proposal` (类型化的 VerdictPlane 移交), `/handoff` (完整的提议→治理循环), `/audit` + `/audit/verify` (防篡改的提议出处) + `/audit/export` (SIEM ECS/CEF), `/validation`, `/log-anomaly`, `/metric-anomaly`, `/rca-validation`, `/rcaeval`。
- 基准测试详情:[engine/docs/RCAEVAL.md](engine/docs/RCAEVAL.md) — 在 RCAEval 语料库上的确定性定位。
*Sentinel-AIOPs 优先考虑透明度和度量,而非自动化。检测可以在真实的公开数据上进行学习;但在生产环境中必须被信任的因果推理,始终保持确定性、可检查,并根据真实标签进行验证。*
标签:AIOps, API集成, AV绕过, FastAPI, 可观测性, 因果分析, 异常检测, 智能运维, 根因定位, 自定义请求头, 逆向工具