Apache Airflow UIの画面構成について

# Apache Airflowとは

Apache AirflowはOSSのワークフロー管理ツールです。DAG（有向非巡回グラフ）を用いてワークフローを作成し、各種データの取り込み、加工などの処理のワークフロー制御を行うことができます。  
また、AWSなどのクラウドプロバイダーからApache Airflowのマネージドサービスが提供されているため、比較的に導入、利用がしやすいツールとなっています。  
ここではAWSのAmazon Managed Workflows for Apache Airflow (MWAA)でApache Airflowのバージョン2.2のUIがどのようなものか確認をしていきます。

# Apache Airflow UIについて

AirflowのUIはDAGsというのがメイン画面となっており、この画面から各種ワークフローの管理が可能です。それぞれのワークフローの実行のON/OFFや実行履歴の確認を行うことができます。ここでは良く利用される画面について解説していきます。  
以下の画面では`etl_athena_job`というワークフローが１つだけ存在しています。

![mwaa-handson-job-5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276167/dfcaa837-dd6b-6fd8-aa0a-8df192caed99.png)

## DAGの有効化/無効化

DAG名の左にあるトグルをクリックすることで有効化(Active状態)、無効化(Paused状態)にできます。  
以下の画面のDAGは有効化した状態です。

![mwaa-handson-job-6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276167/5cc1adc0-726d-1db7-2a68-ce1631e95518.png)

## DAGごとの画面構成

それぞれのDAGをクリックするとDAGの詳細情報を確認することができます。複数のタブでDAGのさまざまな情報を確認することができます。

### DAGのGraph

それぞれのDAGをクリックするとGraph画面に遷移するので参照することが多い画面になります。  
Graph画面ではそれぞれの実行に関しての詳細なステータスを確認可能です。各タスクのログの確認やエラー後のリトライを行うためのステータスの変更等が可能です。  
DAGをクリックしてGraph画面に遷移した場合は最新の実行のステータスが表示されます。過去の実行を見たい場合は、「Run」で過去の実行がリストとして表示されるのでそこから選択をします。

![mwaa-handson-screen-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276167/e7a4d82c-c0cb-8cab-6a45-cfbc64078e9e.png)

### DAGのTree

Tree画面では時系列でDAGの実行ステータス、DAG内のタスクの実行ステータスを確認することができます。  
過去の実行も含めて各タスクが成功したのか失敗したのかなどを確認するのに有用な画面となります。

![mwaa-handson-screen-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276167/5d004d7f-bcb9-6288-f7a4-1b1126126b55.png)

### DAGのCalendar

Calendar画面では日次での実行ステータスを確認可能です。  
全ての実行が成功していれば濃い緑色で表示されますが、実行失敗の割合が多ければ多いほど赤色に近くなるように表示されます。

![mwaa-handson-screen-3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276167/aa6c9a38-6dbd-ab3c-b42f-a253709a78c7.png)

### DAGのTask Duration

Task Duration画面では各実行でのタスクの実行時間が表示されます。  
徐々に実行時間が増えているなどの問題点をこの画面から確認することが可能です。

![mwaa-handson-screen-4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276167/e7f505ad-2139-8b7d-23b7-fa240b74c18a.png)

### DAGのTask Tries

Task Tries画面では各タスクのリトライ回数を確認することができます。

![mwaa-handson-screen-5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276167/aee8bdb8-8596-27e1-2944-fdea682072aa.png)

### DAGのLanding Times

Landing Times画面ではスケジュールで実行が開始されるべき時刻から実際に実行が開始された時刻の差分です。  
そのため、タスクの実行待ちの長さを確認することができ、Airflowのクラスタリソースが不足してないかどうかを推測可能です。

![mwaa-handson-screen-6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276167/194d3994-d2ff-43a8-77eb-f56bafcf4e31.png)

### DAGのGantt

Gantt画面ではガントチャートで各タスクの実行時間を確認することができます。  
過去の実行を見たい場合は、「Run」で過去の実行がリストとして表示されるのでそこから選択をします。

![mwaa-handson-screen-7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276167/9de34e52-0dc5-4d4d-bc3b-f432970892aa.png)

### DAGのDetails

Details画面ではDAGのコード内で記述されている、Schedule IntervalやDefault Args, Task IDsなど、このDAGの設定情報を表形式で確認することが可能です。

![mwaa-handson-screen-8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276167/d318548d-7535-63ea-28ee-60eaa9058c59.png)

### DAGのCode

Code画面ではDAGのコードそのものを確認することが可能です。

![mwaa-handson-screen-9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276167/b23aa23f-4b66-626b-b234-3ab9700cbe45.png)