本文介绍了升级气流版本后,远程日志记录不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我们将Airflow v2.1.4与Kubernetes执行器一起使用。
我们的K8S群集Pod stdout通过filebatch->;logstash->;Elasticsearch(Elk)自动发货。
在logstash中,我们正在创建log_id字段:
mutate { copy => { "[log][offset]" => "offset" } # change format from "2020-04-13T17_50_00_plus_00_00" to "2020-04-13T17:50:00+00:00" gsub => [ "[kubernetes][labels][execution_date]", "_plus_", "+" ] gsub => [ "[kubernetes][labels][execution_date]", "_", ":" ] add_field => [ "log_id", "%{[kubernetes][labels][dag_id]}-%{[kubernetes][labels][task_id]}-%{[kubernetes][labels][execution_date]}-%{[kubernetes][labels][try_number]}" ] }现在,可以通过Airflow Web服务器获取日志-到目前为止。
现在,我们将Airflow升级到最新版本v2.2.3,并且失去了远程日志功能。 仔细查看,发现最新版本中删除了execution_date标签(替换为run_id)。我们在发行说明和以下PR中看到了这方面的一些迹象: github/apache/airflow/pull/19593/files,github/apache/airflow/pull/16666。dag_id值似乎不够准确,无法提取确切的执行日期(例如:scheduled__2022-01-09T0020000000-8c05ec558)。
如何在最新版本中恢复日志?有什么解决方法的建议吗?检索日志的另一种方法?编辑:文档似乎已更新(但CFG示例没有):
log_id_template = {dag_id}-{task_id}-{run_id}-{try_number}我会尝试并更新
推荐答案我决定采用不同的方法,改为使用JSON日志。 这样我就不必处理所有转换并准备好log_id。
有关详细信息,请参阅以下答案:Airflow wrong log_id format。
更多推荐
升级气流版本后,远程日志记录不起作用
发布评论