我已阅读question for vanilla Airflow。
如何在Google Cloud Composer中有效地调试损坏的DAG?
如何查看损坏的DAG的完整日志?
现在,我只能在Airflow UI主页上看到一行跟踪。
编辑:
答案似乎是不理解我的问题。
我正在寻找修复损坏的DAG ,即DAG甚至没有出现在DAG列表中,并且当然没有正在运行的任务和要查看的任务日志。
答案 0 :(得分:1)
要确定触发DAG时发生的运行时问题,您可以始终像查看任何典型的Airflow安装一样查看任务日志。可以使用Web UI或在Cloud Composer环境的关联Cloud Storage存储桶中的关联日志文件夹中找到这些文件。
要在解析时识别问题,可以使用gcloud composer
执行Airflow命令。例如,要运行airflow list_dags
,等效的gcloud
CLI将是:
$ gcloud composer environments --location=$REGION run $ENV_NAME -- list_dags --report
请注意,第二个--
是有意的。这样,命令参数解析器可以区分gcloud
的参数和要传递给Airflow子命令的参数(在这种情况下为list_dags
)。
答案 1 :(得分:1)
正如hexacynide所指出的,您可以查看任务日志-Composer文档中有有关执行此操作的详细信息,here是特别发现的。您还可以使用Stackdriver logging,它在Composer项目中默认启用。在Stackdriver日志中,您可以过滤许多变量上的日志,包括按时间,按Pod(气流工作人员,气流Web服务器,气流调度程序等)以及您怀疑可能出现在日志中的任何关键字。
编辑:添加屏幕截图并更清晰地响应问题更新
在Airflow中,当DAG损坏时,顶部通常会出现某种形式的错误消息。 (是的,我知道此错误消息会有所帮助,并且我不需要进一步调试,但我仅会演示如何操作)
在消息中,我可以看到我的DAG bq_copy_across_locations已损坏。
要调试,我转到Stackdriver,并搜索我的DAG的名称。我将结果限制为该Composer环境中的日志。如果需要,您还可以限制时间范围。
我查看了错误日志,发现了损坏的DAG的回溯错误。
或者,如果您知道只想搜索堆栈回溯,则可以运行高级筛选器来查找DAG名称和单词“ traceback”。为此,请点击Stackdriver日志栏右侧的箭头,然后点击“转换为高级过滤器”
然后输入您的高级过滤器
resource.type="cloud_composer_environment"
resource.labels.location="YOUR-COMPOSER-REGION"
resource.labels.environment_name="YOUR-ENV-NAME"
("BROKEN-DAG-NAME" AND
"Traceback")
这是我的高级搜索的样子
将返回的唯一日志将是该DAG的堆栈回溯日志。