获取 dag 运行 次的统计数据

get statistics of dag run times

我正在尝试从 Airflow 中导出 dag 统计信息。 statsd 输出不是很有用,所以我决定基本上 运行 一个 dag 来查询 SQL 并将其导出说 influxdb。

因此创建 DAG 来查询 postgres airflow 数据库非常容易。但是,我对架构有点困惑。我会想:

select run_id, start_date, end_date from dag_run where dag_id= 'blah';

会这样做,但结尾 end_date 似乎从未被填充。

我真正想要的是 dag 运行 开始的总时间(第一个作业启动的时间,而不是作业首次进入 running 状态的时间)以及 dag 进入 success 状态的时间。

尝试点击 task_instance table:

  SELECT  execution_date
       ,  MIN(start_date) AS start
       ,  MAX(end_date) AS end
       ,  MAX(end_date) - MIN(start_date) AS duration
    FROM  task_instance
   WHERE  dag_id = 'blah'
     AND  state = 'success'
GROUP BY  execution_date
ORDER BY  execution_date DESC