chaos_genius
ML驱动的业务异常检测与根因分析平台,支持多数据源一键接入
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
ML驱动的业务异常检测与根因分析平台,支持多数据源一键接入
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

每年大促期间,电商平台的运营团队都会面对同一个噩梦:KPI仪表盘上的数字突然变红,GMV、订单量、转化率全线下跌。所有人都知道出了问题,但没人知道为什么。
是某个地区的流量突然断了?是某类商品出了问题?还是某个支付渠道挂了?传统BI工具能告诉你「哪里变了」,但无法回答「是什么导致的」。这就是Chaos Genius要解决的核心问题。
Chaos Genius诞生于印度一家数据驱动型公司的内部需求。2021年,开源社区对业务可观测性(Business Observability)的关注度急剧上升,而当时市面上主流的开源方案要么是面向基础设施监控的Prometheus/Grafana,要么是面向研发团队的SRE工具,真正面向业务运营团队的异常检测和根因分析工具几乎空白。
Chaos Genius的作者团队敏锐地捕捉到这个缺口:业务人员需要的是一种能够理解业务语义的工具——不是告诉工程师服务器CPU高了,而是告诉运营总监「华东区域新用户转化率下降23%,主要因为支付宝渠道故障」。基于这个理念,项目于2021年5月正式开源。
Chaos Genius的技术架构围绕两大核心模块展开:
DeepDrills — 多维下钻根因分析
当业务指标出现异常时,DeepDrills会启动A*路径搜索算法,在数十个维度组合(地区、设备类型、用户群体、商品类目、支付渠道……)中系统性地探索,找出与异常最相关的驱动因素。相比人工逐一下钻排查,这种方法能在大规模高基数数据中高效定位根因。
图1:DeepDrills 多维下钻分析界面,支持按维度层级展开根因路径
Anomaly Detection — 时间序列异常检测
Chaos Genius内置多种时间序列异常检测算法,包括Facebook Prophet、EWMA(指数加权移动平均)、EWSTD(指数加权标准差)、Standard Deviation、NeuralProphet等。这些算法能自动学习业务指标的季节性和趋势特征,生成动态基线告警阈值,而非依赖运营人员手动设置固定阈值,从而大幅降低误报率。
图2:Anomaly DrillDowns 展示异常事件的详细上下文,帮助快速判断是否为真险情
智能告警系统
项目支持Email、Slack、PagerDuty、Datadog、Webhook、Asana、Microsoft Teams等多渠道告警,并提供Digest(摘要)和Event(事件)两种告警模式。Digest模式每日汇总异常事件,减少信息过载;Event模式则在异常发生时立即推送。
图3:Chaos Genius告警配置界面,支持多渠道多模式告警
Chaos Genius的数据连接能力是它区别于其他开源BI工具的核心优势。项目原生支持:
这种「直接连接、就地分析」的架构避免了数据迁移成本,企业无需改造现有数据管道即可引入Chaos Genius。对于数据团队而言,这意味着分析结果可以直接追溯到原始数据源,保证了端到端的可审计性。
从代码结构来看,Chaos Genius采用典型的微服务架构,通过docker-compose编排9个独立容器:
| 服务 | 职责 |
|---|---|
| chaosgenius-server | Flask 后端 API |
| chaosgenius-webapp | React 前端(nginx 托管) |
| chaosgenius-db | PostgreSQL 主数据库 |
| chaosgenius-redis | Celery 任务队列后端 + 缓存 |
| chaosgenius-scheduler | 定时任务调度器 |
| chaosgenius-worker-analytics | 异常检测 / 根因分析计算 worker |
| chaosgenius-worker-alerts | 告警触发 worker |
| cg-db | Airbyte 元数据库(可选) |
后端基于Flask框架,通过Celery + Redis实现异步任务队列,将计算密集型的异常检测和根因分析任务分发到独立worker。这种设计的优势在于:Web请求可以即时响应,耗时分析任务在后台异步执行,不会阻塞UI交互。
前端使用React构建,配合Nginx提供静态资源,Dockerfile.prod采用多阶段构建优化镜像体积。整体技术栈成熟稳定,无明显技术债务。
核心ML模型实现位于 chaos_genius/core/anomaly/models/ 目录,包括:
prophet_model.py — Facebook Prophet 集成neuralprophet_model.py — NeuralProphet(Prophet的神经网络增强版)ets_model.py — ETS(Error, Trend, Seasonality)模型ewma_model.py / ewstd_model.py — 指数加权移动方法standard_deviation_model.py — 标准差方法anomaly_model.py — 模型基类抽象根因分析实现在 chaos_genius/core/rca/ 目录,使用A*算法进行多维路径搜索,在保证准确性的同时控制计算复杂度。
Chaos Genius提供了完整的docker-compose配置,包含9个服务。通过官方文档的 git clone && docker-compose up 流程,理论上可以在15分钟内启动一个完整系统。
但实际部署中有几个需要注意的坑:
环境变量配置复杂。docker-compose定义了超过40个环境变量,包括数据库连接(DB_HOST/DB_USERNAME/DB_PASSWORD)、Celery配置(CELERY_BROKER_URL)、Airbyte集成开关(AIRBYTE_ENABLED)等。首次部署需要仔细阅读.env模板,逐一配置。
外部依赖要求。除了Docker本身,还需要确保目标机器有4GB+可用内存(9个容器加起来开销不小)和10GB+磁盘空间。
数据源驱动。PyHive、snowflake-connector-python、sqlalchemy-redshift等数据源驱动已内置,但如果需要连接Kerberos认证的Hive集群,则需要额外配置。
总体而言:对于有Docker基础的技术团队,部署难度中等;对于非技术业务人员,有一定门槛。官方文档质量较高,覆盖了本地部署和云端部署(AWS/GCP)两种场景。
重要提示:Chaos Genius已于2024年9月正式归档(Archived),不再接受新功能和PR。该项目在生产环境使用需谨慎,特别是如果你的业务依赖持续更新的数据源连接器。
主要局限性:
Chaos Genius代表了开源社区对「业务可观测性」这一新兴领域的探索。它将ML领域的异常检测和图搜索算法引入业务分析场景,是一种有价值的技术跨界尝试。
从增长曲线看,项目在2021-2023年间稳步增长,GitHub Stars从0增长到777,积累了稳定的用户社区。它的出现也催生了类似的开源项目,推动了「ML驱动的业务洞察」这一细分领域的发展。
对于今天的AI开发者和数据从业者而言,Chaos Genius提供了一个极好的参考架构:如何将Prophet/NeuralProphet集成到Flask应用中、如何设计Celery异步任务、如何实现多数据源统一抽象。这些工程实践本身就有很高的学习价值,即使你不会直接部署这个项目,它的代码结构也值得一读。
图4:Chaos Genius 实际分析流程演示,来源官方文档
项目信息:Chaos Genius | MIT License | Python + React | 777 Stars | 85 Forks
仓库:github.com/chaos-genius/chaos_genius
文档:docs.chaosgenius.io