Loading...
Loading...
Provides guidance for troubleshooting Apache Airflow DAGs (failed DAG runs and task instances) in Managed Service for Apache Airflow (MSAA; formerly Cloud Composer). Use when figuring out reasons for DAG run or task instance failures. Don't use when looking for overall recommendations for Managed Airflow environment performance.
npx skill4agent add google/skills managed-airflow-dag-troubleshootinggcloud composergcloud logginggcloud storagegcloud logging readAirflowTaskTimeoutgcloud composer environments run {env_name} \
--location {location} \
tasks states-for-dag-run -- -d {dag_id} -r {run_id}gcloud composer environments run {env_name} \
--location {location} \
tasks state -- {dag_id} {task_id} {execution_date}gcloud storage cp gs://{bucket_name}/dags/{dag_file}.py .gcloud composer environments describe {env_name} --location {location} --format="value(config.dagGcsPrefix)"gcloud logging readtasks states-for-dag-runtextPayloadbundle_nameversion_idpipeline_nameDagRun.noteop:orchestration_pipelinegcloud composer environments run {env_name} --location {location} dags listop:pipelineop:pipeline:xyzxyzop:bundleop:versiongcloud storage cp gs://{bucket_name}/dags/{dag_file}.py .gcloud storage cat gs://{bucket_name}/dags/{dag_file}.pygenerategenerate_dagsgeneratedagsgenerate_dags/home/airflow/gcs/bundle_nameversion_idpipeline_name{data_directory}/{bundle_name}/versions/{version_id}/{pipeline_name}.yml.yamldata/{bundle_name}/versions/{version_id}/{pipeline_name}.yml.yamlgcloud storage cp gs://{bucket_name}/{yaml_path} .gcloud storage cat gs://{bucket_name}/{yaml_path}op_action_namenotegcloud storage cp gs://{bucket_name}/{asset_path} .GCS_BUCKETgcloud composer environments list \
--locations=us-central1 \
--format="table(name,location,state)"gcloud composer environments describe {env_name} \
--location {region} \
--format="value(config.dagGcsPrefix)"gcloud composer environments run {env_name} \
--location {region} \
dags listgcloud composer environments run {env_name} \
--location {region} \
dags list-runs -- -d {dag_id} --no-backfillgcloud composer environments run {env_name} \
--location {region} \
tasks states-for-dag-run -- -d {dag_id} -r {run_id}gcloud composer environments run {env_name} \
--location {region} \
tasks state -- {dag_id} {task_id} {execution_date}gcloud logging read 'resource.type="cloud_composer_environment" AND resource.labels.environment_name="{env_name}" AND labels.dag_id="{dag_id}" AND severity>=ERROR' \
--limit=25 \
--format="table(timestamp,severity,labels.task_id,textPayload)"gcloud logging read 'resource.type="cloud_composer_environment" AND resource.labels.environment_name="{env_name}" AND log_id("airflow-scheduler") AND severity>=ERROR' \
--limit=25 \
--format="table(timestamp,severity,textPayload)"gcloud storage cp gs://{bucket_name}/dags/{dag_file}.py .gcloud storage cp gs://{bucket_name}/{path_to_file} .gcloud logging readgcloud logging read 'resource.type="cloud_composer_environment" AND resource.labels.environment_name="{env_name}" AND log_id("airflow-scheduler") AND textPayload=~"Run .* of .* has timed-out"' --limit=10gcloud logging read 'resource.type="cloud_composer_environment" AND resource.labels.environment_name="{env_name}" AND log_id("airflow-scheduler") AND textPayload=~"Task requeue attempts exceeded max; marking failed"' --limit=10[celery]worker_concurrencygcloud logging read 'resource.type="cloud_composer_environment" AND resource.labels.environment_name="{env_name}" AND log_id("airflow-scheduler") AND textPayload=~"Task stuck in queued; will try to requeue"' --limit=10gcloud logging read 'resource.type="cloud_composer_environment" AND resource.labels.environment_name="{env_name}" AND (log_id("airflow-worker") OR log_id("airflow-k8s-worker")) AND textPayload:"airflow/providers/google/cloud/operators/bigquery.py" AND textPayload:"Task failed with exception" AND severity=ERROR' --limit=10Job ID: ...job_heartbeat_secscheduler_zombie_task_thresholdgcloud logging read 'resource.type="cloud_composer_environment" AND resource.labels.environment_name="{env_name}" AND log_id("airflow-scheduler") AND (textPayload:"Detected zombie job:" OR textPayload:"Detected a task instance without a heartbeat:")' --limit=10gcloud logging read 'resource.type="cloud_composer_environment" AND resource.labels.environment_name="{env_name}" AND (log_id("airflow-worker") OR log_id("airflow-k8s-worker")) AND textPayload:"Pod ephemeral local storage usage exceeds the total limit of containers"' --limit=10