Apache Airflow 中的分布式日志记录

Posted

技术标签:

【中文标题】Apache Airflow 中的分布式日志记录【英文标题】:Distributed logging in Apache Airflow 【发布时间】:2018-10-22 06:20:21 【问题描述】:

我们正在使用Cloud Composer(GCP 中的托管气流)来编排我们的任务。我们正在将所有日志移至sumo logic(我们组织中的标准流程)。我们的要求是跟踪 DAG 单次执行的整个日志,目前似乎没有办法跟踪。

目前,DAG 中的第一个任务会生成一个唯一的 ID,并通过xcom 将其传递给其他任务。这里的问题是我们无法在 Airflow operators 日志中注入唯一 ID(如 BigQueryOperator)。

有没有其他方法可以在 Airflow 操作员日志中注入自定义唯一 ID?

【问题讨论】:

【参考方案1】:

Composer integrates with stackdriver logging,您可以按“工作流程:your-dag-name”和“执行日期:your-dag-run-date”过滤每个 DAG 日志,例如,

您可以使用以下过滤器read log entries:

resource.type="cloud_composer_environment"
resource.labels.location="your-location"
resource.labels.environment_name="your-environment-name"
logName="projects/cloud-airflow-dev/logs/airflow-worker"
labels."execution-date"="your-dag-run-date"
labels.workflow="your-dag-id"

【讨论】:

以上是关于Apache Airflow 中的分布式日志记录的主要内容,如果未能解决你的问题,请参考以下文章

Google Cloud Composer (Apache Airflow) 无法访问日志文件

Azure 应用服务上未显示 Apache Airflow 日志流

Apache Airflow单机/分布式环境搭建

Scala 中的 Apache Spark 日志记录

Apache Airflow - 工作正常现在说日志文件不是本地错误和异常正在弹出

2022年Docker安装Apache Airflow2.2分布式任务调度框架