Airflow 3.x plugin that visualizes Dag execution times as a Gantt chart
Project description
airflow-dag-gantt
Airflow 3.x plugin that visualizes Dag execution times as a 24-hour Gantt chart.
Shows average/median start and end times for each Dag based on recent successful runs. Uses react_apps to render natively within the Airflow UI.
Requirements
- Python >= 3.10
- Apache Airflow >= 3.0.0
Installation
pip install airflow-dag-gantt
Or install from source:
pip install git+https://github.com/choo121600/airflow-dag-gantt.git
Configuration
No additional configuration required. The plugin uses the logged-in user's session to call Airflow's REST API (/api/v2/) directly from the browser.
After installation, restart the webserver:
sudo systemctl restart airflow-webserver
Features
- 24h timeline Gantt chart with responsive width (ResizeObserver)
- Mean/Median toggle for execution time statistics
- Run count selector: 10, 25, 50, 100, or All
- Prefix-based color grouping: Dag ID prefix별 자동 색상 구분
- Tag-based filtering: tag 버튼 토글로 Dag 필터링 (12개 미리보기 + 확장)
- Text search: Dag name 및 tag 통합 검색
- Filter reset: 모든 필터 초기화 버튼
- Hover tooltips: mean/median start/end, duration, run count, tags
- Browser timezone: 시간축이 브라우저 로컬 시간대 기준으로 표시
UI Development
cd ui
pnpm install
pnpm dev # Dev server at localhost:5173
pnpm build # Build UMD bundle to dist/main.umd.cjs
After building, copy the bundle:
cp ui/dist/main.umd.cjs src/airflow_dag_gantt/dist/
Tech Stack
- Frontend: React 19, TypeScript, ChakraUI v3, Vite (UMD build)
- Backend: FastAPI (Airflow plugin, static file serving only)
- Integration: Airflow 3.x
react_appsplugin API
License
Apache License 2.0
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file airflow_dag_gantt-0.2.2.tar.gz.
File metadata
- Download URL: airflow_dag_gantt-0.2.2.tar.gz
- Upload date:
- Size: 74.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6900ea394d1a4ca9123b27bf2df7be5fd4d9563e81d4c79c3eb709560a1c4517
|
|
| MD5 |
677f77df4cbc1a706cac42cfb1013440
|
|
| BLAKE2b-256 |
7e1c512ccae3b21f7323dfef19de05d78144dba384da2688d538758833c5fe80
|
File details
Details for the file airflow_dag_gantt-0.2.2-py3-none-any.whl.
File metadata
- Download URL: airflow_dag_gantt-0.2.2-py3-none-any.whl
- Upload date:
- Size: 73.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
90a1109a02fa3d4bbcf64b773e707d766e4285ca399175f93d2991b63b26d2aa
|
|
| MD5 |
287a9e6d2c49f774c0537cb2aade278d
|
|
| BLAKE2b-256 |
929a30e04cb2da96a5eb507849f448812b992ed10c16b6a74a177f88773bcc96
|