Logotipo de Zephyrnet

Mejore el monitoreo y la depuración de trabajos de AWS Glue mediante nuevas métricas de observabilidad de trabajos, Parte 3: Visualización y análisis de tendencias con Amazon QuickSight | Servicios web de Amazon

Fecha:

In Parte 2 de esta serie, discutimos cómo habilitar Pegamento AWS métricas de observabilidad del trabajo e integrarlas con Grafana para un seguimiento en tiempo real. Grafana proporciona potentes paneles personalizables para ver el estado de la canalización. Sin embargo, para analizar tendencias a lo largo del tiempo, agregarlas desde diferentes dimensiones y compartir conocimientos en toda la organización, una herramienta de inteligencia empresarial (BI) diseñada específicamente como Amazon QuickSight puede ser más efectivo para su negocio. QuickSight facilita a los usuarios empresariales la visualización de datos en paneles e informes interactivos.

En esta publicación, exploramos cómo conectar QuickSight a Reloj en la nube de Amazon métricas y crear gráficos para descubrir tendencias en las métricas de observabilidad del trabajo de AWS Glue. El análisis de patrones históricos le permite optimizar el rendimiento, identificar problemas de forma proactiva y mejorar la planificación. Analizamos la ingesta de métricas de CloudWatch en QuickSight utilizando un flujo de métricas de CloudWatch y QuickSight SPICE. Con esta integración, puede utilizar gráficos de líneas, gráficos de barras y otros tipos de gráficos para descubrir patrones diarios, semanales y mensuales. QuickSight le permite realizar cálculos agregados sobre métricas para un análisis más profundo. Puede dividir los datos por diferentes dimensiones, como el nombre del trabajo, ver anomalías y compartir informes de forma segura en toda su organización. Con estos conocimientos, los equipos tienen la visibilidad necesaria para hacer que los procesos de integración de datos sean más eficientes.

Resumen de la solución

El siguiente diagrama de arquitectura ilustra el flujo de trabajo para implementar la solución.

El flujo de trabajo incluye los siguientes pasos:

  1. Los trabajos de AWS Glue emiten métricas de observabilidad a métricas de CloudWatch.
  2. CloudWatch transmite datos de métricas a través de un flujo de métricas a Manguera de datos de Amazon.
  3. Data Firehose utiliza un AWS Lambda función para transformar datos e ingerir los registros transformados en un Servicio de almacenamiento simple de Amazon (Amazon S3) cubo.
  4. Un rastreador de AWS Glue escanea datos en el depósito S3 y completa los metadatos de la tabla en el catálogo de datos de AWS Glue.
  5. QuickSight se ejecuta periódicamente Atenea amazónica consultas para cargar los resultados de la consulta en SPICE y luego visualizar los datos métricos más recientes.

Todos los recursos están definidos en una muestra. Kit de desarrollo en la nube de AWS (AWS CDK) plantilla. Puede implementar la solución de un extremo a otro para visualizar y analizar tendencias de las métricas de observabilidad.

Plantilla de muestra de AWS CDK

Esta publicación proporciona una plantilla de AWS CDK de muestra para un panel que utiliza métricas de observabilidad de AWS Glue.

Normalmente, tiene varias cuentas para administrar y ejecutar recursos para su canalización de datos.

En esta plantilla, asumimos las siguientes cuentas:

  • Cuenta de seguimiento – Aloja el depósito central de S3, el catálogo de datos central y los recursos relacionados con QuickSight.
  • Cuenta de origen – Esto aloja recursos de canalización de datos individuales en AWS Glue y los recursos para enviar métricas a la cuenta de monitoreo.

La plantilla funciona incluso cuando la cuenta de seguimiento y la cuenta de origen son las mismas.

Esta plantilla de muestra consta de cuatro pilas:

  • Pila de Amazon S3 – Esto aprovisiona el depósito S3.
  • Pila del catálogo de datos – Esto aprovisiona la base de datos, la tabla y el rastreador de AWS Glue.
  • Pila QuickSight – Esto aprovisiona la fuente de datos, el conjunto de datos y el análisis de QuickSight.
  • Pila de remitentes de métricas – Esto aprovisiona el flujo de métricas de CloudWatch, el flujo de entrega de Firehose y la función Lambda para la transformación.

Requisitos previos

Debe tener los siguientes requisitos previos:

Inicializar el proyecto CDK

Para inicializar el proyecto, complete los siguientes pasos:

  1. Clona el plantilla de CDK a su lugar de trabajo:
    $ git clone git@github.com:aws-samples/aws-glue-cdk-baseline.git 
    
    $ cd aws-glue-cdk-baseline.git

  2. crear un pitón ambiente virtual específico del proyecto en la máquina cliente:
    $ python3 -m venv .venv

Usamos un entorno virtual para aislar el entorno de Python para este proyecto y no instalar el software globalmente.

  1. Activa el entorno virtual según tu SO:
    • En MacOS y Linux, use el siguiente código:
      $ source .venv/bin/activate

    • En una plataforma Windows, use el siguiente código:
      % .venvScriptsactivate.bat

Después de este paso, los pasos subsiguientes se ejecutan dentro de los límites del entorno virtual en la máquina del cliente e interactúan con la cuenta de AWS según sea necesario.

  1. Instale las dependencias requeridas descritas en requerimientos.txt al entorno virtual:
    $ pip install -r requirements.txt

  2. Edite el archivo de configuración default-config.yaml según sus entornos (reemplace cada ID de cuenta con el suyo propio).
    create_s3_stack: false
    create_metrics_sender_stack: false
    create_catalog_stack: false
    create_quicksight_stack: true
    
    s3_bucket_name: glue-observability-demo-dashboard
    
    firehose_log_group_name: /aws/kinesisfirehose/observability-demo-metric-stream
    firehose_lambda_buffer_size_mb: 2
    firehose_lambda_buffer_interval_seconds: 60
    firehose_s3_buffer_size_mb: 128
    firehose_s3_buffer_interval_seconds: 300
    
    glue_database_name: observability_demo_db
    glue_table_name: metric_data
    glue_crawler_name: observability_demo_crawler
    glue_crawler_cron_schedule: "cron(42 * * * ? *)"
    
    athena_workgroup_name: primary

Arranca tus entornos de AWS

Ejecute los siguientes comandos para iniciar sus entornos de AWS:

  1. En la cuenta de monitoreo, proporcione su número de cuenta de monitoreo, región de AWS y perfil de monitoreo:
    $ cdk bootstrap aws://<MONITORING-ACCOUNT-NUMBER>/<REGION> --profile <MONITORING-PROFILE> 
    --cloudformation-execution-policies arn:aws:iam::aws:policy/AdministratorAccess

  2. En la cuenta de origen, proporcione su número de cuenta de origen, región y perfil de origen:x
    $ cdk bootstrap aws://<SOURCE-ACCOUNT-NUMBER>/<REGION> --profile <SOURCE-PROFILE> 
    --cloudformation-execution-policies arn:aws:iam::aws:policy/AdministratorAccess

Cuando usa solo una cuenta para todos los entornos, solo puede ejecutar elcdk bootstrapmanda una vez.

Implemente sus recursos de AWS

Ejecute los siguientes comandos para implementar sus recursos de AWS:

  1. Ejecute el siguiente comando utilizando la cuenta de monitoreo para implementar los recursos definidos en la plantilla de AWS CDK:
    $ cdk deploy '*' --profile <MONITORING-PROFILE>

  2. Ejecute el siguiente comando utilizando la cuenta de origen para implementar los recursos definidos en la plantilla de AWS CDK:
    $ cdk deploy MetricSenderStack --profile <SOURCE-PROFILE>

Configurar permisos de QuickSight

Inicialmente, los nuevos recursos de QuickSight, incluidos el conjunto de datos y el análisis creados por la plantilla de AWS CDK, no son visibles porque todavía no hay permisos de QuickSight configurados.

Para que el conjunto de datos y el análisis sean visibles para usted, complete los siguientes pasos:

  1. En la consola de QuickSight, navegue hasta el menú de usuario y seleccione Administrar QuickSight.
  2. En el panel de navegación, elija Gestionar activos.
  3. under Explorar activos, escoger ECONOMÉTRICOS.
  4. Busque GlueObservabilityAnalysis y selecciónelo.
  5. Elige COMPARTA.
  6. Usuario o grupo, seleccione su usuario, luego elija COMPARTIR (1).
  7. Espere a que se complete el intercambio y luego elija LISTO.
  8. En Gestionar activos página, elige Conjuntos de datos.
  9. Busque observability_demo.metrics_data y selecciónelo.
  10. Elige COMPARTA.
  11. Usuario o grupo, seleccione su usuario, luego elija COMPARTIR (1).
  12. Espere a que se complete el intercambio y luego elija LISTO.

Explore el análisis predeterminado de QuickSight

Ahora podrá ver su análisis y conjunto de datos de QuickSight. Puede regresar a la consola QuickSight y elegir GlueObservabilityAnalysis en ECONOMÉTRICOS. La siguiente captura de pantalla muestra su panel.

El análisis de la muestra tiene dos pestañas: Monitoreo y Insights. Por defecto, el Monitoreo La pestaña tiene los siguientes gráficos:

  • [Confiabilidad] Desglose de errores de ejecución de trabajos
  • [Confiabilidad] Errores de ejecución del trabajo (total)
  • [Rendimiento] Trabajo de asimetría
  • [Rendimiento] Asimetría Trabajo por Trabajo

  • [Utilización de recursos] Utilización de trabajadores
  • [Utilización de recursos] Utilización de trabajadores por trabajo
  • [Rendimiento] BytesRead, RecordsRead, FilesRead, PartitionRead (Promedio)
  • [Rendimiento] Bytes escritos, registros escritos, archivos escritos (promedio)

  • [Utilización de recursos Disco disponible GB (mínimo)
  • [Utilización de recursos % máximo de disco utilizado (máx.)

  • [Controlador OOM] Recuento de errores de OOM
  • [OOM del controlador] % máximo de memoria de pila utilizada (máx.)
  • [OOM ejecutor] Recuento de errores de OOM
  • [OOM ejecutor] % máximo de memoria de almacenamiento dinámico utilizada (máx.)

Por defecto, el Insights La pestaña tiene la siguiente información:

  • Utilización de los trabajadores peor clasificados
  • Trabajo de asimetría mejor clasificado

  • Utilización prevista de trabajadores
  • Bytes de lectura más importantes

Puede agregar nuevos gráficos o información utilizando las métricas de observabilidad según sus requisitos.

Publicar el panel de QuickSight

Cuando el análisis esté listo, complete los siguientes pasos para publicar el panel:

  1. Elige PUBLICAR.
  2. Seleccione Publicar nuevo tablero comoe ingresa GlueObservabilityDashboard.
  3. Elige Publicar panel de control.

Luego podrá ver y compartir el panel.

Visualice y analice con las métricas de observabilidad del trabajo de AWS Glue

Usemos el panel para hacer que el uso de AWS Glue sea más eficiente.

En cuanto al Asimetría Trabajo por Trabajo En visualización, hubo un pico el 1 de noviembre de 2023. Las métricas de asimetría de la demostración de varias etapas del trabajo mostraron 9.53, que es significativamente más alta que otras.

Profundicemos en los detalles. Tu puedes elegir Controlesy cambie las condiciones del filtro según la fecha y hora, la región, el ID de la cuenta de AWS, el nombre del trabajo de AWS Glue, el ID de la ejecución del trabajo y el origen y el receptor de los almacenes de datos. Por ahora, filtremos con el nombre del trabajo demostración multietapa.

el filtrado Utilización de trabajadores por trabajo La visualización muestra 0.5 y su valor mínimo fue 0.16. Parece que hay margen de mejora en la utilización de recursos. Esta observación lo guía para habilitar el escalado automático para este trabajo a fin de aumentar la utilización de los trabajadores.

Limpiar

Ejecute los siguientes comandos para limpiar sus recursos de AWS:

  1. Ejecute el siguiente comando usando la cuenta de monitoreo para limpiar recursos:
    $ cdk destroy '*' --profile <MONITORING-PROFILE>

    Ejecute el siguiente comando usando la cuenta de origen para limpiar recursos:

    $ cdk destroy MetricSenderStack --profile <SOURCE-PROFILE>

Consideraciones

La integración de QuickSight está diseñada para ofrecer análisis y una mayor flexibilidad. Puede agregar métricas basadas en cualquier campo. Cuando se trata de muchos trabajos a la vez, la información de QuickSight le ayuda a identificar trabajos problemáticos.

La integración de QuickSight se logra con más recursos en sus entornos. La cuenta de monitoreo necesita una base de datos, una tabla, un rastreador y un depósito S3 de AWS Glue, y la capacidad de ejecutar consultas de Athena para visualizar métricas en QuickSight. Cada cuenta de origen debe tener un flujo de métricas y un flujo de entrega de Firehose. Esto puede generar costos adicionales.

Todos los recursos necesarios están incluidos en una plantilla en AWS CDK.

Conclusión

En esta publicación, exploramos cómo visualizar y analizar las métricas de observabilidad de trabajos de AWS Glue en QuickSight utilizando flujos de métricas de CloudWatch y SPICE. Al conectar las nuevas métricas de observabilidad a paneles interactivos de QuickSight, puede descubrir patrones diarios, semanales y mensuales para optimizar el uso de trabajos de AWS Glue. Las ricas capacidades de visualización de QuickSight le permiten analizar tendencias en métricas como la utilización de los trabajadores, las categorías de errores, el rendimiento y más. Agregar métricas y dividir datos por diferentes dimensiones, como el nombre del trabajo, puede proporcionar información más profunda.

El panel de muestra mostró métricas a lo largo del tiempo, errores principales y análisis comparativos de trabajos. Estas visualizaciones e informes se pueden compartir de forma segura con equipos de toda la organización. Con información basada en datos sobre las métricas de observabilidad de AWS Glue, puede obtener información más detallada sobre los cuellos de botella en el rendimiento, los errores comunes y más.


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.

Chuhan LiuChuhan Liu es ingeniero de desarrollo de software en el equipo de AWS Glue. Le apasiona construir sistemas distribuidos escalables para el procesamiento, análisis y gestión de big data. En su tiempo libre, le gusta jugar al tenis.

Xiao Run Yu es ingeniero de desarrollo de software en el equipo de AWS Glue. Está trabajando en la creación de nuevas funciones para AWS Glue para ayudar a los clientes. Fuera del trabajo, Xiaorun disfruta explorar nuevos lugares en el Área de la Bahía.

sean ma es gerente principal de productos en el equipo de AWS Glue. Tiene una trayectoria de más de 18 años innovando y ofreciendo productos empresariales que liberan el poder de los datos para los usuarios. Fuera del trabajo, Sean disfruta del buceo y del fútbol 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