관리형 Airflow 에이전트를 사용하면 실패한 Airflow 태스크 및 DAG 실행 문제를 파악, 진단, 해결할 수 있습니다.
시작하기 전에
- 관리형 Airflow 에이전트를 실행하는 Conversational Analytics API에는 자체 데이터 레지던시 정책이 있습니다. 대화가 환경 위치와 다른 리전에서 처리될 수 있습니다.
실패한 Airflow 태스크 또는 DAG 실행 조사
실패한 Airflow 태스크 또는 DAG 실행을 조사하려면 다음 단계를 따르세요.
Cloud de Confiance 콘솔에서 환경 페이지로 이동합니다.
환경을 선택해 세부정보를 표시합니다.
환경 세부정보 페이지에서 DAG 탭으로 이동합니다.
DAG 이름을 클릭합니다.
DAG 세부정보 페이지에서 실행 기록 탭으로 이동합니다.
실패한 DAG 실행을 찾습니다. 전체 DAG 실행 또는 특정 실패한 태스크를 조사할 수 있습니다.
DAG 실행을 조사하려면 다음 단계를 따르세요.
실패한 DAG 실행 이름 옆에 있는 조사를 클릭합니다.
DAG 실행 실패 조사 대화상자에서 조사 를 클릭합니다.
Airflow 태스크를 조사하려면 다음 단계를 따르세요.
실패한 DAG 실행 이름을 클릭하여 태스크 목록을 표시합니다.
실패한 Airflow 태스크의 상태 열에서 조사를 클릭합니다.
태스크 실패 조사 대화상자에서 조사 를 클릭합니다.
에이전트에게 문의 패널이 열리고 Managed Airflow 에이전트가 DAG 실행 실패 조사를 시작합니다. 에이전트가 분석을 완료할 때까지 기다린 후 진단 보고서를 검토합니다. 진단 보고서는 여러 섹션으로 구성되어 있습니다.
- 문제 는 문제의 근본 원인을 설명합니다.
- 증거 는 에이전트의 결론을 뒷받침하는 특정 아티팩트를 가리킵니다.
- 권장사항 은 문제를 해결하기 위한 구체적인 단계를 제공합니다.
조사 예시
이 예시에서는 실패한 태스크를 분석하는 프로세스를 보여줍니다.
모니터링 > DAG 통계 대시보드에서 실패한 DAG 실행을 관찰합니다.
그림 1. 완료된 DAG 실행 그래프 (확대하려면 클릭) DAG 탭으로 이동합니다. 실패한 실행 (1시간) 열에는 지난 1시간 동안
create_large_txt_file_print_logsDAG가 여러 번 실패한 것으로 표시됩니다. DAG 이름을 클릭합니다.
그림 2. DAG 실행 통계가 포함된 DAG 목록 (확대하려면 클릭) 실패한 DAG 실행 중 하나를 클릭한 후 실패한 Airflow 태스크 항목 옆에 있는 조사를 클릭합니다.
그림 3. 실패한 DAG의 태스크 목록 (확대하려면 클릭) 에이전트가 보고서를 완료할 때까지 기다립니다.
진단 보고서를 검토합니다. 이 특정 예시에서는 태스크가 로그를 생성하지 않고 실패했지만 관리형 Airflow 에이전트는 Airflow 스케줄러 로그에서 실패 원인을 찾을 수 있었습니다. 여기서 태스크는 좀비로 종료되었습니다.
### **1. Problem** The task `create_huge_file` in DAG `dag_simulation` failed because the Airflow worker executing it ran out of memory (OOM). This caused the task container or process to be abruptly terminated, preventing it from sending heartbeats to the scheduler. As a result, the scheduler detected it as a zombie task and marked it as failed. ### **2. Evidence** * **Scheduler Log (Zombie Detection)**: Detected a task instance without a heartbeat: filepath='dag-simulation.py' bundle_name='dags-folder' bundle_version=None msg="{'DAG Id': 'dag_simulation', 'Task Id': 'create_huge_file', 'Run Id': 'manual__2026-11-25T12:42:50.190250+00:00', 'Hostname': 'airflow-worker-2lxm2', 'External Executor Id': 'cfc98619-0de6-4699-96e6-7ba8a5a581aa'}" * ...마지막으로 제안된 권장사항을 확인합니다. Managed Airflow 에이전트는 증거를 요약하고 문제를 해결하기 위한 권장사항을 제공합니다. 이 예시에서는 Airflow 작업자가 태스크를 처리할 리소스가 충분하지 않아 태스크가 실패했습니다. 이는 작업자 Pod가 OOM 오류로 여러 번 다시 시작되고 태스크가 스케줄러에 의해 좀비 태스크로 종료되었다는 증거로 뒷받침됩니다.
### **3. Recommendation** To resolve this issue, you must prevent the task from consuming unbound memory. Depending on your workflow: * **Fix Code Logic (Highly Recommended)**: Avoid loading large datasets completely into worker memory. Implement chunk-based processing or streaming, or set up explicit safety limits. For example, if you need to limit memory allocation or process in bounded batches, do not keep references to old chunks in memory: ... * **Scale Worker Memory**: If processing massive datasets in memory is unavoidable, consider upgrading the resource limits (RAM/CPU) of your Airflow worker pools or offloading the heavy processing step to external services.