Skip to main content

Auto-generated Diagrams from Airflow DAGs.

Project description

airflow-diagrams

pre-commit.ci status test workflow codecov PyPI version License PyPI - Python Version

Auto-generated Diagrams from Airflow DAGs.

This project aims to easily visualise your Airflow DAGs on service level from providers like AWS, GCP, Azure, etc. via diagrams.

🚀 Get started

To install it from PyPI run:

pip install airflow-diagrams

NOTE: Make sure you have Graphviz installed.

Then just call it like this:

Usage: airflow-diagrams generate [OPTIONS]

  Generates <airflow-dag-id>_diagrams.py in <output-path> directory which
  contains the definition to create a diagram. Run this file and you will get
  a rendered diagram.

Options:
  -d, --airflow-dag-id TEXT    The dag id from which to generate the diagram.
                               By default it generates for all.
  -h, --airflow-host TEXT      The host of the airflow rest api from where to
                               retrieve the dag tasks information.  [default:
                               http://localhost:8080/api/v1]
  -u, --airflow-username TEXT  The username of the airflow rest api.
                               [default: admin]
  -p, --airflow-password TEXT  The password of the airflow rest api.
                               [default: admin]
  -o, --output-path DIRECTORY  The path to output the diagrams to.  [default:
                               .]
  -m, --mapping-file FILE      The mapping file to use for static mapping from
                               Airflow task to diagram node. By default no
                               mapping file is being used.
  -v, --verbose                Verbose output i.e. useful for debugging
                               purposes.
  -lw, --label-wrap TEXT       Specify either a number for label width or a
                               separator to indicate when to wrap a label. By
                               default it does not wrap labels.
  --help                       Show this message and exit.

Examples of generated diagrams can be found in the examples directory.

🤔 How it Works

ℹ️ At first it connects, by using the official Apache Airflow Python Client, to your Airflow installation to retrieve all DAGs (in case you don't specify any dag_id) and all Tasks for the DAG(s).

🔮 Then it tries to find a diagram node for every DAGs task, by using Fuzzy String Matching, 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.

🪄 Lastly 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.

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

airflow-diagrams-1.1.0.tar.gz (12.9 kB view details)

Uploaded Source

Built Distribution

airflow_diagrams-1.1.0-py3-none-any.whl (14.2 kB view details)

Uploaded Python 3

File details

Details for the file airflow-diagrams-1.1.0.tar.gz.

File metadata

  • Download URL: airflow-diagrams-1.1.0.tar.gz
  • Upload date:
  • Size: 12.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.12 CPython/3.9.10 Linux/5.11.0-1027-azure

File hashes

Hashes for airflow-diagrams-1.1.0.tar.gz
Algorithm Hash digest
SHA256 9a54a377406b821f5c40fbd18391071ff26faa108014d2e8bc781f54a0d2f420
MD5 b5176984b3dea084b708df0f1dfb65e7
BLAKE2b-256 61b6a8410bb55bfc94b47b5cdca4fb9a6b87c591ab4b99e4941189138ecbf2b4

See more details on using hashes here.

File details

Details for the file airflow_diagrams-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: airflow_diagrams-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 14.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.12 CPython/3.9.10 Linux/5.11.0-1027-azure

File hashes

Hashes for airflow_diagrams-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f54a416d4a6619ca51d76221add310c7326c9d265c2c7caa134016e59e78070d
MD5 f82f72d94100eee36f8891ec1b942360
BLAKE2b-256 141d48eeade9e52771e8e12bbd955ee8c0daec9e7dbb1b1772f99f4695ae3f20

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page