Résoudre les problèmes liés aux tâches et aux exécutions de DAG Airflow avec l'agent Managed Airflow

L'agent Managed Airflow peut vous aider à comprendre, diagnostiquer et résoudre les problèmes liés aux tâches et aux exécutions de DAG Airflow ayant échoué.

Avant de commencer

  • L'API Conversational Analytics qui exécute l'agent Managed Airflow possède sa propre règle de résidence des données. Votre conversation est susceptible d'être traitée dans une région distincte de celle où est déployé votre environnement.

Examiner les tâches ou les exécutions de DAG Airflow ayant échoué

Pour examiner une tâche ou une exécution de DAG Airflow ayant échoué :

  1. Dans la console Cloud de Confiance , accédez à la page Environnements.

    Accéder à la page Environnements

  2. Sélectionnez un environnement pour afficher ses détails.

  3. Sur la page Détails de l'environnement, accédez à l'onglet DAG.

  4. Cliquez sur le nom d'un DAG.

  5. Sur la page Détails du DAG, accédez à l'onglet Historique des exécutions.

  6. Recherchez une exécution de DAG ayant échoué. Vous pouvez examiner l'exécution d'un DAG entier ou une tâche spécifique ayant échoué :

    • Pour examiner une exécution de DAG :

      1. Cliquez sur  > Examiner à côté du nom de l'exécution du DAG ayant échoué.

      2. Dans la boîte de dialogue Examiner l'échec de l'exécution du DAG, cliquez sur Examiner.

    • Pour examiner une tâche Airflow :

      1. Cliquez sur le nom de l'exécution du DAG ayant échoué pour afficher la liste des tâches.

      2. Dans la colonne État de la tâche Airflow ayant échoué, cliquez sur  Examiner.

      3. Dans la boîte de dialogue Examiner l'échec de la tâche, cliquez sur Examiner.

  7. Le panneau Demander à l'agent s'ouvre et l'agent Managed Airflow commence à examiner l'échec de l'exécution du DAG. Attendez que l'agent ait terminé l'analyse, puis examinez le rapport de diagnostic, qui se compose de plusieurs sections :

    • Problème décrit la cause racine du problème.
    • Les preuves pointent vers des artefacts spécifiques qui soutiennent les conclusions de l'agent.
    • La section Recommandation fournit des étapes spécifiques pour résoudre le problème.

Exemple d'investigation

Cet exemple montre comment analyser une tâche qui échoue.

  1. Dans le tableau de bord Surveillance > Statistiques du DAG, observez les exécutions de DAG en échec :

    Le graphique "Exécutions DAG terminées" du tableau de bord "Surveillance" affiche plusieurs exécutions DAG ayant échoué.
    Figure 1. Graphique des exécutions de DAG terminées (cliquez pour agrandir)
  2. Accédez à l'onglet DAG. La colonne Exécutions ayant échoué (1 h) indique que le DAG create_large_txt_file_print_logs a connu plusieurs échecs d'exécution au cours de la dernière heure. Cliquez sur le nom du DAG.

    La liste des DAG affiche les exécutions de DAG ayant échoué pour le DAG create_large_txt_file_print_logs.
    Figure 2 : Liste des DAG avec les statistiques d'exécution des DAG (cliquez pour agrandir)
  3. Cliquez sur l'une des exécutions de DAG ayant échoué, puis sur Examiner  à côté de l'entrée de la tâche Airflow ayant échoué.

    La liste des tâches d'un DAG affiche une tâche Airflow ayant échoué avec un bouton "Examiner" à côté.
    Figure 3 : Liste des tâches dans les DAG en échec (cliquez pour agrandir)
  4. Attendez que l'agent termine son rapport.

  5. Examinez le rapport de diagnostic. Dans cet exemple particulier, la tâche a échoué sans générer de journaux, mais l'agent Managed Airflow a pu trouver la cause de l'échec dans les journaux du planificateur Airflow, où la tâche a été arrêtée en tant que 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. Enfin, vérifiez les recommandations proposées. L'agent Managed Airflow résume les preuves et fournit des recommandations pour résoudre le problème. Dans cet exemple, la tâche a échoué, car un nœud de calcul Airflow ne disposait pas de suffisamment de ressources pour la traiter. Cela est confirmé par le fait que le pod de nœud de calcul a été redémarré plusieurs fois avec une erreur OOM et que la tâche a ensuite été arrêtée par le planificateur en tant que tâche 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.
    

Étapes suivantes