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 日志流