Supervisar entornos con Cloud Monitoring

Puedes usar Cloud Monitoring y Cloud Logging con Cloud Composer.

La supervisión proporciona visibilidad en el rendimiento, el tiempo de actividad y el estado general de las aplicaciones en la nube. Cloud Monitoring recopila y transfiere métricas, eventos y metadatos de Cloud Composer para generar estadísticas a través de paneles y gráficos. Puedes usar Monitoring para conocer el rendimiento y el estado de tus entornos de Cloud Composer y de las métricas de Airflow.

Logging captura los registros que producen los contenedores de trabajador y programador. Los 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 acerca de cómo ver los registros, consulta la sección sobre cómo ver los registros de Airflow.

Antes de comenzar

  • Se requieren los siguientes permisos para acceder a los registros y las métricas de tu entorno de Cloud Composer:

    • Acceso de solo lectura a los registros y métricas: logging.viewer y monitoring.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, consulta Control de acceso de Cloud Composer.

  • 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 a fin de reducir el volumen de los registros, incluidos los registros que Cloud Logging produce para Cloud Composer. Ten en cuenta que si excluyes registros de jobs.py, pueden producirse fallas en la verificación de estado y CrashLoopBackOff errores. Debes incluir -jobs.py en los filtros de exclusión para evitar que se excluya.

  • Monitoring no puede trazar los valores de recuento para los flujos de trabajo y las tareas que se ejecutan más de una vez por minuto y, actualmente, no traza las métricas de las tareas fallidas.

Tipos de recursos y métricas

Puedes examinar las métricas de Airflow en Monitoring para flujos de trabajo (DAG) y el ejecutor de Celery.

Entorno

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 con el nombre airflow_monitoring cada 5 minutos e informa el estado del entorno de la siguiente manera:

  • Cuando la ejecución del DAG finaliza correctamente, el estado es True.
  • Si la ejecución del DAG falla, el estado es False.
  • Si la ejecución del DAG no finaliza, Cloud Composer sondea el estado del DAG cada 5 minutos e informa False si se agota el tiempo de espera de una hora.

El DAG en funcionamiento se almacena en la carpeta dags/ y se puede ver en la IU web de Airflow. La frecuencia y el contenido del DAG en funcionamiento son inmutables y no deben modificarse, ya que los cambios no se conservarán.

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 de Cloud Composer hace ping a la base de datos cada minuto e informa el estado como True si se puede establecer una conexión de SQL, o False si no.

Flujos de trabajo

Para ayudarte a supervisar la eficacia de las ejecuciones de tu flujo de trabajo y, también, identificar tareas demoradas que causan una latencia prolongada, se encuentran disponibles las siguientes métricas de flujo de trabajo:

Métrica de flujo de trabajo API
Cantidad de ejecuciones del flujo de trabajo composer.googleapis.com/workflow/run_count
Duración de cada ejecución del flujo de trabajo composer.googleapis.com/workflow/run_duration
Cantidad de ejecuciones de tareas composer.googleapis.com/workflow/task/run_count
Duración de cada 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.

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

La documentación de Cloud Monitoring también incluye la siguiente información sobre las métricas y los recursos de Cloud Composer:

  • Para obtener la lista de métricas de uso que Cloud Composer informa a Cloud Monitoring, consulta la lista de métricas.
  • Para obtener detalles sobre el tipo de recurso cloud_composer_environment, consulta los tipos de recursos supervisados en la documentación de Cloud Monitoring.

Usa Monitoring en entornos de Cloud Composer

Puedes acceder a Monitoring desde la consola de Monitoring o con la API de Monitoring.

Console

  1. Después de crear un entorno de Cloud Composer, ve a la consola de Monitoring para ver los datos de supervisión del entorno.
  2. Cuando accedes por primera vez a Monitoring, se te pedirá que crees un Lugar de trabajo y selecciones un proyecto.
  3. La consola de Monitoring aparece después de configurar el lugar de trabajo.

  4. Selecciona Recursos > Explorador de métricas (Resources > Metrics Explorer) y elige Cloud Composer:
    1. Haz clic en la casilla de entrada Buscar tipo de recurso y métrica (Find resource type and metric) para ver la lista desplegable de recursos.
    2. Selecciona el recurso Cloud Composer Environment o Cloud Composer Workflow. También puedes ingresar cloud_composer_environment o cloud_composer_workflow en la casilla.
  5. Haz clic de nuevo en la casilla de entrada y selecciona una métrica de la lista desplegable. Si colocas el cursor sobre el nombre de la métrica, se muestra la información sobre esta.
  6. La información del entorno de Cloud Composer se encuentra en la etiqueta workflow_name: workflow_name=environment.workflow. Para ver las métricas del flujo de trabajo de un entorno específico, agrega un filtro:
    1. Crea un filtro para workflow_name.
    2. Filtra el prefijo usando la expresión regular =~ "your-environment-name.*" con el nombre del entorno del que deseas ver las métricas del flujo de trabajo. Para obtener información sobre cómo usar la expresión regular en las etiquetas de filtro, consulta Filtros.
  7. Haz clic en Guardar gráfico.

    También puedes agrupar por etiquetas de métrica, realizar agregaciones y seleccionar opciones de visualización de gráficos. Consulta la documentación de Monitoring.

API

Puedes usar la API timeSeries.list de Monitoring para capturar y enumerar las métricas definidas por una expresión filter. Usa la plantilla Prueba esta API (Try this API) en la página de la API para enviar una solicitud a la API y mostrar la respuesta.

Compila un panel personalizado de Monitoring

Puedes compilar un panel personalizado de Monitoring que muestre gráficos de las métricas seleccionadas para tu entorno de Cloud Composer.

  1. En Google Cloud Console, selecciona Monitoring o usa el siguiente botón:

    Ir a Monitoring

  2. Selecciona Paneles > Crear panel.

  3. En el panel sin título, haz clic en Agregar gráfico y créalo:

    1. En la ventana Agregar gráfico, selecciona Cloud Composer Environment como tipo de recurso.
    2. Selecciona una o más métricas y propiedades del gráfico.
    3. Confirma o escribe un nuevo título de gráfico y haz clic en Guardar.
    4. Agrega gráficos adicionales a tu panel, según sea necesario, y haz clic en Guardar.

    En el siguiente ejemplo, se muestra la métrica Task Duration. Esta métrica traza la duración de las tareas activas en tus flujos de trabajo, lo cual resulta útil para mejorar el rendimiento.

  4. Para ver el panel, haz clic en el título en el menú Paneles (Dashboards) de Monitoring.

  5. En la página de visualización del panel, puedes ver, actualizar y borrar gráficos.

Usa alertas de Monitoring

Puedes crear políticas de alertas para supervisar los valores de las métricas y que se te notifique cuando estas infrinjan una condición. Los pasos generales para crear una política de alertas que supervise uno o más recursos de Cloud Composer Environment o Cloud Composer Workflow son los siguientes:

  1. En Google Cloud Console, ve a Monitoring.

    Ir a Monitoring

  2. En el panel de navegación de Monitoring, selecciona Alertas y, luego, Crear política.
  3. Haz clic en Agregar condición:
    1. En la configuración del panel Destino, se especifican el recurso y la métrica que se supervisarán. Haz clic en el cuadro de texto para habilitar un menú y, luego, selecciona el recurso Cloud Composer Environment o Cloud Composer Workflow. A continuación, selecciona una métrica de la lista correspondiente.
    2. La configuración del panel Configuración de la política de alertas determina cuándo se activa la alerta. La mayoría de los campos de este panel se propagan con valores predeterminados. Para obtener más información sobre los campos del panel, consulta Configuración en la documentación de las políticas de alertas.
    3. Haga clic en Add.
  4. Haz clic en Siguiente para avanzar a la sección de notificaciones.
  5. Para agregar notificaciones a tu política de alertas, haz clic en Canales de notificaciones (opcional). En el diálogo, selecciona uno o más canales de notificaciones en el menú y haz clic en Aceptar.

    Si el canal de notificaciones que deseas agregar no aparece en la lista, haz clic en Administrar canales de notificaciones. Se te dirigirá a la página de Canales de notificaciones en una pestaña nueva del navegador. En esta página, puedes actualizar los canales de notificaciones configurados. Después de completar las actualizaciones, regresa a la pestaña original, haz clic en Actualizar  y selecciona los canales de notificaciones que deseas agregar a la política de alertas.

  6. Para avanzar a la sección de documentación, haz clic en Siguiente.
  7. Haz clic en Nombre y, luego, ingresa un nombre para la política de alertas.
  8. Opcional: Haz clic en Documentación y, luego, agrega la información que deseas incluir en un mensaje de notificación.
  9. Haga clic en Save.
Para obtener más información, consulta Políticas de alertas.

Visualiza alertas

Cuando una condición de límite de una métrica activa una alerta, Monitoring crea un incidente (y un evento correspondiente).

Puedes revisar los incidentes desde la página Alertas > Incidentes de Monitoring.

Si definiste un mecanismo de notificación en la política de alertas, como una notificación por correo electrónico o SMS, Monitoring también envía una notificación del incidente.

Qué sigue