airflow dags list: Список всех DAG: форматы вывода, путь к DAG-директории
Список всех DAG: форматы вывода, путь к DAG-директории
Вот шпаргалка по команде airflow dags list. Я пользуюсь ей постоянно для быстрой диагностики и проверки состояния DAG-файлов.
Базовый синтаксис
Самая простая форма команды выводит список всех DAG, которые Airflow видит и загрузил в базу данных. Имена выводятся построчно.
airflow dags list
Команда сканирует DAG-директорию (по умолчанию AIRFLOW_HOME/dags), пытается загрузить каждый Python-файл и извлечь объекты DAG. В вывод попадают только те DAG, которые прошли парсинг без синтаксических ошибок и чьё расписание (если есть) актуально.
Полезные флаги
--output table|json|yaml – формат вывода. По умолчанию table (человекочитаемая таблица). Для скриптовой обработки незаменим json.
Пример: получить список всех DAG в формате JSON для последующего парсинга через jq. Это основа для автоматических проверок.
airflow dags list --output json
--subdir – путь к конкретной папке или файлу для загрузки DAG. Используется, когда нужно проверить, видит ли Airflow DAG в альтернативной директории, или для отладки одного проблемного файла, не загружая всю папку dags.
Пример: проверить, правильно ли загружается DAG из файла в Git-репозитории, смонтированном в контейнер.
airflow dags list --subdir /opt/repo/dags/specific_dag.py
Типичные сценарии
1. Поиск DAG с ошибками синтаксиса. Если DAG есть в файловой системе, но не появляется в общем списке, вероятно, в нём ошибка. Чтобы найти проблемный файл, проверяем по одному через --subdir.
for dag_file in /opt/airflow/dags/*.py; do
echo "Checking $dag_file:"
airflow dags list --subdir "$dag_file" 2>&1 | head -5
done
2. Получение списка DAG для мониторинга. Формируем массив имён DAG в JSON, чтобы передать в систему оповещений или панель управления.
# Получаем только имена активных DAG
airflow dags list --output json | jq -r '.[].dag_id'
Частые ошибки
Пустая или неполная таблица вывода. Самая частая причина — неправильно заданная переменная AIRFLOW_HOME или dags_folder в airflow.cfg. Команда сканирует не ту директорию. Всегда проверяйте путь командой airflow config get-value core dags_folder.
DAG есть в списке, но не отображается в веб-интерфейсе. Скорее всего, он отключён (параметр is_paused_upon_creation=True). В списке командой dags list показываются все DAG, независимо от их состояния паузы.