Airflow1与Airflow2调度器日志差异及日志解析匹配问题咨询
Airflow 2.x 调度器日志匹配规则调整方案
Airflow 2.x 对调度器核心逻辑、日志打印规范做了重构升级,原有1.x的日志匹配规则失效属于正常版本差异,不需要修改核心日志配置,仅需要更新匹配规则即可:
- 原
INFO Marking run规则替代
Airflow 2.x 中DAG Run状态标记的日志去掉了1.x版本的双层日志嵌套结构,日志内容调整为Marking run <DagRun实例信息> as <运行状态>,可以使用匹配规则INFO - Marking run.*as success命中DAG运行成功记录,INFO - Marking run.*as running命中DAG触发启动记录,同时可以提取日志开头的时间戳作为对应操作的时间。
匹配日志示例:
[2024-05-20 14:32:10,221] {dagrun.py:647} INFO - Marking run <DagRun prd_*** @ 2024-05-20 10:02:00+00:00: scheduled__2024-05-20T10:02:00+00:00, externally triggered: False> as success
- 原
INFO - Created规则替代
Airflow 2.x 中创建DagRun的日志内容调整为显式携带DagRun标识,匹配规则可以替换为INFO - Created.*DagRun即可命中DAG创建记录,提取对应时间戳。
匹配日志示例:
[2024-05-20 14:30:02,145] {scheduler_job.py:1782} INFO - Created <DagRun prd_*** @ 2024-05-20T10:02:00+00:00: scheduled__2024-05-20T10:02:00+00:00, externally triggered: False>
如果更新规则后仍然无法匹配,可检查两项配置:
- 确认
airflow.cfg中[logging]段的logging_level配置为INFO,如果设置为WARN及更高等级会过滤掉INFO级别的日志输出。 - Airflow 2.3+版本支持调度器多进程部署,日志会拆分输出到多个
scheduler前缀的日志文件中,grep时需要匹配目录下所有日志文件,避免遗漏。
内容的提问来源于stack exchange,提问作者Troubadour
相关产品推荐
相关产品推荐

