Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Puedes usar Cloud Monitoring y Cloud Logging con Cloud Composer.
Cloud Monitoring proporciona visibilidad del rendimiento, el tiempo de actividad y el estado general de las aplicaciones basadas en la nube. Cloud Monitoring recopila y transfiere métricas, eventos y metadatos desde Cloud Composer para generar estadísticas en paneles y gráficos. Puedes usar Cloud Monitoring para comprender el rendimiento el estado de tus entornos de Cloud Composer y las métricas de Airflow.
Logging captura los registros que producen el programador y el trabajador contenedores en el clúster de tu entorno. Estos registros contienen información útil de la dependencia de Airflow y del nivel del sistema para ayudar con la depuración. Para obtener información sobre cómo ver los registros, consulta Visualiza registros de Airflow.
Antes de comenzar
Se requieren los siguientes permisos para acceder a los registros y las métricas para tu entorno de Cloud Composer:
- Acceso de solo lectura a los registros y métricas:
logging.viewer
ymonitoring.viewer
- Acceso de solo lectura a registros, incluidos los registros privados:
logging.privateLogViewer
- Acceso de lectura y escritura a métricas:
monitoring.editor
Para obtener más información sobre otros permisos y roles de Cloud Composer, consulta Control de acceso.
- Acceso de solo lectura a los registros y métricas:
A fin de evitar el registro duplicado, Cloud Logging para Google Kubernetes Engine está inhabilitado.
Cloud Logging produce una entrada para cada estado y evento que ocurre en tu proyecto de Google Cloud. Puedes usar los filtros de exclusión para reducir el volumen de los registros, incluidos los registros que Cloud Logging produce para Cloud Composer.
Si excluyes registros de
jobs.py
, pueden producirse fallas en la verificación de estado y erroresCrashLoopBackOff
. Debes incluir-jobs.py
en los filtros de exclusión para evitar que se excluya.Monitoring no puede trazar los valores de recuento de DAG y tareas que se ejecutan más de una vez por minuto y no trazan métricas para tareas fallidas.
Métricas de entorno
Puedes usar las métricas de entorno para verificar el uso de recursos y el estado de tus entornos de Cloud Composer.
Estado del entorno
Para comprobar el estado de tu entorno, puedes usar la siguiente métrica de estado: composer.googleapis.com/environment/healthy
.
Cloud Composer ejecuta un DAG en funcionamiento llamado airflow_monitoring
,
que se ejecuta según un programa y, además, informa el estado del entorno de la siguiente manera:
- Si la ejecución del DAG de estado activo finaliza correctamente, el estado de estado es
True
. - Si la ejecución del DAG de estado activo falla, el estado es
False
.
El DAG de estado activo se almacena en la carpeta dags/
y se puede ver en la IU de Airflow. La frecuencia y el contenido del DAG de estado activo son inmutables y no deben modificarse. Los cambios en el DAG de estado no persisten.
Verificaciones de dependencias del entorno
Cloud Composer periódicamente comprueba que el entorno pueda alcanzar el servicios necesarios para su funcionamiento y que tenga permisos suficientes para interactuar con ellos. Ejemplos de servicios necesarios para la configuración son Artifact Registry, Cloud Logging y Cloud Monitoring
Las siguientes métricas están disponibles para las verificaciones de dependencias del entorno:
Métrica de dependencia | API | Descripción |
---|---|---|
Cantidad de verificaciones de dependencias | composer.googleapis.com/environment/health/dependency_check_count |
Esta métrica hace un seguimiento de la cantidad de veces que se realizan las verificaciones de accesibilidad. en los servicios necesarios para la operación del entorno. |
Cantidad de verificaciones de permisos de dependencia | composer.googleapis.com/environment/health/dependency_permissions_check_count |
Esta métrica realiza un seguimiento de la cantidad de veces que se realizan verificaciones de permisos en los servicios necesarios para el funcionamiento del entorno. |
Estado de la base de datos
Para comprobar el estado de tu base de datos, puedes usar la siguiente métrica de estado: composer.googleapis.com/environment/database_health
.
El pod de supervisión de Airflow hace ping a la base de datos cada minuto y informa el estado como True
si se puede establecer una conexión de SQL, o False
si no.
Métricas de base de datos
Las siguientes métricas de entorno están disponibles para la base de datos de metadatos de Airflow que usan los entornos de Cloud Composer. Puedes usar estas métricas para supervisar el rendimiento y el uso de recursos de tu instancia de base de datos del entorno.
Por ejemplo, te recomendamos que actualices el tipo de máquina de Cloud SQL de tu entorno si este se acerca a los límites de recursos. O quizás quieras optimizar relacionados con el uso de la base de datos de metadatos de Airflow mediante un limpieza de bases de datos, para mantener el almacenamiento por debajo de cierto umbral.
Métrica de base de datos | API | Descripción |
---|---|---|
Uso de CPU de la base de datos |
composer.googleapis.com/environment/database/cpu/usage_time
|
|
Núcleos de CPU de la base de datos |
composer.googleapis.com/environment/database/cpu/reserved_cores
|
|
Uso de CPU de la base de datos |
composer.googleapis.com/environment/database/cpu/utilization
|
|
Uso de memoria de la base de datos |
composer.googleapis.com/environment/database/memory/bytes_used
|
|
Cuota de memoria de la base de datos |
composer.googleapis.com/environment/database/memory/quota
|
|
Uso de memoria de la base de datos |
composer.googleapis.com/environment/database/memory/utilization
|
|
Uso de disco de la base de datos |
composer.googleapis.com/environment/database/disk/bytes_used
|
|
Cuota de disco de la base de datos |
composer.googleapis.com/environment/database/disk/quota
|
|
Uso de disco de la base de datos |
composer.googleapis.com/environment/database/disk/utilization
|
|
Límite de conexiones de bases de datos |
composer.googleapis.com/environment/database/network/max_connections
|
|
Conexiones de bases de datos |
composer.googleapis.com/environment/database/network/connections
|
|
Base de datos disponible para conmutación por error |
composer.googleapis.com/environment/database/available_for_failover
|
Es True si la instancia de Cloud SQL del entorno está en el nivel alto.
de disponibilidad general y está lista
para la conmutación por error. |
Recuento de solicitudes de conmutación por error automática de la base de datos |
composer.googleapis.com/environment/database/auto_failover_request_count
|
Cantidad total de solicitudes de conmutación por error automática del entorno Instancia de Cloud SQL. |
Métricas del programador
Nombre | API | Descripción |
---|---|---|
Programadores activos |
composer.googleapis.com/environment/active_schedulers
|
Cantidad de instancias activas del programador. |
Métricas del activador
Las siguientes métricas del activador se proporcionan exclusivamente para Cloud Composer:
Nombre | API | Descripción |
---|---|---|
Activadores activos |
composer.googleapis.com/environment/active_triggerers
|
Es la cantidad de instancias de activadores activos. |
Además, las siguientes métricas de Airflow están disponibles a través de Métricas de Cloud Composer:
Nombre | API | Nombre en Airflow | Descripción |
---|---|---|---|
Cantidad total de activadores en ejecución |
composer.googleapis.com/workload/triggerer/num_running_triggers
|
triggers.running
|
La cantidad de activadores en ejecución por instancia del activador. |
Activadores de bloqueo |
composer.googleapis.com/environment/trigger/blocking_count
|
triggers.blocked_main_thread
|
Cantidad de activadores que bloquearon el subproceso principal (probablemente porque no es completamente asíncrono). |
Activadores con errores |
composer.googleapis.com/environment/trigger/failed_count
|
triggers.failed
|
Cantidad de activadores que fallaron con un error antes de poder activar un evento. |
Activadores correctos |
composer.googleapis.com/environment/trigger/succeeded_count
|
triggers.succeeded
|
Cantidad de activadores que activaron al menos un evento. |
Métricas de servidor web
Las siguientes métricas de entorno están disponibles para el servidor web de Airflow que usan los entornos de Cloud Composer. Puedes usar estas métricas para verificar el rendimiento y el uso de recursos de la instancia del servidor web de Airflow de tu entorno.
Por ejemplo, es posible que quieras actualizar el tipo de máquina del servidor web se acerca constantemente a los límites de recursos.
Nombre | API | Descripción |
---|---|---|
Uso de CPU del servidor web |
composer.googleapis.com/environment/web_server/cpu/usage_time
|
|
Cuota de CPU del servidor web |
composer.googleapis.com/environment/web_server/cpu/reserved_cores
|
|
Uso de memoria del servidor web |
composer.googleapis.com/environment/web_server/memory/bytes_used
|
|
Cuota de memoria del servidor web |
composer.googleapis.com/environment/web_server/memory/quota
|
|
Servidores web activos |
composer.googleapis.com/environment/active_webservers
|
Cantidad de instancias activas del servidor web. |
Métricas de DAG
Para ayudarte a supervisar la eficacia de las ejecuciones de tu DAG y, también, identificar tareas que causan una latencia alta, se encuentran disponibles las siguientes métricas de DAG.
Métrica de DAG | API |
---|---|
Cantidad de ejecuciones de DAG |
composer.googleapis.com/workflow/run_count |
Duración de cada ejecución del DAG |
composer.googleapis.com/workflow/run_duration |
Cantidad de ejecuciones de tareas |
composer.googleapis.com/workflow/task/run_count |
Duración de cada ejecución de tarea |
composer.googleapis.com/workflow/task/run_duration |
Cloud Monitoring solo muestra las métricas de las ejecuciones del flujo de trabajo y de tareas completadas (tengan éxito o fallen). Sin datos se muestra cuando no hay actividad del flujo de trabajo y, también, cuando hay ejecuciones del flujo de trabajo y de tareas en curso.
Métricas de ejecutor de Celery
Están disponibles las siguientes métricas del ejecutor de Celery. Estas métricas pueden ayudarte a determinar si hay suficientes recursos de trabajador en tu entorno.
Métrica del ejecutor de Celery | API |
---|---|
Cantidad de tareas en la cola |
composer.googleapis.com/environment/task_queue_length |
Cantidad de trabajadores de Celery en línea |
composer.googleapis.com/environment/num_celery_workers |
Métricas de Airflow
Las siguientes métricas de Airflow están disponibles. Estas métricas corresponden a las métricas que proporciona Airflow.
Nombre | API | Nombre en Airflow | Descripción |
---|---|---|---|
Códigos de salida de tareas de Celery distintos de cero |
composer.googleapis.com/environment/celery/execute_command_failure_count
|
celery.execute_command.failure
|
Cantidad de códigos de salida distintos de cero de las tareas de Celery. |
Tiempos de espera de publicación de la tarea de Celery |
composer.googleapis.com/environment/celery/task_timeout_error_count
|
celery.task_timeout_error
|
Cantidad de errores de AirflowTaskTimeout que se produjeron cuando se publicó la tarea en el agente de Celery. |
Duración de la recuperación de DAG serializado |
composer.googleapis.com/environment/collect_db_dag_duration
|
collect_db_dags
|
El tiempo necesario para recuperar todos los DAG serializados de la base de datos. |
Errores de actualización del DAG |
composer.googleapis.com/environment/dag_callback/exception_count
|
dag.callback_exceptions
|
Cantidad de excepciones generadas a partir de devoluciones de llamada de DAG. Cuando esto sucede, significa que una devolución de llamada de DAG no funciona. |
Errores de actualización del DAG |
composer.googleapis.com/environment/dag_file/refresh_error_count
|
dag_file_refresh_error
|
Cantidad de fallas cuando se cargan archivos DAG. |
Tiempo de carga del archivo DAG |
composer.googleapis.com/environment/dag_processing/last_duration
|
dag_processing.last_duration.<dag_file>
|
El tiempo necesario para cargar un archivo DAG específico. |
Tiempo transcurrido desde que se procesó el archivo DAG |
composer.googleapis.com/environment/dag_processing/last_run_elapsed_time
|
dag_processing.last_run.seconds_ago.<dag_file>
|
Segundos desde la última vez que se procesó un archivo DAG. |
Recuento de bloqueos de DagFileProcessorManager |
composer.googleapis.com/environment/dag_processing/manager_stall_count
|
dag_processing.manager_stalls
|
Cantidad de procesos DagFileProcessorManager detenidos. |
Errores de análisis de DAG |
composer.googleapis.com/environment/dag_processing/parse_error_count
|
dag_processing.import_errors
|
Cantidad de errores generados cuando se analizan los archivos DAG. |
Ejecuta procesos de análisis de DAG |
composer.googleapis.com/environment/dag_processing/processes
|
dag_processing.processes
|
Cantidad de procesos de análisis de DAG en ejecución. |
Tiempos de espera del procesador |
composer.googleapis.com/environment/dag_processing/processor_timeout_count
|
dag_processing.processor_timeouts
|
Cantidad de procesadores de archivos que se cerraron debido a que tardan demasiado. |
Tiempo que se tardó en analizar e importar todos los archivos DAG |
composer.googleapis.com/environment/dag_processing/total_parse_time
|
dag_processing.total_parse_time
|
El tiempo total necesario para analizar e importar todos los archivos DAG una vez. |
Tamaño actual del paquete de DAG |
composer.googleapis.com/environment/dagbag_size
|
dagbag_size
|
Cantidad de DAG que se encontraron cuando el programador ejecutó un análisis basado en su configuración. |
No se reciben notificaciones por correo electrónico de ANS no cumplidos |
composer.googleapis.com/environment/email/sla_notification_failure_count
|
sla_email_notification_failure
|
Cantidad de intentos de notificación por correo electrónico omitidos del ANS. |
Cómo abrir ranuras en el ejecutor |
composer.googleapis.com/environment/executor/open_slots
|
executor.open_slots
|
Cantidad de ranuras abiertas en el ejecutor. |
Tareas en cola en el ejecutor |
composer.googleapis.com/environment/executor/queued_tasks
|
executor.queued_tasks
|
Cantidad de tareas en cola en el ejecutor. |
Cómo ejecutar tareas en el ejecutor |
composer.googleapis.com/environment/executor/running_tasks
|
executor.running_tasks
|
Cantidad de tareas en ejecución en el ejecutor. |
Éxitos o errores de las instancias de tareas |
composer.googleapis.com/environment/finished_task_instance_count
|
ti_failures , ti_successes
|
Aciertos o errores generales de las instancias de la tarea. |
Trabajos iniciados o finalizados |
composer.googleapis.com/environment/job/count
|
<job_name>_start , <job_name>_end
|
Cantidad de trabajos iniciados y finalizados, como SchedulerJob o LocalTaskJob. |
Fallas de señal de monitoreo de funcionamiento del trabajo |
composer.googleapis.com/environment/job/heartbeat_failure_count
|
<job_name>_heartbeat_failure
|
Cantidad de señales de monitoreo de funcionamiento con errores para un trabajo. |
Tareas creadas por operador |
composer.googleapis.com/environment/operator/created_task_instance_count
|
task_instance_created-<operator_name>
|
Cantidad de instancias de tareas creadas para un operador determinado. |
Ejecuciones del operador |
composer.googleapis.com/environment/operator/finished_task_instance_count
|
operator_failures_<operator_name> , operator_successes_<operator_name>
|
Cantidad de instancias de tareas finalizadas por operador |
Horarios disponibles en el grupo |
composer.googleapis.com/environment/pool/open_slots
|
pool.open_slots.<pool_name>
|
Cantidad de espacios disponibles en el grupo. |
Ranuras en cola del grupo |
composer.googleapis.com/environment/pool/queued_slots
|
pool.queued_slots.<pool_name>
|
Cantidad de ranuras en cola en el grupo. |
Ejecución de ranuras en el grupo |
composer.googleapis.com/environment/pool/running_slots
|
pool.running_slots.<pool_name>
|
Cantidad de ranuras en ejecución en el grupo. |
Faltan tareas en el grupo |
composer.googleapis.com/environment/pool/starving_tasks
|
pool.starving_tasks.<pool_name>
|
Cantidad de tareas sin recursos en el grupo. |
Tiempo dedicado a la sección crítica del programador |
composer.googleapis.com/environment/scheduler/critical_section_duration
|
scheduler.critical_section_duration
|
Es el tiempo dedicado a la sección crítica del bucle del programador. Solo un programador puede ingresar a este bucle a la vez. |
Fallas críticas de bloqueo de sección |
composer.googleapis.com/environment/scheduler/critical_section_lock_failure_count
|
scheduler.critical_section_busy
|
Recuento de las veces que un proceso del programador trató de obtener un bloqueo en la sección crítica (necesaria para enviar tareas al ejecutor) y lo encontró bloqueado por otro proceso. |
Tareas finalizadas de forma externa |
composer.googleapis.com/environment/scheduler/task/externally_killed_count
|
scheduler.tasks.killed_externally
|
Cantidad de tareas que se finalizaron de forma externa. |
Tareas huérfanas |
composer.googleapis.com/environment/scheduler/task/orphan_count
|
scheduler.orphaned_tasks.cleared , scheduler.orphaned_tasks.adopted
|
Cantidad de tareas huérfanas que borró o adoptó el programador. |
Ejecutar/dejar/dejar/ejecutar tareas |
composer.googleapis.com/environment/scheduler/tasks
|
scheduler.tasks.running , scheduler.tasks.starving , scheduler.tasks.executable
|
Cantidad de tareas en ejecución, sin restricciones o ejecutables. |
Señales de monitoreo de funcionamiento del programador |
composer.googleapis.com/environment/scheduler_heartbeat_count
|
scheduler_heartbeat
|
Señales de monitoreo de funcionamiento del programador |
Notificaciones de devolución de llamada de ANS fallidas |
composer.googleapis.com/environment/sla_callback_notification_failure_count
|
sla_callback_notification_failure
|
Cantidad de intentos fallidos de notificación de devolución de llamada por incumplimiento del ANS. |
Fallas de excepción en la entrada de sensores inteligentes |
composer.googleapis.com/environment/smart_sensor/exception_failures
|
smart_sensor_operator.exception_failures
|
Cantidad de fallas causadas por una excepción en el bucle de sondeo del sensor inteligente anterior. |
Fallas en la infraestructura de los sensores inteligentes |
composer.googleapis.com/environment/smart_sensor/infra_failures
|
smart_sensor_operator.infra_failures
|
Cantidad de fallas de infraestructura en el bucle de contacto del sensor inteligente anterior. |
Excepciones de toques de sensores inteligentes |
composer.googleapis.com/environment/smart_sensor/poked_exception
|
smart_sensor_operator.poked_exception
|
Cantidad de excepciones en el bucle de contacto del sensor inteligente anterior. |
El sensor inteligente inició tareas correctamente |
composer.googleapis.com/environment/smart_sensor/poked_success
|
smart_sensor_operator.poked_success
|
Cantidad de tareas que el sensor inteligente activó con éxito en el bucle de activación anterior. |
Tareas de toque de sensores inteligentes |
composer.googleapis.com/environment/smart_sensor/poked_tasks
|
smart_sensor_operator.poked_tasks
|
Cantidad de tareas insertadas por el sensor inteligente en el bucle de ataque anterior. |
Instancias de tareas completadas anteriormente |
composer.googleapis.com/environment/task_instance/previously_succeeded_count
|
previously_succeeded
|
Cantidad de instancias de tareas que se completaron correctamente. |
Eliminación de tareas zombi |
composer.googleapis.com/environment/zombie_task_killed_count
|
zombies_killed
|
Cantidad de tareas zombi eliminadas. |
Duración de la ejecución de DAG |
composer.googleapis.com/workflow/dag/run_duration
|
dagrun.duration.success.<dag_id> , dagrun.duration.failed.<dag_id>
|
Es el tiempo que tarda un DagRun en alcanzar el estado de éxito o error. |
Duración de la verificación de dependencia del DAG |
composer.googleapis.com/workflow/dependency_check_duration
|
dagrun.dependency-check.<dag_id>
|
Tiempo que lleva verificar las dependencias del DAG. Esta métrica es diferente de la métrica de dependencias y verificaciones de permisos del entorno, y se aplica a los DAG |
Retraso en la programación de la ejecución de DAG |
composer.googleapis.com/workflow/schedule_delay
|
dagrun.schedule_delay.<dag_id>
|
Tiempo de retraso entre la fecha de inicio programada de DagRun y la fecha de inicio real de DagRun. |
Tareas finalizadas |
composer.googleapis.com/workflow/task_instance/finished_count
|
ti.finish.<dag_id>.<task_id>.<state>
|
Cantidad de tareas completadas en un DAG determinado. |
Duración de la ejecución de la instancia de tarea |
composer.googleapis.com/workflow/task_instance/run_duration
|
dag.<dag_id>.<task_id>.duration
|
Tiempo que lleva completar una tarea. |
Tareas iniciadas |
composer.googleapis.com/workflow/task_instance/started_count
|
ti.start.<dag_id>.<task_id>
|
Cantidad de tareas iniciadas en un DAG determinado. |
Duración en cola de la instancia de tarea |
composer.googleapis.com/workflow/task_instance/queued_duration
|
dag.<dag_id>.<task_id>.queued_duration
|
Tiempo que una tarea permanece en cola antes de pasar al estado En ejecución. |
Tareas quitadas del DAG |
composer.googleapis.com/workflow/task/removed_from_dag_count
|
task_removed_from_dag.<dag_id>
|
Cantidad de tareas que se quitaron de un DAG determinado (es decir, la tarea ya no existe en el DAG). |
Tareas restablecidas en el DAG |
composer.googleapis.com/workflow/task/restored_to_dag_count
|
task_restored_to_dag.<dag_id>
|
Cantidad de tareas restablecidas para un DAG determinado (es decir, la instancia de tarea que antes tenía el estado REMOVED en la base de datos se agrega al archivo DAG). |
Retraso en la programación de tareas |
composer.googleapis.com/workflow/task/schedule_delay
|
dagrun.schedule_delay.<dag_id>
|
Tiempo transcurrido entre la fecha de inicio de la primera tarea y la fecha de inicio esperada. |
Usa Monitoring para entornos de Cloud Composer
Console
Puedes usar el Explorador de métricas para mostrar métricas relacionadas con tus entornos y DAG:
El recurso Cloud Composer Environment contiene métricas para los entornos.
Para mostrar las métricas de un entorno específico, filtra las métricas por la etiqueta
environment_name
. También puedes filtrar por otras etiquetas, como la ubicación del entorno o la versión de la imagen.El recurso Cloud Composer Workflow contiene métricas para DAG.
Para mostrar las métricas de un DAG o una tarea específicos, filtrar métricas según el Etiquetas
workflow_name
ytask_name
. También puedes filtrar por otras etiquetas, como estado de la tarea o nombre del operador de Airflow.
API y gcloud
Puedes crear y administrar paneles personalizados y los widgets a través del
API de Cloud Monitoring y el comando gcloud monitoring dashboards
Para obtener más información, consulta Administra paneles por API.
Para obtener más información sobre los recursos, las métricas y los filtros, consulta la referencia de la API de Cloud Monitoring:
Usa alertas de Cloud Monitoring
Puedes crear políticas de alertas para supervisar los valores de las métricas y recibir notificaciones cuando estas infrinjan una condición.
-
En la consola de Google Cloud, ve a la página notifications Alertas.
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.
- Si aún no creas canales de notificaciones y deseas recibir notificaciones, haz clic en Edit Notification Channels y agrega tus canales de notificaciones. Regresa a la página Alertas después de agregar tus canales.
- En la página Alertas, elige Crear política.
- Para elegir la métrica, expande el menú Seleccionar una métrica y, luego, haz lo siguiente:
- Para limitar el menú a las entradas relevantes, ingresa
Cloud Composer
en la barra de filtros. Si no hay resultados después de que filtres el menú, inhabilita el botón de activación Show only active resources & metrics. - En Tipo de recurso, selecciona Cloud Composer Environment o Cloud Composer Workflow.
- Selecciona una Categoría de métrica y una Métrica. Luego, selecciona Aplicar.
- Para limitar el menú a las entradas relevantes, ingresa
- Haz clic en Siguiente.
- La configuración de la página Configure alert trigger determina cuándo se activa la alerta. Selecciona un tipo de condición y, si es necesario, especifica un umbral. Para obtener más información, consulta Crea políticas de alertas de límite de métrica.
- Haz clic en Siguiente.
- Para agregar notificaciones a tu política de alertas, haz clic en Canales de notificaciones (opcional). En el diálogo, elige uno o más canales de notificaciones del menú y, luego, haz clic en Aceptar.
- Opcional: Actualiza la Duración del cierre automático de incidentes. Este campo determina cuándo Monitoring cierra los incidentes ante la ausencia de datos de métricas.
- Opcional: Haz clic en Documentación y, luego, agrega la información que deseas incluir en un mensaje de notificación.
- Haz clic en Nombre de la alerta y, luego, ingresa un nombre para la política de alertas.
- Haz clic en Crear política.