

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Automatização da ingestão e da visualização de métricas personalizadas do Amazon MWAA no Amazon Managed Grafana usando o Terraform
<a name="automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics"></a>

*Faisal Abdullah e Satya Vajrapu, Amazon Web Services*

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

Este padrão descreve como usar o Amazon Managed Grafana para criar e monitorar métricas personalizadas que são ingeridas pelo Amazon Managed Workflows for Apache Airflow (Amazon MWAA). O Amazon MWAA serve como orquestrador de fluxos de trabalho, empregando Directed Acyclic Graphs () que são programados em Python. DAGs Esse padrão se concentra no monitoramento de métricas personalizadas, incluindo o número total de DAGs execuções na última hora, a contagem de aprovados e reprovados a DAGs cada hora e a duração média desses processos. Essa análise mostra como o Amazon Managed Grafana se integra ao Amazon MWAA para permitir monitoramento e insights abrangentes sobre a orquestração de fluxos de trabalho nesse ambiente.

## Pré-requisitos e limitações
<a name="automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics-prereqs"></a>

**Pré-requisitos **
+ Um ativo Conta da AWS com as permissões de usuário necessárias para criar e gerenciar o seguinte Serviços da AWS:
  + AWS Identity and Access Management Funções e políticas (IAM)
  + AWS Lambda
  + Amazon Managed Grafana
  + Amazon Managed Workflows for Apache Airflow (Amazon MWAA)
  + Amazon Simple Storage Service (Amazon S3)
  + Amazon Timestream
+ Acesso a um ambiente de shell que pode ser um terminal em sua máquina local ou [AWS CloudShell](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html).
+ Um ambiente de shell com o Git instalado e a versão mais recente do AWS Command Line Interface (AWS CLI) instalada e configurada. Para obter mais informações, consulte [Instalação ou atualização para a versão mais recente do AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) na AWS CLI documentação.
+ A seguinte versão do Terraform instalada: `required_version = ">= 1.6.1, < 2.0.0"` Você pode usar [tfswitch](https://tfswitch.warrensbox.com/) para alternar entre diferentes versões do Terraform.
+ Fonte de identidade configurada Centro de Identidade do AWS IAM para o seu Conta da AWS. Para obter mais informações, consulte [Confirm your identity sources in IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/prereq-identity-sources.html) na documentação do Centro de Identidade do IAM. Você pode escolher entre o Active Directory padrão Diretório do Centro de Identidade do IAM ou um provedor de identidade externo (IdP), como o Okta. Para obter mais informações, consulte [Recursos relacionados](#automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics-resources).

**Limitações**
+ Alguns Serviços da AWS não estão disponíveis em todos Regiões da AWS. Para conferir a disponibilidade de uma região, consulte [Serviços da AWS by Region](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Para endpoints específicos, consulte [Service endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) e clique no link correspondente ao serviço desejado.

**Versões do produto**
+ Terraforma `required_version = ">= 1.6.1, < 2.0.0"`
+ Amazon Managed Grafana versão 9.4 ou posterior. Este padrão foi testado na versão 9.4.

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

O diagrama de arquitetura a seguir destaca o Serviços da AWS usado na solução.

![\[Fluxo de trabalho para automatizar a ingestão de métricas personalizadas do Amazon MWAA.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/3458d0a9-aee1-428a-bf2f-c357bb531c64/images/b43ed8d2-94ac-4438-913b-81c7eba8f3e0.png)


O diagrama anterior mostra o seguinte fluxo de trabalho:

1. As métricas personalizadas no Amazon MWAA se originam das DAGs que estão sendo executadas no ambiente. As métricas são carregadas para o bucket do Amazon S3 em formato de arquivo CSV. O seguinte DAGs usa os recursos de consulta de banco de dados do Amazon MWAA:
   + `run-example-dag`: esse DAG contém um exemplo de código Python que define uma ou mais tarefas. Ele é executado a cada sete minutos e imprime a data. Depois de imprimir a data, o DAG inclui uma tarefa para suspender ou pausar a execução por um período específico.
   + `other-sample-dag`: esse DAG é executado a cada dez minutos e imprime a data. Depois de imprimir a data, o DAG inclui uma tarefa para suspender ou pausar a execução por um período específico.
   + `data-extract`: esse DAG é executado a cada hora e consulta o banco de dados do Amazon MWAA e coleta métricas. Depois que as métricas são coletadas, esse DAG as grava em um bucket do Amazon S3 para realizar análise e processamento adicionais.

1. Para agilizar o processamento de dados, as funções do Lambda são executadas quando acionadas por eventos do Amazon S3, o que facilita o carregamento de métricas no Timestream.

1. O Timestream é integrado como uma fonte de dados no Amazon Managed Grafana, onde todas as métricas personalizadas do Amazon MWAA são armazenadas.

1. Os usuários podem consultar os dados e criar painéis personalizados para visualizar os principais indicadores de performance e obter informações sobre a orquestração dos fluxos de trabalho no Amazon MWAA.

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

**Serviços da AWS**
+ [Centro de Identidade do AWS IAM](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)ajuda você a gerenciar centralmente o acesso de login único (SSO) a todos os seus Contas da AWS aplicativos e à nuvem.
+ O [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) é um serviço de computação que ajuda a executar código sem exigir provisionamento ou gerenciamento de servidores. Ele executa o código somente quando necessário e dimensiona automaticamente, assim, você paga apenas pelo tempo de computação usado. Nesse padrão, AWS Lambda executa o código Python em resposta aos eventos do Amazon S3 e gerencia os recursos computacionais automaticamente.
+ O [Amazon Managed Grafana](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html) é um serviço de visualização de dados totalmente gerenciado que você pode usar para consultar, correlacionar e visualizar, além de gerar alertas sobre suas métricas, logs e rastreamentos. Este padrão usa o Amazon Managed Grafana para criar um painel para visualização de métricas e alertas.
+ O [Amazon Managed Workflows for Apache Airflow (Amazon MWAA)](https://docs.aws.amazon.com/mwaa/latest/userguide/what-is-mwaa.html) é um serviço de orquestração gerenciado para o Apache Airflow que é possível configurar e operar pipelines de dados na nuvem em escala. O [Apache Airflow](https://airflow.apache.org/) é uma ferramenta de código aberto usada para criar, agendar e monitorar programaticamente sequências de processos e tarefas chamadas de fluxos de trabalho. Nesse padrão, a amostra DAGs e um extrator de métricas DAG são implantados no Amazon MWAA.
+ O [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados. Nesse padrão, o Amazon S3 é usado para armazenar DAGs scripts e métricas personalizadas no formato CSV.
+ [O Amazon Timestream LiveAnalytics](https://docs.aws.amazon.com/timestream/latest/developerguide/what-is-timestream.html) for is é um banco de dados de séries temporais rápido, escalável, totalmente gerenciado e criado especificamente para facilitar o armazenamento e a análise de trilhões de pontos de dados de séries temporais por dia. O Timestream for LiveAnalytics também se integra aos serviços comumente usados para coleta de dados, visualização e aprendizado de máquina. Neste padrão, ele é usado para ingerir as métricas personalizadas geradas pelo Amazon MWAA.

**Outras ferramentas**
+ O [HashiCorp Terraform](https://www.terraform.io/docs) é uma ferramenta de infraestrutura como código (IaC) que ajuda a provisionar e gerenciar recursos e infraestrutura de nuvem por meio de código. Este padrão usa um módulo do Terraform para automatizar o provisionamento da infraestrutura na AWS.

**Repositório de código**

O código desse padrão está disponível GitHub no repositório [visualize-amazon-mwaa-custom-metrics-grafana](https://github.com/aws-samples/visualize-amazon-mwaa-custom-metrics-grafana). A pasta `stacks/Infra` contém o seguinte:
+ Arquivos de configuração do Terraform para todos os recursos AWS 
+ O arquivo .json do painel do Grafana na pasta `grafana`
+ Fluxos de trabalho gerenciados da Amazon para Apache DAGs Airflow na pasta `mwaa/dags`
+ O código do Lambda para analisar o arquivo.csv e armazenar métricas no banco de dados do Timestream na pasta `src`
+ Arquivos.json da política do IAM na pasta `templates`

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

O Terraform deve armazenar o estado sobre sua infraestrutura gerenciada e configuração para que possa mapear recursos do mundo real para sua configuração. Por padrão, o Terraform armazena o estado localmente em um arquivo chamado `terraform.tfstate`. É crucial garantir a segurança e a integridade do seu arquivo de estado do Terraform, pois ele mantém o estado atual da sua infraestrutura. Para obter mais informações, consulte [Remote State](https://developer.hashicorp.com/terraform/language/state/remote) na documentação do Terraform. 

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

### Implantar a infraestrutura usando o Terraform
<a name="deploy-the-infrastructure-using-terraform"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Implantar a infraestrutura. | Para implantar a infraestrutura da solução, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics.html) | AWS DevOps | 

### Validar os recursos de infraestrutura implantados
<a name="validate-the-deployed-infrastructure-resources"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Valide o ambiente do Amazon MWAA. | Para validar o ambiente do Amazon MWAA, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics.html) | AWS DevOps, engenheiro de dados | 
| Verifique as programações dos DAGs. | Para ver cada programação de DAG, acesse a guia **Programar** na **IU do Airflow**.Cada um dos itens a seguir DAGs tem uma programação pré-configurada, que é executada no ambiente Amazon MWAA e gera métricas personalizadas: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics.html)Você também pode ver as execuções bem-sucedidas de cada DAG na coluna **Execuções**.  | Engenheiro de dados, AWS DevOps | 

### Configurar o ambiente do Amazon Managed Grafana
<a name="configure-the-gra-environment"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o acesso ao espaço de trabalho do Amazon Managed Grafana. | Os scripts do Terraform criaram o espaço de trabalho, os painéis e a página de métricas necessários do Amazon Managed Grafana. Para configurar o acesso de modo que você possa exibi-los, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics.html) | AWS DevOps | 
| Instale o plug-in do Amazon Timestream.  | As métricas personalizadas do Amazon MWAA são carregadas no banco de dados do Timestream. Você usa o plug-in do Timestream para visualizar as métricas com os painéis do Amazon Managed Grafana.Para instalar o plug-in do Timestream, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics.html)Para obter mais informações, consulte [Ampliar o espaço de trabalho com plug-ins](https://docs.aws.amazon.com/grafana/latest/userguide/grafana-plugins.html#manage-plugins) na documentação do Amazon Managed Grafana. | AWS DevOps, DevOps engenheiro | 

### Visualizar as métricas personalizadas no painel do Amazon Managed Grafana
<a name="visualize-the-custom-metrics-in-the-gra-dashboard"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Veja o painel do Amazon Managed Grafana. | Para visualizar as métricas que foram ingeridas no espaço de trabalho do Amazon Managed Grafana, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics.html)A página de métricas do painel exibirá as seguintes informações:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics.html) | AWS DevOps | 
| Personalize o painel do Amazon Managed Grafana. | Para personalizar os painéis para futuros aprimoramentos, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics.html)Como alternativa, o código-fonte desse painel está disponível no `dashboard.json` arquivo na `stacks/infra/grafana` pasta no [GitHub repositório](https://github.com/aws-samples/visualize-amazon-mwaa-custom-metrics-grafana/blob/main/stacks/infra/grafana/dashboard.json). | AWS DevOps | 

### Limpe AWS os recursos
<a name="clean-up-aws-resources"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Pausa as execuções de DAGs no Amazon MWAA. | Para pausar as execuções de DAGs, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics.html) | AWS DevOps, engenheiro de dados | 
| Exclua os objetos nos buckets do Amazon S3. | Para excluir os buckets **mwaa-events-bucket-\$1 e **mwaa-metrics-bucket-\$1**** do Amazon S3, siga as instruções para usar o console do Amazon S3 em Excluindo [um bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html) na documentação do Amazon S3. | AWS DevOps | 
| Destrua os recursos criados pelo Terraform. | Para destruir os recursos criados pelo Terraform e o arquivo local de estado do Terraform associado, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics.html) | AWS DevOps | 

## Solução de problemas
<a name="automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| `null_resource.plugin_mgmt (local-exec): aws: error: argument operation: Invalid choice, valid choices are:` | Atualize seu AWS CLI para a [versão mais recente](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html). | 
| Erro ao carregar fontes de dados: `Fetch error: 404 Not Found Instantiating…` | O erro é intermitente. Aguarde alguns minutos e atualize as fontes de dados para visualizar a fonte de dados do Timestream listada.  | 

## Recursos relacionados
<a name="automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics-resources"></a>

**AWS documentação**
+ [Amazon Managed Grafana for dashboarding and visualization](https://docs.aws.amazon.com/prescriptive-guidance/latest/implementing-logging-monitoring-cloudwatch/amg-dashboarding-visualization.html)
+ [Configurar o Amazon Managed Grafana para usar o Okta](https://docs.aws.amazon.com/grafana/latest/userguide/AMG-SAML-providers-okta.html)
+ [Use Centro de Identidade do AWS IAM com seu espaço de trabalho Amazon Managed Grafana](https://docs.aws.amazon.com/grafana/latest/userguide/authentication-in-AMG-SSO.html)
+ [Trabalhando com o DAGs Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/working-dags.html)

**AWS vídeos**
+ Configurar o Centro de Identidade do IAM com o Amazon Managed Grafana para autenticação, conforme mostrado neste [vídeo](https://www.youtube.com/watch?v=XX2Xcz-Ps9U).




[https://www.youtube-nocookie.com/embed/XX2Xcz-PS9U? controles = 0](https://www.youtube-nocookie.com/embed/XX2Xcz-Ps9U?controls=0)
+ Se o Centro de Identidade do IAM não estiver disponível, você também pode integrar a autenticação do Amazon Managed Grafana usando um provedor de identidade (IdP) externo, como o Okta, conforme mostrado neste [vídeo](https://www.youtube.com/watch?v=Z4JHxl2xpOg).




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

## Mais informações
<a name="automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics-additional"></a>

Você pode criar uma solução abrangente de monitoramento e alerta para seu ambiente do Amazon MWAA, permitindo gerenciamento proativo e resposta rápida a possíveis problemas ou anomalias. O Amazon Managed Grafana inclui os seguintes recursos:

**Alertas**: você pode configurar alertas no Amazon Managed Grafana com base em limites ou condições predefinidos. Configure notificações por e-mail para alertar as partes interessadas relevantes quando determinadas métricas excederem ou ficarem abaixo dos limites especificados. Para obter mais informações, consulte [Grafana Alerting](https://docs.aws.amazon.com/grafana/latest/userguide/alerts-overview.html) na documentação do Amazon Managed Grafana.

**Integração** — Você pode integrar o Amazon Managed Grafana com várias ferramentas de terceiros OpsGenie, como, PagerDuty, ou o Slack para melhorar os recursos de notificação. Por exemplo, você pode configurar webhooks ou integrá-los APIs para acionar incidentes e notificações nessas plataformas com base nos alertas gerados no Amazon Managed Grafana. Além disso, esse padrão fornece um [GitHub repositório](https://github.com/aws-samples/visualize-amazon-mwaa-custom-metrics-grafana) para criar AWS recursos. Você pode integrar ainda mais esse código aos seus fluxos de trabalho de implantação de infraestrutura.