Logotipo de Zephyrnet

Mejore el monitoreo y la depuración de trabajos de AWS Glue mediante nuevas métricas de observabilidad de trabajos | Servicios web de Amazon

Fecha:

Para cualquier empresa moderna basada en datos, contar con canales de integración de datos fluidos es crucial. Estos canales extraen datos de diversas fuentes, los transforman y los cargan en los sistemas de destino para realizar análisis e informes. Cuando se ejecuta correctamente, proporciona información oportuna y confiable. Sin embargo, sin vigilancia, los diferentes volúmenes de datos, características y comportamiento de las aplicaciones pueden hacer que los canales de datos se vuelvan ineficientes y problemáticos. El rendimiento puede ralentizarse o las canalizaciones pueden volverse poco fiables. Los errores no detectados generan datos incorrectos y afectan el análisis posterior. Es por eso que el monitoreo y la resolución de problemas sólidos de las canalizaciones de datos son esenciales en las siguientes cuatro áreas:

  • Fiabilidad
  • Rendimiento
  • rendimiento
  • Utilización de recursos

Juntos, estos cuatro aspectos del monitoreo brindan visibilidad y control de un extremo a otro sobre una canalización de datos y sus operaciones.

Hoy nos complace anunciar una nueva clase de Reloj en la nube de Amazon métricas reportadas con sus canalizaciones construidas sobre Pegamento AWS para trabajos de Apache Spark. Las nuevas métricas brindan información agregada y detallada sobre el estado y las operaciones de las ejecuciones de sus trabajos y los datos que se procesan. Además de proporcionar paneles de control detallados, las métricas proporcionan clasificación de errores, lo que ayuda con el análisis de la causa raíz de los cuellos de botella en el rendimiento y el diagnóstico de errores. Con este análisis, puede evaluar y aplicar las correcciones recomendadas y las mejores prácticas para diseñar sus trabajos y canalizaciones. Como resultado, obtendrá el beneficio de una mayor disponibilidad, un mejor rendimiento y un menor costo para su carga de trabajo de AWS Glue para Apache Spark.

Esta publicación demuestra cómo las nuevas métricas mejoradas lo ayudan a monitorear y depurar trabajos de AWS Glue.

Habilitar las nuevas métricas

Las nuevas métricas se pueden configurar a través del parámetro de trabajo. enable-observability-metrics.

Las nuevas métricas están habilitadas de forma predeterminada en la consola de AWS Glue Studio. Para configurar las métricas en la consola de AWS Glue Studio, complete los siguientes pasos:

  1. En la consola de AWS Glue, elija Empleos de ETL en el panel de navegación.
  2. under Tus trabajos, elige tu trabajo.
  3. En Detalles del trabajo pestaña, expandir Propiedades avanzadas.
  4. under Métricas de observabilidad laboral, seleccione Habilite la creación de métricas de observabilidad adicionales de CloudWatch cuando se ejecute este trabajo.

Para habilitar las nuevas métricas en AWS Glue CreateJob y StartJobRun API, establezca los siguientes parámetros en el DefaultArguments propiedad:

  • Clave--enable-observability-metrics
  • Valortrue

Para habilitar las nuevas métricas en el Interfaz de línea de comandos de AWS (AWS CLI), establezca los mismos parámetros de trabajo en el --default-arguments argumento.

Caso de uso

Una carga de trabajo típica para los trabajos de AWS Glue para Apache Spark es cargar datos desde una base de datos relacional a un lago de datos con transformaciones basadas en SQL. La siguiente es una representación visual de un trabajo de ejemplo donde el número de trabajadores es 10.

Cuando se ejecutó el trabajo de ejemplo, el workerUtilization Las métricas mostraron la siguiente tendencia.

Tenga en cuenta que workerUtilization mostró valores entre 0.20 (20%) y 0.40 (40%) para toda la duración. Esto suele ocurrir cuando la capacidad del trabajo está sobreaprovisionada y muchos ejecutores de Spark estaban inactivos, lo que genera costos innecesarios. Para mejorar la eficiencia en la utilización de recursos, es una buena idea habilitar Escalado automático de AWS Glue. La siguiente captura de pantalla muestra lo mismo. workerUtilization gráfico de métricas cuando AWS Glue Auto Scaling está habilitado para el mismo trabajo.

workerUtilization mostró 1.0 al principio debido a AWS Glue Auto Scaling y tuvo una tendencia entre 0.75 (75%) y 1.0 (100%) según los requisitos de la carga de trabajo.

Consultar y visualizar métricas en CloudWatch

Complete los siguientes pasos para consultar y visualizar métricas en la consola de CloudWatch:

  1. En la consola de CloudWatch, elija Todas las métricas en el panel de navegación.
  2. under Espacios de nombres personalizados, escoger pegamento.
  3. Elige Métricas de observabilidad (o Métricas de observabilidad por fuenteo Métricas de observabilidad por sumidero).
  4. Busque y seleccione el nombre de métrica específico, el nombre del trabajo, el ID de ejecución del trabajo y el grupo de observabilidad.
  5. En Métricas graficadas , configure su estadística preferida, período, etc.

Consultar métricas mediante la AWS CLI

Complete los siguientes pasos para realizar consultas utilizando la CLI de AWS (para este ejemplo, consultamos la métrica de utilización de los trabajadores):

  1. Cree un archivo JSON de definición de métricas (proporcione el nombre de su trabajo de AWS Glue y el ID de ejecución del trabajo):
    $ cat multiplequeries.json
    [
      {
        "Id": "avgWorkerUtil_0",
        "MetricStat" : {
          "Metric" : {
            "Namespace": "Glue",
            "MetricName": "glue.driver.workerUtilization",
            "Dimensions": [
              {
                  "Name": "JobName",
                  "Value": "<your-Glue-job-name-A>"
              },
              {
                "Name": "JobRunId",
                "Value": "<your-Glue-job-run-id-A>"
              },
              {
                "Name": "Type",
                "Value": "gauge"
              },
              {
                "Name": "ObservabilityGroup",
                "Value": "resource_utilization"
              }
            ]
          },
          "Period": 1800,
          "Stat": "Minimum",
          "Unit": "None"
        }
      },
      {
          "Id": "avgWorkerUtil_1",
          "MetricStat" : {
          "Metric" : {
            "Namespace": "Glue",
            "MetricName": "glue.driver.workerUtilization",
            "Dimensions": [
               {
                 "Name": "JobName",
                 "Value": "<your-Glue-job-name-B>"
               },
               {
                 "Name": "JobRunId",
                 "Value": "<your-Glue-job-run-id-B>"
               },
               {
                 "Name": "Type",
                 "Value": "gauge"
               },
               {
                 "Name": "ObservabilityGroup",
                 "Value": "resource_utilization"
               }
            ]
          },
          "Period": 1800,
          "Stat": "Minimum",
          "Unit": "None"
        }
      }
    ]

  2. Ejecute el get-metric-data mando:
    $ aws cloudwatch get-metric-data --metric-data-queries file://multiplequeries.json 
         --start-time '2023-10-28T18:20' 
         --end-time '2023-10-28T19:10'  
         --region us-east-1
    {
        "MetricDataResults": [
          {
             "Id": "avgWorkerUtil_0",
             "Label": "<your label A>",
             "Timestamps": [
                   "2023-10-28T18:20:00+00:00"
             ], 
             "Values": [
                   0.06718750000000001
             ],
             "StatusCode": "Complete"
          },
          {
             "Id": "avgWorkerUtil_1",
             "Label": "<your label B>",
             "Timestamps": [
                  "2023-10-28T18:20:00+00:00"
              ],
              "Values": [
                  0.5959183673469387
              ],
              "StatusCode": "Complete"
           }
        ],
        "Messages": []
    }

Crear una alarma de CloudWatch

Puede crear alarmas estáticas basadas en umbrales para las diferentes métricas. Para obtener instrucciones, consulte Cree una alarma de CloudWatch basada en un umbral estático.

Por ejemplo, para la asimetría, puede configurar una alarma para skewness.stage con un umbral de 1.0, y skewness.job con un umbral de 0.5. Este umbral es sólo una recomendación; puede ajustar el umbral según su caso de uso específico (por ejemplo, se espera que algunos trabajos estén sesgados y no es un problema por el cual alarmarse). Nuestra recomendación es evaluar los valores métricos de las ejecuciones de su trabajo durante algún tiempo antes de calificar los valores anómalos y configurar los umbrales de alarma.

Otras métricas mejoradas

Para obtener una lista completa de otras métricas mejoradas disponibles con los trabajos de AWS Glue, consulte Monitoreo con métricas de observabilidad de AWS Glue. Estas métricas le permiten capturar información operativa de sus trabajos, como la utilización de recursos (memoria y disco), clases de errores normalizados como compilación y sintaxis, errores de usuario o servicio, y rendimiento de cada fuente o receptor (registros, archivos, particiones). , y bytes leídos o escritos).

Paneles de observabilidad del trabajo

Puede simplificar aún más la observabilidad de sus trabajos de AWS Glue utilizando paneles para las métricas de información que permiten el monitoreo en tiempo real mediante Grafana gestionado por Amazony permitir la visualización y análisis de tendencias con Amazon QuickSight.

Conclusión

Esta publicación demostró cómo las nuevas métricas mejoradas de CloudWatch lo ayudan a monitorear y depurar trabajos de AWS Glue. Con estas métricas mejoradas, puede identificar y solucionar problemas más fácilmente en tiempo real. Esto da como resultado trabajos de AWS Glue que experimentan un mayor tiempo de actividad, un procesamiento más rápido y gastos reducidos. El beneficio final para usted es un AWS Glue más eficaz y optimizado para cargas de trabajo de Apache Spark. Las métricas están disponibles en todas las regiones compatibles con AWS Glue. ¡Échale un vistazo!


Acerca de los autores

Noritaka Sekiyama es Arquitecto Principal de Big Data en el equipo de AWS Glue. Es responsable de crear artefactos de software para ayudar a los clientes. En su tiempo libre, disfruta andar en bicicleta con su nueva bicicleta de carretera.

Shenoda Guirguis es ingeniero sénior de desarrollo de software en el equipo de AWS Glue. Su pasión es la construcción de sistemas de procesamiento/infraestructura de datos escalables y distribuidos. Cuando tiene la oportunidad, a Shenoda le gusta leer y jugar fútbol.

sean ma es gerente principal de productos en el equipo de AWS Glue. Tiene un historial de más de 18 años de innovación y entrega de productos empresariales que desbloquean el poder de los datos para los usuarios. Fuera del trabajo, Sean disfruta del buceo y el fútbol americano universitario.

mohit saxena es gerente senior de desarrollo de software en el equipo de AWS Glue. Su equipo se enfoca en crear sistemas distribuidos para permitir a los clientes con interfaces interactivas y fáciles de usar administrar y transformar de manera eficiente petabytes de datos sin problemas a través de lagos de datos en Amazon S3, bases de datos y almacenes de datos en la nube.

punto_img

Información más reciente

punto_img