Habilitar Data Jobs Monitoring para Apache Airflow

Data Jobs Monitoring para Apache Airflow está en Vista previa

Para probar la vista previa de la monitorización Airflow, sigue las instrucciones que se indican a continuación.

Data Jobs Monitoring ofrece una visibilidad del rendimiento y la fiabilidad de los flujos de trabajo ejecutados por los DAG de Apache Airflow.

Requisitos

Configuración

Data Jobs Monitoring admite despliegues de Apache Airflow con apache-airflow-providers-openlineage instalado.

Para empezar, sigue las instrucciones que se indican a continuación.

  1. Instala el proveedor openlineage añadiendo lo siguiente en tu archivo requirements.txt o dondequiera que se gestionen las depedencias de Airflow:

    apache-airflow-providers-openlineage>=1.11.0
    
  2. Configura el proveedor openlineage. La opción más sencilla consiste en configurar las siguientes variables de entorno y ponerlas a disposición de los pods en los que ejecutan planificadores y workers de Airflow:

    OPENLINEAGE_URL=<DD_DATA_OBSERVABILITY_INTAKE>
    OPENLINEAGE_API_KEY=<DD_API_KEY>
    
    • Instala y configura el proveedor openlineage para planificadores y workers de Airflow.
    • Sustituye <DD_DATA_OBSERVABILITY_INTAKE> por https://data-obs-intake..
    • Sustituye <DD_API_KEY> por tu clave de API Datadog válida.

    Opcional:

    • Define AIRFLOW__OPENLINEAGE__NAMESPACE con un nombre único para tu despliegue de Airflow. Esto permite a Datadog separar lógicamente los trabajos de este despliegue de los de otros despliegues de Airflow.
    • Establezca OPENLINEAGE_CLIENT_LOGGING en DEBUG para el cliente OpenLineage y sus módulos hijos. Esto puede ser útil en solucionar problemas durante el Configuración del proveedor openlineage.

    Consulta la documentación oficial configuration-openlineage para ver otras configuraciones compatibles del proveedor openlineage.

  3. Activa una actualización de tus pods de Airflow y espera a que finalicen.

Validación

En Datadog, consulte la página Data Jobs Monitorización para ver un lista de sus ejecuciones de trabajos Airflow después de la configuración.

Requisitos

Configuración

Data Jobs Monitoring es compatible con el despliegue de Apache Airflow con apache-airflow-providers-openlineage instalado.

Para empezar, sigue las instrucciones que se indican a continuación.

  1. Instala el proveedor openlineage añadiendo lo siguiente en tu archivo requirements.txt:

    apache-airflow-providers-openlineage>=1.11.0
    

    Asegúrate de que la versión del proveedor openlineage es compatible con tu archivo de restricciones. Si no se especifica ningún archivo de restricciones en requirements.txt, asegúrate de que exista una compatibilidad con las restricciones predeterminadas de Apache Airflow para tu versión de Airflow. Para obtener orientación sobre cómo especificar las dependencias de Python en requirements.txt, consulta la guía del usuario de Amazon MWAA.

  2. Configura el proveedor openlineage. La opción más sencilla es definir las siguientes variables de entorno en tu script de inicio de Amazon MWAA:

    #!/bin/sh
    
    export OPENLINEAGE_URL=<DD_DATA_OBSERVABILITY_INTAKE>
    export OPENLINEAGE_API_KEY=<DD_API_KEY>
    
    • Sustituye completamente <DD_DATA_OBSERVABILITY_INTAKE> por https://data-obs-intake..
    • Sustituye completamente <DD_API_KEY> por tu clave de API Datadog válida.

    Opcional:

    • Define AIRFLOW__OPENLINEAGE__NAMESPACE con un nombre único para tu despliegue de Airflow. Esto permite a Datadog separar lógicamente los trabajos de este despliegue de los de otros despliegues de Airflow.
    • Establezca OPENLINEAGE_CLIENT_LOGGING en DEBUG para el cliente OpenLineage y sus módulos hijos. Esto puede ser útil en solucionar problemas durante el Configuración del proveedor openlineage.

    Consulta la documentación oficial configuration-openlineage para ver otras configuraciones compatibles del proveedor openlineage.

  3. Despliega tu requirements.txt actualizado y el script de inicio de Amazon MWAA en tu carpeta de Amazon S3 configurada para tu entorno Amazon MWAA.

  4. Asegúrate de que tu rol de ejecución configurado para tu entorno Amazon MWAA tiene los permisos adecuados para requirements.txt y el script de inicio de Amazon MWAA. Esto es necesario si administras tu propio rol de ejecución y es la primera vez que añades esos archivos de respaldo. Si es necesario, consulta la guía oficial de roles de ejecución de Amazon MWAA para ver más detalles.

Validación

En Datadog, consulte la página Data Jobs Monitorización para ver un lista de sus ejecuciones de trabajos Airflow después de la configuración.

Para los clientes de Astronomer que utilizan Astro, Astro ofrece funciones de linaje que dependen del proveedor Airflow OpenLineage. Data Jobs Monitoring depende del mismo proveedor OpenLineage y utiliza el transporte Composite para añadir transporte adicional.

Requisitos

Configuración

  1. Instala el proveedor OpenLineage (apache-airflow-providers-openlineage) 1.11.0 o posterior y openlineage-python 1.23.0 o posterior. Añade lo siguiente a tu archivo requirements.txt dentro de tu proyecto de Astro:

    apache-airflow-providers-openlineage>=1.11.0
    openlineage-python>=1.23.0
    
  2. Para configurar el proveedor OpenLineage, defina las siguientes variables entorno. Puedes Configurar estas variables en tu despliegue de Astronomer utilizando cualquiera de los siguientes métodos:

    OPENLINEAGE__TRANSPORT__TYPE=composite
    OPENLINEAGE__TRANSPORT__TRANSPORTS__DATADOG__TYPE=http
    OPENLINEAGE__TRANSPORT__TRANSPORTS__DATADOG__URL=<DD_DATA_OBSERVABILITY_INTAKE>
    OPENLINEAGE__TRANSPORT__TRANSPORTS__DATADOG__AUTH__TYPE=api_key
    OPENLINEAGE__TRANSPORT__TRANSPORTS__DATADOG__AUTH__API_KEY=<DD_API_KEY>
    OPENLINEAGE__TRANSPORT__TRANSPORTS__DATADOG__COMPRESSION=gzip
    
    • Sustituye <DD_DATA_OBSERVABILITY_INTAKE> por https://data-obs-intake..
    • Sustituye <DD_API_KEY> por tu clave de API Datadog válida.

    Opcional:

    • Define AIRFLOW__OPENLINEAGE__NAMESPACE con un nombre único para tu despliegue de Airflow. Esto permite a Datadog separar lógicamente los trabajos de este despliegue de los de otros despliegues de Airflow.
    • Establece OPENLINEAGE_CLIENT_LOGGING a DEBUG para el cliente OpenLineage y sus módulos hijos a loguear a un nivel de registro DEBUG. Esto puede ser útil para solucionar problemas durante la Configuración de un proveedor OpenLineage.

    Consulte la Guía oficial de Astronomer para gestionar las variables de entorno para un despliegue. Consulte OpenLineage Configuración Reference de Apache Airflow para otras configuraciones compatibles del proveedor OpenLineage.

  3. Activa una actualización de tu despliegue y espera a que finalice.

Validación

En Datadog, consulte la página Data Jobs Monitorización para ver un lista de sus ejecuciones de trabajos Airflow después de la configuración.

Resolución de problemas

check que las variables de OpenLineage entorno están correctamente configuradas en el despliegue de Astronomer.

Nota: Utilizando el archivo .env para agregar las variables entorno no funciona porque las variables sólo se aplican a la local de flujo de aire entorno.

Configuración avanzada

Vincular tus trabajos de Spark con tareas de Airflow

Puedes solucionar de forma más eficiente los problemas de las tareas de Airflow que ejecutan trabajos de Spark conectando la información de ejecución y la telemetría del trabajo de Spark con la tarea de Airflow correspondiente.

Requisitos previos: Actualmente, tus trabajos de Spark se monitorizan a través de Data Jobs Monitoring y se envían a través de SparkSubmitOperator desde tus trabajos de Airflow.

Para ver el vínculo entre la tarea de Airflow y la aplicación Spark que has enviado, sigue los pasos que se indican a continuación:

  1. Configura Airflow para desactivar la carga perezosa de complementos de Airflow definiendo la configuración lazy_load_plugins como False en tu airflow.cfg o exportando la siguiente variable de entorno donde se ejecutan tus planificadores y workers de Airflow:

    export AIRFLOW__CORE__LAZY_LOAD_PLUGINS='False'
    
  2. Actualiza el archivo DAG de tu trabajo de Airflow añadiendo las siguientes configuraciones Spark a tu SparkSubmitOperator, al que envías tu aplicación Spark:

      SparkSubmitOperator(
        conf={
          "spark.openlineage.parentJobNamespace": "{{ macros.OpenLineageProviderPlugin.lineage_job_namespace() }}",
          "spark.openlineage.parentJobName": "{{ macros.OpenLineageProviderPlugin.lineage_job_name(task_instance) }}",
          "spark.openlineage.parentRunId": "{{ macros.OpenLineageProviderPlugin.lineage_run_id(task_instance) }}",
        },
      )
    

    Para ver definiciones de las macros referenciadas, consulta Macros de trabajo y ejecución de linaje.

  3. Una vez que hayas vuelto a desplegar tu entorno Airflow con la configuración lazy_load_plugins actualizada y el archivo DAG actualizado, y que tu DAG Airflow se haya vuelto a ejecutar, ve a la página Data Jobs Monitoring. A continuación, podrás encontrar tu última ejecución de un trabajo de Airflow y ver un SpanLink en la traza (trace) de ejecución del trabajo de Airflow para la traza de la aplicación Spark lanzada. Esto permite solucionar los problemas de Airflow o Spark en un solo lugar.

Referencias adicionales

PREVIEWING: sadhbh-a/gcp_guide