Memecahkan masalah tugas Airflow dan eksekusi DAG dengan Managed Airflow Agent

Managed Airflow Agent dapat membantu Anda memahami, mendiagnosis, dan menyelesaikan masalah terkait kegagalan tugas Airflow dan DAG berjalan.

Sebelum memulai

  • Conversational Analytics API yang menjalankan Managed Airflow Agent memiliki kebijakan residensi datanya sendiri. Percakapan Anda mungkin ditangani di region yang berbeda dengan lokasi lingkungan Anda.

Menyelidiki tugas Airflow atau operasi DAG yang gagal

Untuk menyelidiki tugas Airflow atau operasi DAG yang gagal:

  1. Di konsol Cloud de Confiance , buka halaman Environments.

    Buka Environments

  2. Pilih lingkungan untuk melihat detailnya.

  3. Di halaman Environment details, buka tab DAGs.

  4. Klik nama DAG.

  5. Di halaman DAG details, buka tab Run history.

  6. Temukan operasi DAG yang gagal. Anda dapat menyelidiki seluruh DAG run atau tugas tertentu yang gagal:

    • Untuk menyelidiki operasi DAG:

      1. Klik Selidiki di samping nama eksekusi DAG yang gagal.

      2. Dalam dialog Selidiki kegagalan eksekusi DAG, klik Selidiki.

    • Untuk menyelidiki tugas Airflow:

      1. Klik nama eksekusi DAG yang gagal untuk menampilkan daftar tugas.

      2. Di kolom State tugas Airflow yang gagal, klik Investigate.

      3. Dalam dialog Investigate task failure, klik Investigate.

  7. Panel Ask agent akan terbuka dan Managed Airflow Agent mulai menyelidiki kegagalan DAG run. Tunggu hingga agen menyelesaikan analisis, lalu tinjau laporan diagnostik, yang terdiri dari beberapa bagian:

    • Masalah menjelaskan penyebab utama masalah.
    • Bukti mengarah pada artefak tertentu yang mendukung kesimpulan agen.
    • Rekomendasi memberikan langkah-langkah spesifik untuk mengatasi masalah.

Contoh penyelidikan

Contoh ini menunjukkan proses menganalisis tugas yang gagal.

  1. Di dasbor Monitoring > DAG Statistics, amati operasi DAG yang gagal:

    Grafik Operasi DAG selesai di dasbor Monitoring menampilkan
    beberapa operasi DAG yang gagal
    Gambar 1. Grafik operasi DAG selesai (klik untuk memperbesar)
  2. Buka tab DAG. Kolom Failed runs (1h) menunjukkan bahwa DAG create_large_txt_file_print_logs mengalami beberapa operasi yang gagal dalam satu jam terakhir. Klik nama DAG.

    Daftar DAG menampilkan operasi DAG yang gagal untuk
    DAG create_large_txt_file_print_logs
    Gambar 2. Daftar DAG dengan statistik pengoperasian DAG (klik untuk memperbesar)
  3. Klik salah satu proses DAG yang gagal, lalu klik Selidiki di samping entri tugas Airflow yang gagal.

    Daftar tugas dalam DAG menampilkan tugas Airflow yang gagal dengan tombol selidiki di sampingnya
    Gambar 3. Daftar tugas di DAG yang gagal (klik untuk memperbesar)
  4. Tunggu hingga agen menyelesaikan laporannya.

  5. Tinjau laporan diagnostik. Dalam contoh khusus ini, tugas gagal tanpa menghasilkan log, tetapi Managed Airflow Agent dapat menemukan penyebab kegagalan dalam log penjadwal Airflow, tempat tugas dihentikan sebagai zombie:

    ### **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'}"
    
    *  ...
    
  6. Terakhir, periksa rekomendasi yang diusulkan. Managed Airflow Agent merangkum bukti dan memberikan rekomendasi untuk memperbaiki masalah. Dalam contoh ini, tugas gagal karena pekerja Airflow tidak memiliki cukup resource untuk memprosesnya. Hal ini didukung oleh bukti bahwa Pod pekerja dimulai ulang beberapa kali dengan error OOM, dan tugas kemudian dihentikan oleh penjadwal sebagai tugas zombie.

    ### **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.
    

Langkah berikutnya