nagulpranavvs-de/airflow-dag-monitoring-automation

GitHub: nagulpranavvs-de/airflow-dag-monitoring-automation

一个用于Apache Airflow DAG监控和警报自动化的Python工具,通过收集执行数据、生成报告和发送邮件来提升运维效率。

Stars: 0 | Forks: 0

# Airflow DAG 监控与报告自动化 这是一个生产级 Python 自动化工具,用于监控 Apache Airflow DAG 健康状况,生成合并的 HTML 报告,并针对定时和故障触发的监控发送自动邮件警报。 本项目旨在减少手动 DAG 监控工作,改善事件响应时间,并为生产数据管道提供集中式工作流健康状况可视化。 ## 项目概述 随着管道数量增长,手动监控多个 Airflow DAG 会变得效率低下。 本项目通过以下方式自动化 DAG 健康监控: - 从 Apache Airflow REST API 获取 DAG 执行元数据 - 同时跟踪多个 DAG 的执行状态 - 收集故障信息和执行时间戳 - 生成集中式 HTML 监控报告 - 为定时检查和故障场景发送自动 Gmail 警报 ## 功能特性 - 同时监控多个 Airflow DAG - 通过 Airflow REST API 获取最新 DAG 运行元数据 - 合并式 HTML 监控仪表盘 - 自动化 Gmail 邮件警报 - 故障触发警报通知 - 配置驱动的架构 - 模块化的 Python 代码结构 - 日志记录支持 ## 技术栈 - Python - Apache Airflow - Airflow REST API - Jinja2 - Gmail SMTP - Python dotenv - Logging ## 系统架构 ``` Apache Airflow | v Airflow API Client | v DAG Monitoring Logic | v HTML Report Generator | v Gmail Alert Notification ``` ## 项目结构 ``` airflow-dag-monitoring-automation/ │ ├── src/ │ ├── config/ │ ├── services/ │ ├── utils/ │ └── main.py │ ├── templates/ ├── reports/ ├── tests/ ├── .env.example ├── requirements.txt └── README.md ``` ## 安装步骤 克隆仓库: ``` git clone https://github.com/nagulpranavvs-de/airflow-dag-monitoring-automation.git cd airflow-dag-monitoring-automation ``` 创建虚拟环境: ### Windows 系统 ``` python -m venv venv venv\Scripts\activate ``` 安装依赖项: ``` pip install -r requirements.txt ``` ## 配置说明 创建包含以下内容的 `.env` 文件: ``` AIRFLOW_BASE_URL=http://localhost:8080/api/v1 AIRFLOW_USERNAME=admin AIRFLOW_PASSWORD=admin GMAIL_EMAIL=your_email@gmail.com GMAIL_APP_PASSWORD=your_app_password RECIPIENT_EMAIL=recipient@gmail.com DAG_LIST=dag_1,dag_2,dag_3 ``` ## 运行项目 ``` python src/main.py ``` ## 业务影响 本项目有助于: - 减少手动 DAG 监控工作 - 改善事件响应时间 - 集中化工作流可观测性 - 减少警报噪音 - 提高管道可靠性 ## 未来改进计划 - 任务级故障诊断 - 重试逻辑 - Docker 支持 - CI/CD 管道 - Slack / Teams 警报 - 更优的仪表盘用户界面 ## 作者 **Nagul Pranav V S** 云数据工程师 | Google Cloud 认证专业数据工程师 GitHub: https://github.com/nagulpranavvs-de LinkedIn: https://linkedin.com/in/nagulpranavvs
标签:Apache Airflow, DAG监控, ETW劫持, Gmail SMTP, HTML报告生成, Jinja2, Python, REST API, 健康检查, 工作流管理, 报告仪表盘, 故障通知, 数据工程, 无后门, 日志记录, 模块化设计, 生产环境监控, 监控自动化, 自动化修复, 自动化运维, 逆向工具, 邮件警报