微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Airflow dags - 用于跟踪目的的运行时报告

如何解决Airflow dags - 用于跟踪目的的运行时报告

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

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

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

解决方法

您可以尝试使用 Apache 气流中提供的 Ad Hoc Query。

此选项在数据分析 -> Ad Hoc 查询中可用,然后选择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_date。您还可以获得其他统计信息,例如 id、dag_id、execution_date、state、run_id、conf。

您也可以参考https://airflow.apache.org/docs/apache-airflow/1.10.1/profiling.html#:~:text=Part%20of%20being%20productive%20with,application%20letting%20you%20visualize%20data。链接了解更多详情。

,

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

既然你也不想使用 ES 日志,你可以试试 resolve aliases,如果它适合你的需要。

然而,从数据库中提取此信息效率不高,无论如何,如果您不希望实时收集数据,它仍然是一种选择。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。