气流dags-用于跟踪目的的运行时间报告



我正试图找到一种方法来捕获dag统计数据,即在单独的表中捕获各种dag及其任务的运行时间(开始时间、结束时间(、状态、dag id、任务id等

  • 找到了默认的日志,这些日志将转到elasticsearch/kibana,但不是一种简单的方法,可以将所需的日志从那里拉回到s3表
  • 在s3中构建一个单独的进程来加载这些日志会有复制的数据,而且由于还会生成大量其他与系统相关的日志,因此会有太多的数据需要扫描和过滤
  • 为每个dag添加一个函数-必须修改每个dag

还有什么其他的可能性可以有效地获得它,在任何其他内置的气流功能中,都可以使用

您可以尝试使用Apache airflow中提供的特殊查询。

此选项可在数据分析->特设查询并选择airflow_db

如果您希望获得DAG统计信息,如start_time、end_time等,您可以简单地以以下格式进行查询

select start_date,end_date from dag_run where dag_id = 'your_dag_name'

上面的查询返回所有DAG运行的DAG的start_time和end_time详细信息。如果你想获得特定运行的详细信息,那么你可以添加另一个过滤条件,如下面的

select start_date,end_date from dag_run where dag_id = 'your_dag_name' and execution_date = '2021-01-01 09:12:59.0000' ##this is a sample time

您可以从树视图或图形视图中获取此execution_de。此外,您还可以获得其他统计信息,如id、dag_id、execution_de、state、run_id和conf。

您也可以参考https://airflow.apache.org/docs/apache-airflow/1.10.1/profiling.html#:~:text=第%20部分(共%20部分(正在%20高效%20使用,应用程序%20让%20您%20可视化%20数据。链接了解更多详细信息。

您没有提到您是实时还是批量需要这些信息。

由于您也不想使用ES日志,如果适合您的需要,您可以尝试气流指标。

然而,从数据库中提取这些信息在任何情况下都是无效的,但如果您不寻求实时数据收集,它仍然是一种选择。

最新更新