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, 可观测性, 因果分析, 异常检测, 智能运维, 根因定位, 自定义请求头, 逆向工具