Airflow 如何为Apache DAG设置Nagios警报

Airflow 如何为Apache DAG设置Nagios警报,airflow,nagios,Airflow,Nagios,是否可以为气流DAG设置Nagios警报? 如果dag失败,我需要通知相应的组。您可以向任何调用任意故障处理函数的任务添加“on\u failure\u callback”。在该函数中,您可以向Nagios发送错误调用 例如: dag = DAG(dag_id="failure_handling", schedule_interval='@daily') def handle_failure(context): # first get useful fields t

是否可以为气流DAG设置Nagios警报? 如果dag失败,我需要通知相应的组。

您可以向任何调用任意故障处理函数的任务添加“on\u failure\u callback”。在该函数中,您可以向Nagios发送错误调用

例如:

dag = DAG(dag_id="failure_handling",
          schedule_interval='@daily')

def handle_failure(context):
    # first get useful fields to send to nagios/elsewhere
    dag_id = context['dag'].dag_id
    ds = context['ds']
    task_id = context['ti'].task_id
    # instead of printing these out - you can send these to somewhere else
    logging.info("dag_id={}, ds={}, task_id={}".format(dag_id, ds, task_id))

def task_that_fails(**kwargs):
    raise Exception("failing test")

task_to_fail = PythonOperator(
    task_id='python_task_to_fail',
    python_callable=task_that_fails,
    provide_context=True,
    on_failure_callback=handle_failure,
    dag=dag)
如果您在此服务器上运行测试: 气流测试失败\u处理任务\u至\u失败2018-08-10

您可以在日志输出中获得以下内容: 信息-dag\u id=故障处理,ds=2018-08-10,任务id=任务到故障