Page MenuHomePhabricator

Airflow-App
Open, HighPublic

Description

Description

Deployment of a new, simplified Airflow UI which should be seated as on navigation point on the landing-page. The target is a clearer UI and some more direct navigation too some important information like logs. Also it should be possible for the user to clear a dagrun with one simple button click. For generic reasons the project should use the already in the landing-page used technologies Vue.js, Vuetify.

Following features are implemented:

  • The DAGs are listed in datatable. In addition to DAG ID, the table also includes the date of the last DAG Run, the number of successful and failed DAG Runs and also the information if the last DAG Run was successful or not. Therefor some adaptations at the Kaapana API were needed.
/api/getdags
/api/getdagruns
  • Also it's possible to filter the table items by checking a checkbox. At the moment there are just two categories of DAGs (service DAGs and DAGs which are written by our own), but in the future it should be pretty easy to add some more categories if needed.
  • By clicking on the DAG ID or the number of successful/failed DAG Runs you get redirect too the tree visualization of the last scheduled DAG Run in Airflow. At this juncture some improvements could be made, based on some testing I made currently. For example I basically would expect to get the last failed DAG Run by clicking at the number of failed DAG Runs. This is also the case but just if the last DAG Run failed and wasn't successful.
  • By clicking at the Last Run data a hidden template appears where two buttons are hidden. The Log Button shows you the log file of the failed DAG Run. The Clear Button clears the failed tasks of the failed DAG Run and is trigger them again. This both features made the most problems in development phase. Especially the clear function. For this I wrote a new method in the Kaapana API. Reachable over:
'/api/clear/<string:dag_id>/<string:execution_time>'

Event Timeline

m139l triaged this task as High priority.
m139l created this task.