Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Automatización de la ingesta y visualización de métricas personalizadas de Amazon MWAA en Amazon Managed Grafana mediante Terraform
Faisal Abdullah y Satya Vajrapu, Amazon Web Services
Resumen
En este patrón se explica cómo usar Amazon Managed Grafana para crear y supervisar métricas personalizadas que Amazon Managed Workflows para Apache Airflow (Amazon MWAA) incorpora. Amazon MWAA actúa como orquestador de los flujos de trabajo y emplea gráficos acíclicos dirigidos (DAGs) que se escriben en Python. Este patrón se centra en la supervisión de métricas personalizadas, como el número total de ejecuciones en la última hora, el recuento de aprobaciones y errores en DAGs cada hora y la DAGs duración media de estos procesos. Este análisis muestra cómo Amazon Managed Grafana se integra con Amazon MWAA para permitir una supervisión exhaustiva y obtener información sobre la orquestación de los flujos de trabajo en este entorno.
Requisitos previos y limitaciones
Requisitos previos
Un activo Cuenta de AWS con los permisos de usuario necesarios para crear y gestionar lo siguiente Servicios de AWS:
AWS Identity and Access Management Funciones y políticas (IAM)
AWS Lambda
Amazon Managed Grafana
Flujos de trabajo administrados de Amazon para Apache Airflow (Amazon MWAA)
Amazon Simple Storage Service (Amazon S3)
Amazon Timestream
Acceso a un entorno del intérprete de comandos que puede ser un terminal en su máquina local o AWS CloudShell.
Un entorno de shell con Git instalado y la última versión de AWS Command Line Interface (AWS CLI) instalada y configurada. Para obtener más información, consulta Instalar o actualizar a la última versión de AWS CLI en la AWS CLI documentación.
La siguiente versión de Terraform instalada:
required_version = ">= 1.6.1, < 2.0.0". Puede usar tfswitchpara cambiar entre diferentes versiones de Terraform. La fuente de identidad configurada es AWS IAM Identity Center para su Cuenta de AWS. Para más información, consulte Confirmación de los orígenes de identidad en IAM Identity Center en la documentación de IAM Identity Center. Puede elegir entre el Active Directory predeterminado Directorio de IAM Identity Center o un proveedor de identidad (IdP) externo, como Okta. Para más información, consulte Recursos relacionados.
Limitaciones
Algunos Servicios de AWS no están disponibles en todos. Regiones de AWS Para obtener información sobre la disponibilidad en regiones, consulte Servicios de AWS by Region
. Para ver los puntos de conexión específicos, consulte Service endpoints and quotas y elija el enlace del servicio.
Versiones de producto
Terraform
required_version = ">= 1.6.1, < 2.0.0"Amazon Managed Grafana, versión 9.4 o posterior. Este patrón se probó en la versión 9.4.
Arquitectura
El siguiente diagrama de arquitectura destaca lo que se Servicios de AWS utiliza en la solución.

En el anterior diagrama se muestra el flujo de trabajo siguiente:
Las métricas personalizadas de Amazon MWAA se originan en las DAGs que se ejecutan en el entorno. Las métricas se cargan en el bucket de Amazon S3 en un formato de archivo CSV. A continuación, se DAGs utilizan las funciones de consulta de bases de datos de Amazon MWAA:
run-example-dag: este DAG contiene un ejemplo de código de Python que define una o más tareas. Se ejecuta cada 7 minutos e imprime la fecha. Tras imprimir la fecha, el DAG incluye una tarea para suspender o pausar la ejecución durante un período específico.other-sample-dag: este DAG se ejecuta cada 10 minutos e imprime la fecha. Tras imprimir la fecha, el DAG incluye una tarea para suspender o pausar la ejecución durante un período específico.data-extract: este DAG se ejecuta cada hora y consulta la base de datos de Amazon MWAA y recopila métricas. Una vez recopiladas las métricas, este DAG las escribe en un bucket de Amazon S3 para poder realizar un procesamiento y análisis posterior.
Para agilizar el procesamiento de datos, las funciones de Lambda se ejecutan cuando las activan eventos de Amazon S3, lo que facilita la carga de métricas en Timestream.
Timestream se integra como origen de datos en Amazon Managed Grafana, donde se almacenan todas las métricas personalizadas de Amazon MWAA.
Los usuarios pueden consultar los datos y crear paneles personalizados para visualizar los indicadores clave de rendimiento y obtener información sobre la orquestación de los flujos de trabajo de Amazon MWAA.
Tools (Herramientas)
Servicios de AWS
AWS IAM Identity Centerle ayuda a gestionar de forma centralizada el acceso mediante el inicio de sesión único (SSO) a todas sus aplicaciones y a las de la nube. Cuentas de AWS
AWS Lambda es un servicio de computación que ayuda a ejecutar código sin necesidad de aprovisionar ni administrar servidores. Ejecuta el código solo cuando es necesario y amplía la capacidad de manera automática, por lo que solo pagará por el tiempo de procesamiento que utilice. En este patrón, AWS Lambda ejecuta el código de Python en respuesta a los eventos de Amazon S3 y administra los recursos informáticos automáticamente.
Amazon Managed Grafana es un servicio de visualización de datos seguro y completamente administrado que puede utilizar para consultar, correlacionar, visualizar y recibir al instante alertas sobre métricas operativas, registros y seguimientos de varios orígenes. Este patrón utiliza Amazon Managed Grafana para crear un panel que le permita ver las métricas y alertas.
Amazon Managed Workflows para Apache Airflow (Amazon MWAA) es un servicio de orquestación administrada de Apache Airflow que puede usar para configurar y usar canalizaciones de datos en la nube a escala. Apache Airflow
es una herramienta de código abierto que se utiliza para crear, programar y supervisar secuencias de procesos y tareas denominadas flujos de trabajo mediante programación. En este patrón, se implementan una muestra DAGs y un extractor de métricas DAG en Amazon MWAA. Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos basado en la nube que lo ayuda a almacenar, proteger y recuperar cualquier cantidad de datos. En este patrón, Amazon S3 se utiliza para almacenar DAGs scripts y métricas personalizadas en formato CSV.
Amazon Timestream LiveAnalytics for is es una base de datos de series temporales rápida, escalable, totalmente administrada y diseñada específicamente que facilita el almacenamiento y el análisis de billones de puntos de datos de series temporales por día. Timestream for LiveAnalytics también se integra con los servicios más utilizados para la recopilación de datos, la visualización y el aprendizaje automático. En este patrón, se utiliza para ingerir las métricas personalizadas de Amazon MWAA que se hayan generado.
Otras herramientas
HashiCorp Terraform
es una herramienta de infraestructura como código (IaC) que facilita usar el código para aprovisionar y administrar los recursos y la infraestructura en la nube. Este patrón utiliza un módulo de Terraform para automatizar el aprovisionamiento de la infraestructura en AWS.
Repositorio de código
El código de este patrón está disponible GitHub en el repositorio visualize-amazon-mwaa-custom-metrics-grafanastacks/Infra contiene los siguientes elementos:
Archivos de configuración de Terraform para todos los recursos AWS
Archivo .json del panel de control de Grafana en la carpeta
grafanaAmazon Managed Workflows para Apache Airflow DAGs en la carpeta
mwaa/dagsCódigo de Lambda para analizar el archivo.csv y almacenar las métricas en la base de datos de Timestream de la carpeta
srcLos archivos .json de la política de IAM están en la carpeta
templates
Prácticas recomendadas
Terraform debe almacenar el estado de su infraestructura y configuración administradas para poder asignar recursos del mundo real a su configuración. De forma predeterminada, Terraform almacena el estado de forma local en un archivo denominado terraform.tfstate. Es imprescindible garantizar la seguridad e integridad de su archivo de estado de Terraform, ya que mantiene el estado actual de su infraestructura. Para más información, consulte Estado remoto
Epics
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Implemente la infraestructura. | Para implementar la infraestructura de la solución, haga lo siguiente:
| AWS DevOps |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Valide el entorno de Amazon MWAA | Para validar el entorno de Amazon MWAA, haga lo siguiente:
| AWS DevOps, ingeniero de datos |
Compruebe los programas de DAG. | Para ver cada programa del DAG, vaya a la pestaña Programación de la interfaz de usuario de Airflow. Cada una de las siguientes DAGs opciones tiene una programación preconfigurada, que se ejecuta en el entorno Amazon MWAA y genera métricas personalizadas:
También puede ver las ejecuciones correctas de cada DAG en la columna Ejecuciones. | Ingeniero de datos, AWS DevOps |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Configure el acceso al espacio de trabajo de Amazon Managed Grafana. | Los scripts de Terraform crearon el espacio de trabajo, los paneles y la página de métricas de Amazon Managed Grafana necesarios. Para configurar el acceso de forma que pueda verlos, haga lo siguiente:
| AWS DevOps |
Instalación del complemento de Amazon Timestream. | Las métricas personalizadas de Amazon MWAA se cargan en la base de datos de Timestream. Use el complemento de Timestream para visualizar las métricas con los paneles de Amazon Managed Grafana. Para instalar el complemento de Timestream, siga este procedimiento:
Para más información, consulte Ampliación del espacio de trabajo con complementos en la documentación de Amazon Managed Grafana. | AWS DevOps, DevOps ingeniero |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Consulte el panel de Amazon Managed Grafana. | Para ver las métricas que se incorporaron al espacio de trabajo de Amazon Managed Grafana, haga lo siguiente:
Las métricas del panel muestran la siguiente información:
| AWS DevOps |
Personalice el panel de Amazon Managed Grafana. | Para personalizar los paneles para futuras mejoras, siga este procedimiento:
Como alternativa, el código fuente de este panel está disponible en el | AWS DevOps |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Pause las ejecuciones de DAG en Amazon MWAA. | Para pausar las ejecuciones de DAG, siga este procedimiento:
| AWS DevOps, ingeniero de datos |
Elimine todos los objetos de los buckets de Amazon S3. | Para eliminar los buckets de Amazon S3 mwaa-events-bucket-* y mwaa-metrics-bucket-*, siga las instrucciones de uso de la consola de Amazon S3 que se encuentran en Eliminar un bucket en la documentación de Amazon S3. | AWS DevOps |
Elimine los recursos creados por Terraform. | Para eliminar los recursos creados por Terraform y el archivo de estado local de Terraform asociado, haga lo siguiente:
| AWS DevOps |
Resolución de problemas
| Problema | Solución |
|---|---|
| Actualice la AWS CLI suya a la versión más reciente. |
Error al cargar los orígenes de datos -
| El error es intermitente. Espere unos minutos y, a continuación, actualice los orígenes de datos para ver el origen de datos de Timestream de la lista. |
Recursos relacionados
AWS documentación
AWS vídeos
Configure el Centro de identidades de IAM con Amazon Managed Grafana para realizar la autenticación, tal como se muestra en el siguiente video
.
https://www.youtube-nocookie.com/embed/XX2¿Xcz-Ps9U? controles = 0
https://www.youtube-nocookie.com/embed/A4 Og? JHxl2xp controles = 0
Información adicional
Puede crear una solución integral de supervisión y alertas para su entorno de Amazon MWAA, que permita realizar una administración proactiva y obtener una respuesta rápida a posibles problemas o anomalías. Amazon Managed Grafana incluye las siguientes funciones:
Alertas: puede configurar alertas en Amazon Managed Grafana en función de los umbrales o condiciones predefinidos. Configure notificaciones por correo electrónico para alertar a las partes interesadas pertinentes cuando determinadas métricas superen o estén por debajo de los umbrales especificados. Para más información, consulte Alertas de Grafana en la documentación de Amazon Managed Grafana.
Integración: puedes integrar Grafana gestionada por Amazon con varias herramientas de terceros OpsGenie, como o Slack PagerDuty, para mejorar las capacidades de notificación. Por ejemplo, puedes configurar webhooks o integrarlos APIs para activar incidentes y notificaciones en estas plataformas en función de las alertas generadas en Grafana gestionado por Amazon. Además, este patrón proporciona un GitHub repositorio