Как получить статус DAG, например, работает или успех или неудача - PullRequest
2 голосов
/ 07 ноября 2019

Я хочу знать статус dag, работает ли он, произошел сбой или произошел успех. Я запускаю dag с помощью триггера воздушного потока аргумента CL, и после выполнения задания я хочу узнать состояние запуска. Я не мог найти способ.

Я пробовал поток воздуха dag_state, но он ничего не дает. Что делать, если в день выполняется более одного запуска, чтобы получить статус последнего запуска через аргумент командной строки или через код python.

Ответы [ 2 ]

1 голос
/ 07 ноября 2019

Вы можете использовать команду list_dag_runs с CLI, чтобы вывести список переходов для данного идентификатора. Возвращаемая информация включает в себя состояние каждого прогона.

Вы также можете получить информацию с помощью кода Python несколькими различными способами. Одним из таких способов, который я использовал в прошлом, является метод 'find' в airflow.models.dagrun.DagRun

Пример с python3 о том, как получить состояние dag_runs черезDagRun.find ():

dag_id = 'fake_dag_id'
dag_runs = DagRun.find(dag_id=dag_id)
for dag_run in dag_runs:
      print(dag_run.state)
0 голосов
/ 10 ноября 2019

Вы можете использовать следующие CL

airflow dag_state dag_id execution_date

Пример:

        airflow dag_state test_dag_id 2019-11-08T18:36:39.628099+00:00

В приведенном выше примере:

test_dag_id is the actual dag
2019-11-08T18:36:39.628099+00:00 is the execution date. You can get this from airflow UI for your run.

Другой вариант - использовать оставшийся поток воздухаплагин APIЭто лучший вариант. Вы можете вызвать DAG, а также проверить статус DAG.

https://github.com/teamclairvoyant/airflow-rest-api-plugin

...