web-dev-qa-db-ja.com

壊れたDAGのデバッグ

AirflowウェブサーバーがBroken DAG: [<path/to/dag>] <error>などのエラーを表示した場合、これらの例外の完全なスタックトレースをどこでどのように見つけることができますか?

私はこれらの場所を試しました:

/var/log/airflow/webserver-実行の時間枠内にログがありませんでした。他のログはバイナリであり、stringsを使用したデコードは有用な情報を提供しませんでした。

/var/log/airflow/scheduler-一部のログがありましたが、バイナリ形式であり、それらを読み取ろうとしましたが、おそらくairflowのデータベースのほとんどがsqlalchemyログであるように見えました。

/var/log/airflow/worker-DAGの実行に関するログを表示します(エアフローページに表示されるものと同じ)

/var/log/airflow/rotatedの下にも-探していたスタックトレースが見つかりませんでした。

Airflow v1.7.1.3を使用しています

13
arbazkhan002

通常、コマンドairflow list_dagsは、pythonエラーが見つかったため、完全なスタックトレースを出力します。

これは、airflow CLIコマンドを使用するたびにairflow parse dagsフォルダーとしてほとんどすべてのairflowコマンドで機能します。

9
Babcool

コンパイルして構文エラーを確認したい場合は、python your_dag.py

2
Chengzhi

やりたいことは、完全なスタックトレースを取得できるように、Webサーバーの内部ログにアクセスすることです。私のAirflowサーバーはDockerイメージで実行されているため、Dockerを使用してこれらのログをフェッチしますが、アイデアは残っています。

  1. docker ps
  2. ウェブサーバーのPIDを取得する
  3. docker logs [PID]
  4. 指定されたAirflowウェブサーバーの完全なログを読み取ります。

これには、DAGビルドが失敗した理由の正確な情報が含まれているはずです。

1
belka