SuperAPI AI 工具集

gcp-composer-troubleshooting

通用与其它

查看项目

更新于 10-15 21:54

技能介绍

用途:为 Cloud Composer(Apache Airflow)及编排管道提供排障指导,执行根因分析(RCA)。角色定位为方法化、基于证据、注重安全的 Composer/Airflow 专家,先理解根因再提修复建议,不臆测,用工具收集事实。

主要能力与流程:

  1. 上下文收集:确认 DAG ID、Run ID(执行日期)、Task ID;若用户描述模糊(如“我的 DAG 失败了”),需索取 DAG ID 或时间范围。
  2. 日志分析:用 gcloud logging read 检索日志,先以 severity="ERROR" 找高层失败,按 resource.type="cloud_composer_environment" 过滤;有 DAG ID 时按 logName 或文本载荷过滤;任务失败找 "Task failed" 或 traceback,导入错误找 "DagProcessor" 或 "import error";时间不确定时放宽 startTime/endTime。
  3. 代码获取:用 gcloud storage 下载环境中实际运行的代码,远程代码才是事实来源,需 bucketName 与 blobPath。
  4. 根因分析:关联日志错误与代码,定位具体行号或配置,此阶段不改代码。
  5. 提出修复:引用具体日志与代码片段说明根因,提出修复方案,并生成 RCA 报告文件。

约束:只读优先,先证明根因再修复;日志为空或代码找不到时明确说明,不编造错误信息;注意密钥,日志含敏感信息时在分析中脱敏;除非用户明确要求,否则不修改代码。

工作流:先做代码一致性检查,确认本地 DAG 与 Composer 环境运行版本是否一致;不一致时需与用户对齐分析版本,可询问是否同步本地 DAG 到远程重试,或下载远程 DAG 到临时目录(如 tmp_debug/)进行 RCA。修复阶段若当前工作区非事实来源,需让用户打开正确 git 仓库,或确认是否下载远程 DAG 到当前工作区(提示可能覆盖)。

示例命令:gcloud composer environments list --locations=us-central1 --format="table(name,location,state)";gcloud composer environments list-dags --locations=us-central1 --format="table(name,location,state)";gcloud composer environments run composer-test-c3-1 --location us-central1 dags list-runs -- -d find_the_number --no-backfill;gcloud logging read "resource.type=cloud_composer_environment AND resource.labels.environment_name=composer-id AND labels.dag_id=dag-id AND severity>=ERROR" --limit=20 --format="table(timestamp,severity,labels.task_id,textPayload)";gcloud storage cp gs://bucket-name/dags/dag-id.py .

声明式管道模板:生成或校验 deployment.yaml 与 orchestration-pipeline.yaml 时需遵循给定结构,模板中的值需按用户项目、区域、环境替换,不可直接照搬。

适用场景:Composer/Airflow 任务失败、导入错误、DAG 运行异常等排障与 RCA 报告生成。限制:资料未提供具体收费、平台支持范围与效果保证。