

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
<a name="automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics"></a>

*Faisal Abdullah y Satya Vajrapu, Amazon Web Services*

## Resumen
<a name="automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics-summary"></a>

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
<a name="automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics-prereqs"></a>

**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](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html).
+ 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](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) AWS CLI documentación.
+ La siguiente versión de Terraform instalada: `required_version = ">= 1.6.1, < 2.0.0"`. Puede usar [tfswitch](https://tfswitch.warrensbox.com/) para 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](https://docs.aws.amazon.com/singlesignon/latest/userguide/prereq-identity-sources.html) 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](#automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics-resources).

**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](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Para ver los puntos de conexión específicos, consulte [Service endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) 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
<a name="automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics-architecture"></a>

El siguiente diagrama de arquitectura destaca lo que se Servicios de AWS utiliza en la solución.

![\[Flujo de trabajo para la automatización de la ingesta de métricas personalizadas de Amazon MWAA\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/3458d0a9-aee1-428a-bf2f-c357bb531c64/images/b43ed8d2-94ac-4438-913b-81c7eba8f3e0.png)


En el anterior diagrama se muestra el flujo de trabajo siguiente:

1. 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.

1. 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.

1. Timestream se integra como origen de datos en Amazon Managed Grafana, donde se almacenan todas las métricas personalizadas de Amazon MWAA.

1. 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)
<a name="automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics-tools"></a>

**Servicios de AWS**
+ [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)le 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](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) 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](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html) 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)](https://docs.aws.amazon.com/mwaa/latest/userguide/what-is-mwaa.html) 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](https://airflow.apache.org/) 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)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) 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](https://docs.aws.amazon.com/timestream/latest/developerguide/what-is-timestream.html) 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](https://www.terraform.io/docs) 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-grafana](https://github.com/aws-samples/visualize-amazon-mwaa-custom-metrics-grafana). La carpeta `stacks/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 `grafana`
+ Amazon Managed Workflows para Apache Airflow DAGs en la carpeta `mwaa/dags`
+ Código de Lambda para analizar el archivo.csv y almacenar las métricas en la base de datos de Timestream de la carpeta `src`
+ Los archivos .json de la política de IAM están en la carpeta `templates`

## Prácticas recomendadas
<a name="automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics-best-practices"></a>

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](https://developer.hashicorp.com/terraform/language/state/remote) en la documentación de Terraform. 

## Epics
<a name="automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics-epics"></a>

### Implementación de la infraestructura mediante Terraform
<a name="deploy-the-infrastructure-using-terraform"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Implemente la infraestructura. | Para implementar la infraestructura de la solución, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics.html) | AWS DevOps | 

### Validación de los recursos de infraestructura implementados
<a name="validate-the-deployed-infrastructure-resources"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Valide el entorno de Amazon MWAA | Para validar el entorno de Amazon MWAA, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics.html) | 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: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics.html)También puede ver las ejecuciones correctas de cada DAG en la columna **Ejecuciones**.  | Ingeniero de datos, AWS DevOps | 

### Configuración del entorno de Amazon Managed Grafana
<a name="configure-the-gra-environment"></a>


| 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:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics.html) | 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:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics.html)Para más información, consulte [Ampliación del espacio de trabajo con complementos](https://docs.aws.amazon.com/grafana/latest/userguide/grafana-plugins.html#manage-plugins) en la documentación de Amazon Managed Grafana. | AWS DevOps, DevOps ingeniero | 

### Visualización de las métricas personalizadas en el panel de Amazon Managed Grafana
<a name="visualize-the-custom-metrics-in-the-gra-dashboard"></a>


| 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:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics.html)Las métricas del panel muestran la siguiente información:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics.html) | AWS DevOps | 
| Personalice el panel de Amazon Managed Grafana. | Para personalizar los paneles para futuras mejoras, siga este procedimiento:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics.html)Como alternativa, el código fuente de este panel está disponible en el `dashboard.json` archivo de la `stacks/infra/grafana` carpeta del [GitHub repositorio](https://github.com/aws-samples/visualize-amazon-mwaa-custom-metrics-grafana/blob/main/stacks/infra/grafana/dashboard.json). | AWS DevOps | 

### Limpie AWS los recursos
<a name="clean-up-aws-resources"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Pause las ejecuciones de DAG en Amazon MWAA. | Para pausar las ejecuciones de DAG, siga este procedimiento:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics.html) | 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-\$1 y **mwaa-metrics-bucket-\$1****, siga las instrucciones de uso de la consola de Amazon S3 que se encuentran en [Eliminar un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html) 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:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics.html) | AWS DevOps | 

## Resolución de problemas
<a name="automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics-troubleshooting"></a>


| Problema | Solución | 
| --- | --- | 
| `null_resource.plugin_mgmt (local-exec): aws: error: argument operation: Invalid choice, valid choices are:` | Actualice la AWS CLI suya a la [versión más reciente](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html). | 
| Error al cargar los orígenes de datos - `Fetch error: 404 Not Found Instantiating…` | 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
<a name="automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics-resources"></a>

**AWS documentación**
+ [Amazon Managed Grafana para la creación de paneles y la visualización](https://docs.aws.amazon.com/prescriptive-guidance/latest/implementing-logging-monitoring-cloudwatch/amg-dashboarding-visualization.html)
+ [Configurar Grafana gestionada por Amazon para usar Okta](https://docs.aws.amazon.com/grafana/latest/userguide/AMG-SAML-providers-okta.html)
+ [Úsalo AWS IAM Identity Center con tu espacio de trabajo de Grafana gestionado por Amazon](https://docs.aws.amazon.com/grafana/latest/userguide/authentication-in-AMG-SSO.html)
+ [Trabajando con DAGs Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/working-dags.html)

**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.com/watch?v=XX2Xcz-Ps9U).




[https://www.youtube-nocookie.com/embed/XX2¿Xcz-Ps9U? controles = 0](https://www.youtube-nocookie.com/embed/XX2Xcz-Ps9U?controls=0)
+ [Si el Centro de identidades de IAM no está disponible, también puede integrar la autenticación de Amazon Managed Grafana mediante un proveedor de identidades (IdP) externo, como Okta, tal como se muestra en el siguiente video](https://www.youtube.com/watch?v=Z4JHxl2xpOg).




[https://www.youtube-nocookie.com/embed/A4 Og? JHxl2xp controles = 0](https://www.youtube-nocookie.com/embed/Z4JHxl2xpOg?controls=0)

## Información adicional
<a name="automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics-additional"></a>

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](https://docs.aws.amazon.com/grafana/latest/userguide/alerts-overview.html) 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](https://github.com/aws-samples/visualize-amazon-mwaa-custom-metrics-grafana) para crear AWS recursos. Puede integrar aún más este código con los flujos de trabajo de implementación de su infraestructura.