【问题标题】:How to implement a Canary DAG in Airflow for health checks of other jobs?如何在 Airflow 中实施 Canary DAG 以对其他作业进行健康检查?
【发布时间】:2019-10-01 04:41:23
【问题描述】:

我的团队有多个气流工作。经常运行的作业被安排并正常运行,但很少运行的作业经常没有安排并被跳过。

我主要想创建一个运行状况检查 DAG,以便在我的作业未计划且未运行时收到警报。

【问题讨论】:

    标签: python python-3.x airflow pipeline airflow-scheduler


    【解决方案1】:

    顾名思义,Canary Dag

    • 不应该做任何真正的工作
    • 它只是一个虚拟的运行来证明 Airflow 调度程序的正常运行时间

    记住以上几点

    • 我认为DummyOperator(什么都不做,但仅仅执行任务就足以给我们一个线索),PythonOperatorprint某事)和BashOperatorecho某事)是任务的好竞争者必须包含 Canary Dag
    • robinhood guys 说他们写 ..tasks which perform very simple actions such as establishing database connections..

    【讨论】:

    • 我明白这一点,但我不清楚如果 dag 本身不运行会发生什么?我可能听起来很傻,但是如果调度器出现问题,并且 canary dag 本身失败了,我们如何通知工程师它已经失败了?
    • [1] 如果 Canary DAG 在上面的第一个替代方案(无操作、回显语句)中执行了虚拟操作,那么它永远不会失败。因此,Canary Dag 的失败意味着我们的 Canary Dag(任务)本身不正确,我们将能够相应地对其进行修改,使其不再保持failure-prone(但不是failure-proof) [2] 鉴于它仅用于指示调度程序心跳,即使 Canary Dag 可能失败也是可以接受的(最初几天):因为失败和成功都表示心跳(但无状态/未完成会引发红旗)
    • 谢谢你的回答,我明白你的意思,我可以保留一份可以监控心跳的工作,并据此发出警报,你能提供任何关于如何重新启动 gcp 作曲家调度程序的想法吗来自 cron?
    猜你喜欢
    • 1970-01-01
    • 2018-01-27
    • 1970-01-01
    • 1970-01-01
    • 2018-10-25
    • 1970-01-01
    • 2014-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多