GCP ComposerV2 archivos de registro faltantes
Desplegamos GCP ComposerV2 con la versión más reciente de Airflow. Funciona perfectamente. Pero de vez en cuando, la DAG predefinida “airflow_monitoring” se bloquea.
Aquí están los registros del problema:
*** No se encuentra el archivo de registro: gs://********/logs/airflow_monitoring/echo/2021-12-14T12:36:55+00:00/1.log. Es posible que la tarea no se haya ejecutado o que el trabajador que la ejecutó haya finalizado de forma anormal (por ejemplo, fue expulsado).
*** 404 GET https://storage.googleapis.com/download/storage/v1/b/********/o/logs%2Fairflow_monitoring%2Fecho%2F2021-12-14T12%3A36%3A55%2B00%3A00%2F1.log?alt=media: No existe dicho objeto: ********/logs/airflow_monitoring/echo/2021-12-14T12:36:55+00:00/1.log: (‘Error en la solicitud con el código de estado’, 404, ‘Se esperaba’, <httpstatus.ok: 200=””>, <httpstatus.partial_content: 206=””>)
No cambiamos nada, este problema ha ocurrido aleatoriamente.
Aquí está el código de la DAG predefinida “airflow_monitoring”:
"""Un DAG de monitorización de vitalidad para comprobar si composer.googleapis.com/environment/healthy está activo."""
import airflow
from airflow import DAG
from airflow.operators.bash_operator import BashOperator
from datetime import timedelta
default_args = {
'start_date': airflow.utils.dates.days_ago(0),
'retries': 1,
'retry_delay': timedelta(minutes=5)
}
dag = DAG(
'airflow_monitoring',
default_args=default_args,
description='DAG de monitorización de vitalidad',
schedule_interval=None,
dagrun_timeout=timedelta(minutes=20))
# priority_weight tiene tipo int en la base de datos de Airflow, utiliza el máximo.
t1 = BashOperator(
task_id='echo',
bash_command='echo test',
dag=dag,
depends_on_past=False,
priority_weight=2**31-1)
</httpstatus.partial_content:></httpstatus.ok:>
davy.ai
Problema con el DAG predefinido “airflow_monitoring” en GCP ComposerV2 con la versión más reciente de Airflow
Descripción del problema
El problema ocurre cuando el DAG predefinido “airflow_monitoring” se bloquea de forma aleatoria. Los registros del problema indican que no se encuentra el archivo de registro y es posible que la tarea no se haya ejecutado o que el worker que lo ejecuta haya finalizado de forma anormal (por ejemplo, fue expulsado).
Se muestra el siguiente mensaje:
– “No se encuentra el archivo de registro: gs://********/logs/airflow_monitoring/echo/2021-12-14T12:36:55+00:00/1.log”
– “Es posible que la tarea no se haya ejecutado o que el worker que la ejecuta haya finalizado de forma anormal (por ejemplo, fue expulsado)”
– “404 GET https://storage.googleapis.com/download/storage/v1/b/********/o/logs%2Fairflow_monitoring%2Fecho%2F2021-12-14T12%3A36%3A55%2B00%3A00%2F1.log?alt=media: No existe dicho objeto: ********/logs/airflow_monitoring/echo/2021-12-14T12:36:55+00:00/1.log: (‘Request failed with status code’, 404, ‘Expected one of’, <httpstatus.ok: 200=””>, <httpstatus.partial_content: 206=””>)”
Código del DAG predefinido “airflow_monitoring”
Aquí está el código del DAG predefinido “airflow_monitoring” que se ejecuta en el entorno de GCP ComposerV2:
Solución
El problema con el DAG predefinido “airflow_monitoring” en GCP ComposerV2 puede ocurrir debido a diversas razones. Algunas de las soluciones que se pueden implementar son las siguientes:
Finalmente, se recomienda probar exhaustivamente el DAG antes de implementarlo en el entorno de producción. Esto puede ayudar a prevenir este tipo de problemas.</httpstatus.partial_content:></httpstatus.ok:>