获取 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
我正在尝试从 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