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, 健康检查, 工作流管理, 报告仪表盘, 故障通知, 数据工程, 无后门, 日志记录, 模块化设计, 生产环境监控, 监控自动化, 自动化修复, 自动化运维, 逆向工具, 邮件警报