Soluciona problemas de tareas de Airflow y ejecuciones de DAG con el agente de Managed Airflow

El agente de Managed Airflow puede ayudarte a comprender, diagnosticar y resolver problemas con las tareas de Airflow y las ejecuciones de DAG fallidas.

Antes de comenzar

  • La API de Conversational Analytics que ejecuta el agente de Managed Airflow tiene su propia política de residencia de datos. Es posible que tu conversación se gestione en una región diferente a la ubicación de tu entorno.

Investiga las tareas de Airflow o las ejecuciones de DAG fallidas

Para investigar una tarea de Airflow o una ejecución de DAG fallida, haz lo siguiente:

  1. En la Cloud de Confiance consola, ve a la página Entornos.

    Ir a Entornos

  2. Selecciona un entorno para ver sus detalles.

  3. En la página Detalles del entorno, ve a la pestaña DAGs.

  4. Haz clic en el nombre de un DAG.

  5. En la página Detalles del DAG, ve a la pestaña Historial de ejecución.

  6. Busca una ejecución de DAG fallida. Puedes investigar una ejecución de DAG completa o una tarea fallida específica:

    • Para investigar una ejecución de DAG, haz lo siguiente:

      1. Haz clic en Investigar junto al nombre de la ejecución de DAG fallida.

      2. En el diálogo Investigar la falla de la ejecución del DAG, haz clic en Investigar.

    • Para investigar una tarea de Airflow, haz lo siguiente:

      1. Haz clic en el nombre de la ejecución de DAG fallida para mostrar una lista de tareas.

      2. En la columna Estado de la tarea de Airflow fallida, haz clic en Investigar.

      3. En el diálogo Investigar la falla de la tarea, haz clic en Investigar.

  7. Se abrirá el panel Preguntar al agente y el agente de Managed Airflow comenzará a investigar la falla de la ejecución del DAG. Espera hasta que el agente termine el análisis y, luego, revisa el informe de diagnóstico, que consta de varias secciones:

    • Problema describe la causa raíz del problema.
    • Evidencia apunta a artefactos específicos que respaldan las conclusiones del agente.
    • Recomendación proporciona pasos específicos para abordar el problema.

Ejemplo de investigación

En este ejemplo, se muestra un proceso de análisis de una tarea con errores.

  1. En el panel Monitoring > DAG Statistics, observa las ejecuciones de DAG fallidas:

    En el gráfico Ejecuciones de DAG completadas del panel de Monitoring, se muestran varias ejecuciones de DAG con errores.
    Figura 1. Gráfico de ejecuciones de DAG completadas (haz clic para ampliar)
  2. Navega a la pestaña DAGs. La columna Failed runs (1h) muestra que el DAG create_large_txt_file_print_logs tuvo varias ejecuciones fallidas en la última hora. Haz clic en el nombre del DAG.

    En la lista de DAGs, se muestran las ejecuciones fallidas del DAG create_large_txt_file_print_logs.
    Figura 2. Lista de DAGs con estadísticas de ejecución de DAG (haz clic para ampliar)
  3. Haz clic en una de las ejecuciones de DAG fallidas y, luego, en Investigar junto a la entrada de la tarea de Airflow fallida.

    La lista de tareas en un DAG muestra una tarea de Airflow fallida con un botón de investigación junto a ella.
    Figura 3. Lista de tareas en los DAGs fallidos (haz clic para ampliar)
  4. Espera hasta que el agente complete su informe.

  5. Revisa el informe de diagnóstico. En este ejemplo en particular, la tarea falló sin generar registros, pero el agente de Managed Airflow pudo encontrar la causa de la falla en los registros del programador de Airflow, en los que la tarea se finalizó como 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. Por último, verifica las recomendaciones propuestas. El agente de Managed Airflow resume la evidencia y proporciona recomendaciones para solucionar el problema. En este ejemplo, la tarea falló porque un trabajador de Airflow no tenía suficientes recursos para procesarla. Esto se respalda con la evidencia de que el Pod del trabajador se reinició varias veces con un error de OOM y que el programador finalizó la tarea como una tarea 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.
    

¿Qué sigue?