kevinmeix1/model-observability-incident-platform

GitHub: kevinmeix1/model-observability-incident-platform

面向生产环境 ML 模型的可观测性与事件响应平台,通过偏移检测、SLO 监控和幂等事件管理实现模型可靠性闭环。

Stars: 0 | Forks: 0

# 模型可观测性 + 事件响应平台 这是一个生产级别的模型可靠性项目,用于检测特征偏移、预测偏移、服务 SLO 失败、时效性问题以及数据质量问题,随后创建具有严重级别、可能根因和下一步行动指导的幂等事件。 默认演示以本地优先且依赖轻量化为原则进行设计。该设计可以无缝映射到 Evidently、Prometheus、OpenTelemetry、Grafana、PagerDuty 以及基于数仓的模型监控。 ![模型可观测性仪表盘](https://static.pigsec.cn/wp-content/uploads/repos/cas/6d/6d1535d032f655ce6a3e0a805d9faf47a0f027ecaa0111467bea81558c6f6ebe.png) ## 本项目演示的内容 - 参考窗口与当前窗口的遥测数据 - 特征偏移检查 - 预测分布偏移检查 - 延迟 p95 和 p99 追踪 - 错误率监控 - 时效性检查 - 数据质量检查 - 幂等事件创建 - 严重级别分类 - 可能的根因提示 - 以 Runbook 为导向的下一步行动 - 用于健康检查、事件和特征偏移的仪表盘 ## 架构 ``` flowchart LR A["Prediction logs"] --> B["Telemetry windows"] B --> C["Health checks"] C --> D["Observability report"] D --> E["Incident dedupe"] E --> F["Incident store"] F --> G["Root cause hints"] F --> H["Dashboard"] G --> I["Runbook action"] ``` ## 快速开始 ``` make demo make test ``` 打开生成的仪表盘: ``` open .local/reports/model_observability_dashboard.html ``` ## 检查项 - `feature_drift`:比较当前特征均值与参考均值 - `feature_drift PSI`:比较跨参考分位数桶的分布变化 - `prediction_drift`:比较当前与参考分数的均值 - `latency_slo`:验证 p95 延迟 - `error_rate`:验证服务失败率 - `null_rate`:检查格式不正确的遥测数据 - `freshness`:检查遥测数据的时效性 ## 生产级改进 请参阅 [生产级改进](docs/production-grade-refinements.md) 了解有关 PSI 偏移、SLO、事件去重、根因和 Runbook 方面的改进。 ## 事件语义 事件通过由失败检查和观察到的特征签名派生出的稳定指纹进行去重。重复运行相同的报告不会产生重复项。每个事件包含: - 事件 ID - 严重级别 - 检查项名称 - 观察值 - 根因提示 - 下一步行动 - 状态 ## 生产环境映射 | 本地产物 | 生产环境对应物 | | --- | --- | | `.local/data/reference.csv` | 数仓基线窗口 | | `.local/data/current.csv` | 实时服务遥测窗口 | | `.local/reports/observability_report.json` | Evidently 或自定义监控报告 | | `.local/incidents/incidents.jsonl` | 事件管理表 | | `contracts/observability_policy.yml` | 监控策略即代码 | ## 面试讨论要点 - 为什么特征偏移和延迟需要分离的根因排查路径。 - 如何在监控重复运行期间避免重复告警。 - 如何为早期预警和触发寻呼选择阈值。 - 为什么出现预测偏移而没有特征偏移,说明存在模型或校准问题。 - 如何将模型事件与服务链路追踪及上游数据变更关联起来。
标签:MLOps, 多模态安全, 故障诊断, 数据漂移检测, 机器学习可观测性, 用户代理, 自定义请求头, 逆向工具