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.
Automatice la ingesta y visualización de métricas personalizadas de Amazon MWAA en Amazon Managed Grafana mediante Terraform
Creado por Faisal Abdullah (AWS) y Satya Vajrapu (AWS)
Resumen
En este patrón se explica cómo utilizar Amazon Managed Grafana para crear y supervisar las métricas personalizadas que ingiere Amazon Managed Workflows for Apache Airflow (Amazon MWAA). 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 organizació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
Acceda a un entorno de shell que puede ser una 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.
Se instaló la siguiente versión de Terraform:
required_version = ">= 1.6.1, < 2.0.0"
Puede usar tfswitch para cambiarentre diferentes versiones de Terraform. La fuente de identidad configurada es para su. AWS IAM Identity Center Cuenta de AWS Para obtener más información, consulte Confirme sus fuentes de identidad en el Centro de identidad de IAM en la documentación del Centro de identidad de IAM. Puede elegir entre el directorio predeterminado de Identity Center, Active Directory o un proveedor de identidad (IdP) externo, como Okta. Para obtener más información, consulte Recursos relacionados.
Limitaciones
Algunos Servicios de AWS no están disponibles en todos Regiones de AWS. Para ver la disponibilidad por región, consulta Servicios de AWS por región
. Para ver puntos de enlace específicos, consulta Puntos de enlace y cuotas del servicio y elige el enlace para el 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 resalta lo que Servicios de AWS se utiliza en la solución.

El diagrama anterior muestra los pasos del siguiente flujo de trabajo:
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 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 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 interrumpir 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 su posterior procesamiento y análisis.
Para agilizar el procesamiento de datos, las funciones de Lambda se ejecutan cuando son activadas por eventos de Amazon S3, lo que facilita la carga de métricas en Timestream.
Timestream está integrado como fuente 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 organización de los flujos de trabajo dentro de Amazon MWAA.
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 totalmente gestionado que puede utilizar para consultar, correlacionar y visualizar sus métricas, registros y trazas y emitir alertas sobre ellas. Este patrón utiliza Grafana gestionado por Amazon para crear un panel de control para la visualización de métricas y alertas.
Amazon Managed Workflows for Apache Airflow (Amazon MWAA) es un servicio de organización gestionado para Apache Airflow que puede utilizar para configurar y operar 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 mediante programación, denominadas flujos de trabajo. 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 le 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 asimilar las métricas personalizadas de Amazon MWAA generadas.
Otras herramientas
HashiCorp Terraform
es una herramienta de código abierto de infraestructura como código (IaC) que le ayuda a usar el código para aprovisionar y administrar la infraestructura y los recursos de la nube. Este patrón utiliza un módulo de Terraform para automatizar el aprovisionamiento de la infraestructura. 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
carpeta contiene lo siguiente:
Archivos de configuración de Terraform para todos los recursos AWS
Archivo .json del panel de control de Grafana en la carpeta
grafana
Amazon Managed Workflows para Apache Airflow DAGs en la carpeta
mwaa/dags
Código Lambda para analizar el archivo.csv y almacenar las métricas en la base de datos Timestream de la carpeta
src
Los 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 crucial garantizar la seguridad e integridad de su archivo de estado de Terraform, ya que mantiene el estado actual de su infraestructura. Para obtener 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 Amazon MWAA. | Para validar el entorno Amazon MWAA, haga lo siguiente:
| AWS DevOps, ingeniero de datos |
Verifique los horarios del 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 Grafana gestionado por Amazon. | 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 |
Instale el complemento Amazon Timestream. | Las métricas personalizadas de Amazon MWAA se cargan en la base de datos de Timestream. Utiliza el complemento Timestream para visualizar las métricas con los paneles de Grafana gestionados por Amazon. Para instalar el complemento Timestream, haga lo siguiente:
Para obtener más información, consulte Amplíe su espacio de trabajo con complementos en la documentación de Amazon Managed Grafana. | AWS DevOps, DevOps ingeniero |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Consulta el panel de control de Grafana gestionado por Amazon. | Para ver las métricas que se incorporaron al espacio de trabajo de Grafana gestionado por Amazon, haga lo siguiente:
La página de métricas del panel muestra la siguiente información:
| AWS DevOps |
Personaliza el panel de control de Grafana gestionado por Amazon. | Para personalizar los paneles de control para futuras mejoras, haga lo siguiente:
Como alternativa, el código fuente de este panel está disponible en el | AWS DevOps |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Pausa las ejecuciones del DAG Amazon MWAA. | Para pausar las ejecuciones del DAG, haga lo siguiente:
| AWS DevOps, ingeniero de datos |
Elimine 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 |
Destruye los recursos creados por Terraform. | Para destruir los recursos creados por Terraform y el archivo de estado local de Terraform asociado, haga lo siguiente:
| AWS DevOps |
Solución de problemas
Problema | Solución |
---|---|
| Actualice la AWS CLI suya a la versión más reciente. |
Error al cargar las fuentes de datos -
| El error es intermitente. Espere unos minutos y, a continuación, actualice las fuentes de datos para ver la fuente de datos de Timestream de la lista. |
Recursos relacionados
AWS documentación
AWS vídeos
https://www.youtube-nocookie.com/embed/XX2¿Xcz-Ps9U? controles = 0
https://www.youtube-nocookie.com/embed/JHxl2xp¿Z4 Og? controles = 0
Información adicional
Puede crear una solución integral de monitoreo y alertas para su entorno Amazon MWAA, que permita una administración proactiva y 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 umbrales o condiciones predefinidos. Configura 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 obtener más información, consulta las alertas de Grafana en la documentación de Grafana gestionada por Amazon.
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