获取 dag 运行时间的统计信息

yee*_*379 1 statistics report directed-acyclic-graphs airflow

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

所以很容易创建一个 DAG 来查询 postgres 气流数据库。但是,我对架构有点困惑。我会想:

select run_id, start_date, end_date from dag_run where dag_id= 'blah';
Run Code Online (Sandbox Code Playgroud)

会这样做,但 endend_date似乎永远不会被填充。

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

joe*_*oeb 10

尝试敲task_instance桌子:

  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
Run Code Online (Sandbox Code Playgroud)