Есть ли способ контролировать время выполнения Airflow DAG? - PullRequest
2 голосов
/ 23 января 2020

Я бы хотел использовать Airflow с Statsd и DataDog для мониторинга, если DAG занимает, например, вдвое больше времени, чем его предыдущее выполнение. Итак, мне нужен какой-то таймер реального времени для DAG (или operator).

Мне известно, что Airflow поддерживает некоторые показатели . Однако, насколько я понимаю, все показатели связаны с завершенными заданиями / группами DAG, верно? Так что это не решение, потому что я хотел бы отслеживать работающие группы доступности баз данных.

Я также рассмотрел функции timeout_execution / SLA , но они не подходят для этот вариант использования

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

1 Ответ

1 голос
/ 24 января 2020

Существует несколько способов справиться с этим:

  • В прошлом я настраивал группу обеспечения доступности баз данных телеметрии, которая собирала бы текущее состояние всех задач / групп обеспечения доступности баз данных, запрашивая таблицы метаданных. , Я собирал эти метрики и отправлял их в CloudWatch. Это стало проблематичным c, так как эти внутренние поля часто меняются, поэтому у нас могут возникнуть проблемы при обновлении до более новых версий Airflow.
  • Есть также некоторые хорошо поддерживаемые экспортеры Prometheus , которые некоторые компании имеют открытые источники. Установив их, вы можете опрашивать открытый путь экспорта так часто, как вам нужно (DataDog поддерживает Prometheus ).

Это лишь некоторые из ваших вариантов. Поскольку веб-сервер Airflow является просто Flask приложением, вы действительно можете отображать метрики любым удобным для вас способом.

...