https://github.com/feluelle/airflow-diagrams
Auto-generated Diagrams from Airflow DAGs. đŽ đĒ
https://github.com/feluelle/airflow-diagrams
airflow auto-generated cli diagrams python
Last synced: 11 days ago
JSON representation
Auto-generated Diagrams from Airflow DAGs. đŽ đĒ
- Host: GitHub
- URL: https://github.com/feluelle/airflow-diagrams
- Owner: feluelle
- License: apache-2.0
- Created: 2020-06-29T11:13:10.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2025-04-14T17:42:38.000Z (11 days ago)
- Last Synced: 2025-04-14T18:44:33.793Z (11 days ago)
- Topics: airflow, auto-generated, cli, diagrams, python
- Language: Python
- Homepage:
- Size: 1.23 MB
- Stars: 339
- Watchers: 5
- Forks: 29
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# airflow-diagrams
[](https://results.pre-commit.ci/latest/github/feluelle/airflow-diagrams/main)


[](https://codecov.io/gh/feluelle/airflow-diagrams)
[](https://pypi.org/project/airflow-diagrams/)
[](https://github.com/feluelle/airflow-diagrams/blob/main/LICENSE)
[](https://pypi.org/project/airflow-diagrams/)
[](https://pypi.org/project/airflow-diagrams/)> Auto-generated Diagrams from Airflow DAGs. đŽ đĒ
This project aims to easily visualise your [Airflow](https://github.com/apache/airflow) DAGs on service level
from providers like AWS, GCP, Azure, etc. via [diagrams](https://github.com/mingrammer/diagrams).
Before | After
--- | ---
 | ## đ Get started
To install it from [PyPI](https://pypi.org/) run:
```console
pip install airflow-diagrams
```> **_NOTE:_** Make sure you have [Graphviz](https://www.graphviz.org/) installed.
Then just call it like this:

_Examples of generated diagrams can be found in the [examples](examples) directory._
## đ¤ How it Works
1. âšī¸ It connects, by using the official [Apache Airflow Python Client](https://github.com/apache/airflow-client-python), to your Airflow installation to retrieve all DAGs (in case you don't specify any `dag_id`) and all Tasks for the DAG(s).
1. đĒ It processes every DAG and its Tasks and đŽ tries to find a diagram node for every DAGs task, by using [Fuzzy String Matching](https://github.com/seatgeek/thefuzz), that matches the most. If you are unhappy about the match you can also provide a `mapping.yml` file to statically map from Airflow task to diagram node.
1. đ¨ It renders the results into a python file which can then be executed to retrieve the rendered diagram. đ## â¤ī¸ Contributing
Contributions are very welcome. Please go ahead and raise an issue if you have one or open a PR. Thank you.