Supervisión de AWS Glue con métricas de Amazon CloudWatch - AWS Glue

Supervisión de AWS Glue con métricas de Amazon CloudWatch

Puede proporcionar perfiles y supervisar las operaciones de AWS Glue con el generador de trabajos de AWS Glue. Recopila y procesa los datos sin procesar de AWS Glue para convertirlos en métricas legibles y casi en tiempo real en Amazon CloudWatch. Estas estadísticas se retienen y agregan en CloudWatch, de forma que pueda acceder a información histórica para obtener una mejor perspectiva sobre el rendimiento de su aplicación.

nota

Puede incurrir en cargos adicionales cuando habilita las métricas de trabajos y se crean métricas personalizadas de CloudWatch. Para obtener más información, consulte los precios de Amazon CloudWatch .

Información general de métricas de AWS Glue

Cuando usted interactúa con AWS Glue, este último envía métricas a CloudWatch. Puede ver estas métricas en la consola de AWS Glue (el método preferido), el panel de la consola de CloudWatch o AWS Command Line Interface (AWS CLI).

Para consultar las métricas mediante el panel de la consola de AWS Glue

Puede ver gráficos resumidos o detallados de métricas para un trabajo, o bien gráficos detallados para una ejecución de trabajo.

  1. Inicie sesión en la AWS Management Console y abra la consola de AWS Glue en https://console.aws.amazon.com/glue/.

  2. En el panel de navegación, seleccione Monitoreo de ejecución de trabajos.

  3. En Ejecuciones de trabajos, elija Acciones para detener un trabajo que se ejecute actualmente, ver un trabajo o rebobinar el marcador del trabajo.

  4. Seleccione un trabajo y, a continuación, elija Ver detalles de la ejecución para ver información adicional sobre la ejecución del trabajo.

Para ver las métricas a través del panel de consola de CloudWatch

Las métricas se agrupan en primer lugar por el espacio de nombres de servicio y, a continuación, por las diversas combinaciones de dimensiones dentro de cada espacio de nombres.

  1. Abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/.

  2. En el panel de navegación, seleccione Métricas.

  3. Seleccione el espacio de nombres Glue.

Para ver métricas mediante la AWS CLI
  • En el símbolo del sistema, ejecute el siguiente comando.

    aws cloudwatch list-metrics --namespace Glue

AWS Glue notifica las métricas para CloudWatch cada 30 segundos y los paneles de métricas de CloudWatch se configuran para mostrarlas cada minuto. Las métricas de AWS Glue representan valores delta que se obtienen de los valores notificados con anterioridad. Si procede, los paneles de métricas acumulan (suman) los valores de 30 segundos para obtener un valor para el último minuto en su totalidad.

Comportamiento de métricas de AWS Glue para trabajos de Spark

Las métricas AWS Glue se habilitan en la inicialización de un GlueContext en un script y suelen actualizarse solo al final de una tarea de Apache Spark. Representan los valores de la suma en todas las tareas Spark hasta el momento.

No obstante, las métricas de Spark que AWS Glue transfiere a CloudWatch suelen ser valores absolutos que representan el estado actual en el momento en que se notifican. AWS Glue los notifica a CloudWatch cada 30 segundos, y los paneles de métricas suelen mostrar la media en los puntos de datos recibidos en el último minuto.

Los nombres de las métricas de AWS Glue están precedidos por uno de los siguientes tipos de prefijo:

  • glue.driver.: las métricas cuyos nombres comienzan con este prefijo representan las métricas de AWS Glue que provienen de todos los ejecutores en el controlador Spark, o bien las métricas de Spark correspondientes al controlador Spark.

  • glue.Id de ejecutor.: el Id de ejecutor es el número de un ejecutor de Spark especificado. Se corresponde con los ejecutores enumerados en los registros.

  • glue.ALL.: las métricas cuyos nombres empiezan por este prefijo agregan valores de todos los ejecutores de Spark.

Métricas de AWS Glue

AWS Glue crea perfiles y envía las siguientes métricas a CloudWatch cada 30 segundos, y el panel de métricas de AWS Glue los informa una vez por minuto:

Métrica Descripción

glue.driver.aggregate.bytesRead

El número de bytes leídos desde todos los orígenes de datos por todas las tareas de Spark completadas que se ejecutan en todos los ejecutores.

Dimensiones válidas: JobName (el nombre del trabajo de AWS Glue), JobRunId (el ID de JobRun o ALL) y Type (recuento).

Estadísticas válidas: SUMA. Esta métrica es un valor delta desde el último valor notificado, por lo que en el panel de métricas de AWS Glue, se utiliza una estadística SUMA para la agregación.

Unidades: bytes

Se puede utilizar para monitorear lo siguiente:

  • Bytes leídos.

  • Progreso del trabajo.

  • Orígenes de datos JDBC.

  • Problemas de marcadores de trabajos.

  • Desviación entre ejecuciones de trabajos.

Esta métrica se puede utilizar de la misma manera que la métrica glue.ALL.s3.filesystem.read_bytes, con la diferencia de que esta métrica se actualiza al final de una tarea de Spark y también captura orígenes de datos que no son S3.

glue.driver.aggregate.elapsedTime

El tiempo transcurrido de ETL en milisegundos (no incluye los tiempos de arranque del trabajo).

Dimensiones válidas: JobName (el nombre del trabajo de AWS Glue), JobRunId (el ID de JobRun o ALL) y Type (recuento).

Estadísticas válidas: SUMA. Esta métrica es un valor delta desde el último valor notificado, por lo que en el panel de métricas de AWS Glue, se utiliza una estadística SUMA para la agregación.

Unidad: milisegundos

Puede utilizarse para determinar cuánto tiempo se tarda en ejecutar una ejecución de trabajo en promedio.

Algunas formas de usar los datos:

  • Establecimiento de alarmas para los rezagados.

  • Medición de desviación entre ejecuciones de trabajos.

glue.driver.aggregate.numCompletedStages

Número de etapas completadas en este trabajo.

Dimensiones válidas: JobName (el nombre del trabajo de AWS Glue), JobRunId (el ID de JobRun o ALL) y Type (recuento).

Estadísticas válidas: SUMA. Esta métrica es un valor delta desde el último valor notificado, por lo que en el panel de métricas de AWS Glue, se utiliza una estadística SUMA para la agregación.

Unidad: recuento

Se puede utilizar para monitorear lo siguiente:

  • Progreso del trabajo.

  • Línea de tiempo por etapa de ejecución del trabajo, cuando se correlaciona con otras métricas.

Algunas formas de usar los datos:

  • Identificar etapas exigentes en la ejecución de un trabajo.

  • Establecer alarmas para picos correlacionados (etapas exigentes) en ejecuciones de trabajos.

glue.driver.aggregate.numCompletedTasks

Número de etapas completadas en el trabajo.

Dimensiones válidas: JobName (el nombre del trabajo de AWS Glue), JobRunId (el ID de JobRun o ALL) y Type (recuento).

Estadísticas válidas: SUMA. Esta métrica es un valor delta desde el último valor notificado, por lo que en el panel de métricas de AWS Glue, se utiliza una estadística SUMA para la agregación.

Unidad: recuento

Se puede utilizar para monitorear lo siguiente:

  • Progreso del trabajo.

  • Paralelismo dentro de una etapa.

glue.driver.aggregate.numFailedTasks

El número de tareas de servicio que han presentado un error.

Dimensiones válidas: JobName (el nombre del trabajo de AWS Glue), JobRunId (el ID de JobRun o ALL) y Type (recuento).

Estadísticas válidas: SUMA. Esta métrica es un valor delta desde el último valor notificado, por lo que en el panel de métricas de AWS Glue, se utiliza una estadística SUMA para la agregación.

Unidad: recuento

Se puede utilizar para monitorear lo siguiente:

  • Anomalías de datos que provocan un error en las tareas de trabajo.

  • Anomalías de clúster que provocan un error en las tareas de trabajo.

  • Anomalías de scripts que causan un error en las tareas de trabajo.

Los datos se pueden usar para establecer alarmas ante mayor cantidad de errores que podrían sugerir anomalías en los datos, clústeres o scripts.

glue.driver.aggregate.numKilledTasks

El número de tareas eliminadas.

Dimensiones válidas: JobName (el nombre del trabajo de AWS Glue), JobRunId (el ID de JobRun o ALL) y Type (recuento).

Estadísticas válidas: SUMA. Esta métrica es un valor delta desde el último valor notificado, por lo que en el panel de métricas de AWS Glue, se utiliza una estadística SUMA para la agregación.

Unidad: recuento

Se puede utilizar para monitorear lo siguiente:

  • Irregularidades en el sesgo de datos que dan lugar a excepciones (memoria insuficiente) que eliminan tareas.

  • Irregularidades en los scripts que dan lugar a excepciones (memoria insuficiente) que eliminan tareas.

Algunas formas de usar los datos:

  • Establecer alarmas ante mayor cantidad de errores que indiquen anomalías en los datos.

  • Establecer alarmas ante mayor cantidad de errores que indiquen anomalías en los clústeres.

  • Establecer alarmas ante mayor cantidad de errores que indiquen anomalías en los scripts.

glue.driver.aggregate.recordsRead

Número de registros leídos de todos los orígenes de datos por todas las tareas de Spark completadas que se ejecutan en todos los ejecutores.

Dimensiones válidas: JobName (el nombre del trabajo de AWS Glue), JobRunId (el ID de JobRun o ALL) y Type (recuento).

Estadísticas válidas: SUMA. Esta métrica es un valor delta desde el último valor notificado, por lo que en el panel de métricas de AWS Glue, se utiliza una estadística SUMA para la agregación.

Unidad: recuento

Se puede utilizar para monitorear lo siguiente:

  • Registros leídos.

  • Progreso del trabajo.

  • Orígenes de datos JDBC.

  • Problemas de marcadores de trabajos.

  • Sesgo en trabajos que se ejecutan durante varios días.

Esta métrica se puede utilizar de manera similar que la métrica glue.ALL.s3.filesystem.read_bytes, con la diferencia de que esta métrica se actualiza al final de una tarea de Spark.

glue.driver.aggregate.shuffleBytesWritten

El número de bytes que escriben todos los ejecutores para mezclar los datos en forma aleatoria entre ellos desde el informe anterior (acumulados por el panel de métricas de AWS Glue como el número de bytes escritos para este propósito durante el minuto anterior).

Dimensiones válidas: JobName (el nombre del trabajo de AWS Glue), JobRunId (el ID de JobRun o ALL) y Type (recuento).

Estadísticas válidas: SUMA. Esta métrica es un valor delta desde el último valor notificado, por lo que en el panel de métricas de AWS Glue, se utiliza una estadística SUMA para la agregación.

Unidades: bytes

Se puede utilizar para monitorear: mezclas aleatorias de datos en trabajos (combinaciones grandes, agrupados por, repartición, fusión).

Algunas formas de usar los datos:

  • Volver a particionar o descomprimir archivos de entrada grandes antes de procesarlos.

  • Volver a particionar los datos de manera más uniforme para evitar las teclas de acceso rápido.

  • Prefiltrar los datos antes de las combinaciones o las operaciones GroupBy (Agrupar por).

glue.driver.aggregate.shuffleLocalBytesRead

El número de bytes que leen todos los ejecutores para mezclar los datos en forma aleatoria entre ellos desde el informe anterior (acumulados por el panel de métricas de AWS Glue como el número de bytes leídos para este propósito durante el minuto anterior).

Dimensiones válidas: JobName (el nombre del trabajo de AWS Glue), JobRunId (el ID de JobRun o ALL) y Type (recuento).

Estadísticas válidas: SUMA. Esta métrica es un valor delta desde el último valor notificado, por lo que en el panel de métricas de AWS Glue, se utiliza una estadística SUMA para la agregación.

Unidades: bytes

Se puede utilizar para monitorear: mezclas aleatorias de datos en trabajos (combinaciones grandes, agrupados por, repartición, fusión).

Algunas formas de usar los datos:

  • Volver a particionar o descomprimir archivos de entrada grandes antes de procesarlos.

  • Volver a particionar los datos de manera más uniforme con teclas de acceso rápido.

  • Prefiltrar los datos antes de las combinaciones o las operaciones GroupBy (Agrupar por).

glue.driver.BlockManager.disk.diskSpaceUsed_MB

Número de megabytes de espacio en disco utilizado en todos los ejecutores.

Dimensiones válidas: JobName (el nombre del trabajo de AWS Glue), JobRunId (el ID de JobRun o ALL), y Type (calibre).

Estadísticas válidas: promedio. Esta es una métrica de Spark, notificada como un valor absoluto.

Unidades: megabytes

Se puede utilizar para monitorear lo siguiente:

  • Espacio en disco utilizado para bloques que representan particiones RDD almacenadas en caché.

  • Espacio en disco utilizado para bloques que representan salidas de mezclas aleatorias intermedias.

  • Espacio en disco utilizado para bloques que representan emisiones.

Algunas formas de usar los datos:

  • Identificar errores de trabajo debido a mayor uso del disco.

  • Identificar grandes particiones que resulten en desbordamiento o mezclado aleatorio.

  • Aumentar la capacidad de DPU aprovisionada para corregir estos problemas.

glue.driver.ExecutorAllocationManager.executors.numberAllExecutors

El número de ejecutores de trabajo que se ejecutan activamente.

Dimensiones válidas: JobName (el nombre del trabajo de AWS Glue), JobRunId (el ID de JobRun o ALL), y Type (calibre).

Estadísticas válidas: promedio. Esta es una métrica de Spark, notificada como un valor absoluto.

Unidad: recuento

Se puede utilizar para monitorear lo siguiente:

  • Actividad del trabajo.

  • Ejecutores rezagados (solo con algunos ejecutores en proceso de ejecución)

  • Paralelismo actual a nivel de ejecutor.

Algunas formas de usar los datos:

  • Volver a particionar o descomprimir archivos de entrada grandes por anticipado si el clúster está infrautilizado.

  • Identificar retrasos en la ejecución de la etapa o del trabajo debido a escenarios rezagados.

  • • Comparar con NumberMaxNeedExecutors para comprender las tareas pendientes para aprovisionar más DPU.

glue.driver.ExecutorAllocationManager.executors.numberMaxNeededExecutors

Número máximo de ejecutores de trabajos (en ejecución activa y pendientes) necesarios para satisfacer la carga actual.

Dimensiones válidas: JobName (el nombre del trabajo de AWS Glue), JobRunId (el ID de JobRun o ALL), y Type (calibre).

Estadísticas válidas: máximo. Esta es una métrica de Spark, notificada como un valor absoluto.

Unidad: recuento

Se puede utilizar para monitorear lo siguiente:

  • Actividad del trabajo.

  • Paralelismo actual a nivel de ejecutor y atraso de tareas pendientes aún no programadas debido a que los ejecutores no están disponibles por la capacidad de DPU o ejecutores eliminados/que presentan error.

Algunas formas de usar los datos:

  • Identificar tareas pendientes/atrasadas de la cola de programación.

  • Identificar retrasos en la ejecución de la etapa o del trabajo debido a escenarios rezagados.

  • Comparar con NumberAllExecutors para comprender el trabajo atrasado para aprovisionar más DPU.

  • Aumentar la capacidad de DPU aprovisionada para corregir el retraso del ejecutor pendiente.

glue.driver.jvm.heap.usage

glue.Id de ejecutor.jvm.heap.usage

glue.ALL.jvm.heap.usage

La fracción de memoria usada por el montón de JVM para este controlador (escala: 0-1), ejecutor identificado por el Id de ejecutor o TODOS los ejecutores.

Dimensiones válidas: JobName (el nombre del trabajo de AWS Glue), JobRunId (el ID de JobRun o ALL), y Type (calibre).

Estadísticas válidas: promedio. Esta es una métrica de Spark, notificada como un valor absoluto.

Unidad: porcentaje

Se puede utilizar para monitorear lo siguiente:

  • Condiciones de memoria insuficiente (OOM) del controlador con glue.driver.jvm.heap.usage.

  • Condiciones de memoria insuficiente (OOM) del ejecutor con glue.ALL.jvm.heap.usage.

Algunas formas de usar los datos:

  • Identificar las etapas y los ID de los ejecutores que consumen memoria.

  • Identificar los ID y las etapas de los ejecutores rezagados.

  • Identificar una condición de memoria insuficiente (OOM) del controlador.

  • Identificar una condición de falta de memoria (OOM) del ejecutor y obtener el ID de ejecutor correspondiente para poder obtener un seguimiento de pila del registro del ejecutor.

  • Identificar los archivos o particiones que pueden tener un sesgo de datos, lo que resulta en rezagos o condiciones de memoria insuficiente (OOM).

glue.driver.jvm.heap.used

glue.Id de ejecutor.jvm.heap.used

glue.ALL.jvm.heap.used

El número de bytes de memoria utilizados por el montón de JVM para el controlador, el ejecutor identificado por Id de ejecutor, o TODOS los ejecutores.

Dimensiones válidas: JobName (el nombre del trabajo de AWS Glue), JobRunId (el ID de JobRun o ALL), y Type (calibre).

Estadísticas válidas: promedio. Esta es una métrica de Spark, notificada como un valor absoluto.

Unidades: bytes

Se puede utilizar para monitorear lo siguiente:

  • Condiciones de memoria insuficiente (OOM) del controlador.

  • Condiciones de memoria insuficiente (OOM) del ejecutor.

Algunas formas de usar los datos:

  • Identificar las etapas y los ID de los ejecutores que consumen memoria.

  • Identificar los ID y las etapas de los ejecutores rezagados.

  • Identificar una condición de memoria insuficiente (OOM) del controlador.

  • Identificar una condición de falta de memoria (OOM) del ejecutor y obtener el ID de ejecutor correspondiente para poder obtener un seguimiento de pila del registro del ejecutor.

  • Identificar los archivos o particiones que pueden tener un sesgo de datos, lo que resulta en rezagos o condiciones de memoria insuficiente (OOM).

glue.driver.s3.filesystem.read_bytes

glue.Id de ejecutor.s3.filesystem.read_bytes

glue.ALL.s3.filesystem.read_bytes

El número de bytes leídos desde Amazon S3 por el controlador, un ejecutor identificado por Id de ejecutor, o TODOS los ejecutores desde el informe anterior (acumulados por el panel de métricas de AWS Glue como número de bytes leídos durante el minuto anterior).

Dimensiones válidas: JobName, JobRunId, y Type (calibre).

Estadísticas válidas: SUMA. Esta métrica es un valor delta desde el último valor notificado, por lo que en el panel de métricas de AWS Glue, se utiliza una estadística SUM para la agregación. El área bajo la curva en el panel de métricas de AWS Glue se puede utilizar para comparar visualmente los bytes leídos por dos ejecuciones de trabajos diferentes.

Unidad: bytes.

Se puede utilizar para monitorear lo siguiente:

  • Movimiento de datos de ETL.

  • Progreso del trabajo.

  • Problemas de marcadores de trabajos (datos procesados, reprocesados y omitidos).

  • Comparación de lecturas con la tasa de ingesta de orígenes de datos externos.

  • Desviación entre ejecuciones de trabajos.

Los datos resultantes se pueden utilizar para lo siguiente:

  • Planificación de la capacidad de DPU.

  • Establecer alarmas para picos grandes o caídas en los datos leídos para ejecuciones de trabajos y etapas de trabajo.

glue.driver.s3.filesystem.write_bytes

glue.Id de ejecutor.s3.filesystem.write_bytes

glue.ALL.s3.filesystem.write_bytes

El número de bytes que escribe el controlador en Amazon S3, un ejecutor identificado por Id de ejecutor, o TODOS los ejecutores desde el informe anterior (agregados por el panel de métricas de AWS Glue como número de bytes escritos durante el minuto anterior).

Dimensiones válidas: JobName, JobRunId, y Type (calibre).

Estadísticas válidas: SUMA. Esta métrica es un valor delta desde el último valor notificado, por lo que en el panel de métricas de AWS Glue, se utiliza una estadística SUM para la agregación. El área bajo la curva en el panel de métricas de AWS Glue se puede utilizar para comparar visualmente los bytes escritos por dos ejecuciones de trabajos diferentes.

Unidades: bytes

Se puede utilizar para monitorear lo siguiente:

  • Movimiento de datos de ETL.

  • Progreso del trabajo.

  • Problemas de marcadores de trabajos (datos procesados, reprocesados y omitidos).

  • Comparación de lecturas con la tasa de ingesta de orígenes de datos externos.

  • Desviación entre ejecuciones de trabajos.

Algunas formas de usar los datos:

  • Planificación de la capacidad de DPU.

  • Establecer alarmas para picos grandes o caídas en los datos leídos para ejecuciones de trabajos y etapas de trabajo.

glue.driver.streaming.numRecords

El número de registros que se reciben en un microlote. Esta métrica solo está disponible para trabajos de streaming de AWS Glue con la versión AWS Glue 2.0 y superior.

Dimensiones válidas: JobName (el nombre del trabajo de AWS Glue), JobRunId (el ID de JobRun o ALL), y Type (recuento).

Estadísticas válidas: suma, máximo, mínimo, promedio, percentilo

Unidad: recuento

Se puede utilizar para monitorear lo siguiente:

  • Registros leídos.

  • Progreso del trabajo.

glue.driver.streaming.batchProcessingTimeInMs

El tiempo que se tarda en procesar los lotes en milisegundos. Esta métrica solo está disponible para trabajos de streaming de AWS Glue con la versión AWS Glue 2.0 y superior.

Dimensiones válidas: JobName (el nombre del trabajo de AWS Glue), JobRunId (el ID de JobRun o ALL), y Type (recuento).

Estadísticas válidas: suma, máximo, mínimo, promedio, percentilo

Unidad: recuento

Se puede utilizar para monitorear lo siguiente:

  • Progreso del trabajo.

  • Rendimiento del script.

glue.driver.system.cpuSystemLoad

glue.Id de ejecutor.system.cpuSystemLoad

glue.ALL.system.cpuSystemLoad

Fracción de la carga del sistema de CPU usada (escala: 0-1) por el controlador, un ejecutor identificado por Id de ejecutor, o TODOS los ejecutores.

Dimensiones válidas: JobName (el nombre del trabajo de AWS Glue), JobRunId (el ID de JobRun o ALL), y Type (calibre).

Estadísticas válidas: promedio. Esta métrica se notifica como un valor absoluto.

Unidad: porcentaje

Se puede utilizar para monitorear lo siguiente:

  • Carga de CPU del controlador.

  • Carga de CPU del ejecutor.

  • Detección de ejecutores o etapas vinculados a la CPU o vinculados a entradas/salidas en un trabajo.

Algunas formas de usar los datos:

  • Planificación de la capacidad de DPU junto con métricas de entrada/salida (bytes de lectura/bytes de mezcla aleatoria, paralelismo de tareas) y la métrica del número máximo de ejecutores necesarios.

  • Identificación de la relación vinculada a CPU y entrada/salida. Esto permite la repartición y el aumento de la capacidad aprovisionada para trabajos de ejecución prolongada con conjuntos de datos que pueden dividirse y ocupan menor capacidad de uso de la CPU.

Dimensiones de las métricas de AWS Glue

Las métricas de AWS Glue utilizan el espacio de nombres de AWS Glue y proporcionan métricas para las siguientes dimensiones:

Dimensión Descripción

JobName

Esta dimensión filtra las métricas de todas las ejecuciones de trabajos de un trabajo de AWS Glue específico.

JobRunId

Esta dimensión filtra las métricas de ejecución de un trabajo de AWS Glue específico por ID de JobRun, o ALL.

Type

Esta dimensión filtra las métricas por count (un número acumulado) o gauge (un valor en un punto en el tiempo).

Para más información, consulte la Guía del usuario de Amazon CloudWatch.