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
Faisal Abdullah e Satya Vajrapu, Amazon Web Services
Resumo
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
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.
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 na AWS CLI documentação.
A seguinte versão do Terraform instalada:
required_version = ">= 1.6.1, < 2.0.0"Você pode usar tfswitchpara 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 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.
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
. Para endpoints específicos, consulte Service endpoints and quotas 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
O diagrama de arquitetura a seguir destaca o Serviços da AWS usado na solução.

O diagrama anterior mostra o seguinte fluxo de trabalho:
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.
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.
O Timestream é integrado como uma fonte de dados no Amazon Managed Grafana, onde todas as métricas personalizadas do Amazon MWAA são armazenadas.
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
Serviços da AWS
Centro de Identidade do AWS IAMajuda você a gerenciar centralmente o acesso de login único (SSO) a todos os seus Contas da AWS aplicativos e à nuvem.
O AWS Lambda é 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 é 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) é 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
é 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) é 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 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
é 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-grafanastacks/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
grafanaFluxos de trabalho gerenciados da Amazon para Apache DAGs Airflow na pasta
mwaa/dagsO código do Lambda para analisar o arquivo.csv e armazenar métricas no banco de dados do Timestream na pasta
srcArquivos.json da política do IAM na pasta
templates
Práticas recomendadas
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
Épicos
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Implantar a infraestrutura. | Para implantar a infraestrutura da solução, faça o seguinte:
| AWS DevOps |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Valide o ambiente do Amazon MWAA. | Para validar o ambiente do Amazon MWAA, faça o seguinte:
| 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:
Você também pode ver as execuções bem-sucedidas de cada DAG na coluna Execuções. | Engenheiro de dados, AWS DevOps |
| 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:
| 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:
Para obter mais informações, consulte Ampliar o espaço de trabalho com plug-ins na documentação do Amazon Managed Grafana. | AWS DevOps, DevOps engenheiro |
| 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:
A página de métricas do painel exibirá as seguintes informações:
| AWS DevOps |
Personalize o painel do Amazon Managed Grafana. | Para personalizar os painéis para futuros aprimoramentos, faça o seguinte:
Como alternativa, o código-fonte desse painel está disponível no | AWS DevOps |
| 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:
| AWS DevOps, engenheiro de dados |
Exclua os objetos nos buckets do Amazon S3. | Para excluir os buckets mwaa-events-bucket-* e mwaa-metrics-bucket-* do Amazon S3, siga as instruções para usar o console do Amazon S3 em Excluindo um bucket 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:
| AWS DevOps |
Solução de problemas
| Problema | Solução |
|---|---|
| Atualize seu AWS CLI para a versão mais recente. |
Erro ao carregar fontes de dados:
| O erro é intermitente. Aguarde alguns minutos e atualize as fontes de dados para visualizar a fonte de dados do Timestream listada. |
Recursos relacionados
AWS documentação
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-nocookie.com/embed/XX2Xcz-PS9U? controles = 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-nocookie.com/embed/A4 OuJHxl2xp? controles = 0
Mais informações
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 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