Airflow 内置的警报无法检测静默数据管道故障,即任务完成但未产生预期结果。本文主张采用外部监控来解决此问题并捕获关键错误。文章介绍了一种利用输出断言的“死人开关”(dead man's switch)方法进行全面监控。死人开关监控器检查 DAG 是否按计划发送心跳信号,并在错过运行时发出警报。关键在于输出断言,即使 DAG 完成,也检查是否存在非零输出,从而防止静默故障。作者建议使用 DeadManCheck 这一 cron 监控工具,因其具备输出断言能力。文中提出了两种方法:DAG 级回调策略和添加最终任务。回调方法使用 `on_success_callback` 和 `on_failure_callback` 向监控器发送心跳信号。另一种方法是面向任务的方案,在 DAG 图中显式添加监控步骤。DeadManCheck 的配置涉及设置间隔时间和输出断言。文章概述了如何配置 `DEADMANCHECK_TOKEN` 环境变量。该设置能够识别 Airflow 遗漏的各种故障模式。部署过程简单明了,包括创建账户、设置监控器以及集成回调。此配置确保 DAG 故障和零输出场景均能触发警报。
dev.to
How to monitor Apache Airflow DAGs so you know when they silently fail
Create attached notes ...
