View a markdown version of this page

Automatização da ingestão e da visualização de métricas personalizadas do Amazon MWAA no Amazon Managed Grafana usando o Terraform - Recomendações da AWS

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

Fluxo de trabalho para automatizar a ingestão de métricas personalizadas do Amazon MWAA.

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.

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

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

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

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 na documentação do Terraform.

Épicos

TarefaDescriptionHabilidades necessárias

Implantar a infraestrutura.

Para implantar a infraestrutura da solução, faça o seguinte:

  1. Abra um terminal ou prompt de comando em seu computador local ou usando AWS CloudShell.

  2. Navegue até o diretório em que você deseja clonar o repositório.

  3. Para clonar o repositório, execute o seguinte comando:

    git clone https://github.com/aws-samples/visualize-amazon-mwaa-custom-metrics-grafana
  4. Após concluir o processo de clonagem, execute o seguinte comando para navegar até o diretório do repositório clonado:

    cd visualize-amazon-mwaa-custom-metrics-grafana/stacks/infra
  5. Para fazer download e inicializar os provedores necessários, execute o seguinte comando:

    terraform init
  6. Para obter uma visão abrangente de todos os recursos que o Terraform criará, execute o seguinte comando:

    terraform plan

    O Terraform provisiona os seguintes recursos:

    • Amazon Virtual Private Cloud (Amazon VPC) e componentes de rede associados

    • Recursos do Amazon S3

    • AWS Lambda funções

    • Recursos do Amazon Managed Grafana (espaço de trabalho, painéis, fonte de dados)

    • Suporte aos recursos do IAM (perfis e políticas)

  7. Para criar os AWS recursos a partir da saída do plano, execute o seguinte comando:

    terraform apply -auto-approve

    O provisionamento da infraestrutura é concluído em aproximadamente 20 minutos.

  8. Para criar os AWS recursos especificados de acordo com a configuração definida nos seus arquivos do Terraform, execute o seguinte comando:

    terraform apply
AWS DevOps
TarefaDescriptionHabilidades necessárias

Valide o ambiente do Amazon MWAA.

Para validar o ambiente do Amazon MWAA, faça o seguinte:

  1. Faça login no Console de gerenciamento da AWS, navegue até o console do painel do Amazon MWAA e selecione Open Airflow UI.

  2. Você deve ver os três seguintes DAGs no status Ativo:

    • data-extract

    • run-example-dag

    • other-sample-dag

  3. Se um DAG não estiver ativo, você poderá ativá-lo habilitando a chave seletora ao lado do nome do DAG.

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:

  • run-example-dag- Funciona a cada 7 minutos

  • other-sample-dag- Funciona a cada 10 minutos

  • data-extract: é executado a cada hora

Você também pode ver as execuções bem-sucedidas de cada DAG na coluna Execuções.

Engenheiro de dados, AWS DevOps
TarefaDescriptionHabilidades 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:

  1. Abra o console do Amazon Managed Grafana.

  2. Em Espaços de trabalho, selecione o espaço de trabalho grafana-ws-dev e navegue até a guia Autenticação no painel inferior.

  3. Escolha o botão Atribuir novo usuário ou grupo.

  4. Adicione seu grupo na guia Grupos ou um usuário na guia Usuários e escolha o botão Atribuir usuários e grupos.

  5. Depois que o usuário (ou grupo) for adicionado, transforme esse usuário (ou grupo) em administrador. Selecione o usuário em Usuários ou grupos atribuídos na guia Grupo de usuários atribuídos e escolha Tornar administrador no menu suspenso. Para obter mais informações, consulte Use Centro de Identidade do AWS IAM com seu espaço de trabalho Amazon Managed Grafana na documentação do Amazon Managed Grafana.

  6. Navegue até Espaços de trabalho e escolha o URL do espaço de trabalho do Grafana. Para entrar no Amazon Managed Grafana como administrador, escolha Entrar com. Centro de Identidade do AWS IAM

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:

  1. No console Amazon Managed Grafana, expanda o menu no painel de navegação esquerdo e acesse Administração, Plug-ins.

  2. Pesquise e instale a versão mais recente do plug-in do Amazon Timestream.

  3. Depois que o plug-in for instalado, acesse Administração, Fontes de dados para ver a fonte de dados do Timestream. Se a fonte de dados não estiver listada, atualize a página.

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
TarefaDescriptionHabilidades 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:

  1. No console do Amazon Managed Grafana, selecione Painéis no painel de navegação à esquerda.

  2. Para visualizar as métricas, escolha Painéis de eventos do MWAA e selecione mwaa_metrics.

A página de métricas do painel exibirá as seguintes informações:

  • O total de execuções de DAGs na última hora

  • O total de execuções de DAGs bem-sucedidas, malsucedidas e em execução na última hora

  • A duração média de todas as execuções bem-sucedidas e malsucedidas de DAGs

AWS DevOps

Personalize o painel do Amazon Managed Grafana.

Para personalizar os painéis para futuros aprimoramentos, faça o seguinte:

  1. Na página mwaa_metrics do painel do Amazon Managed Grafana, escolha o ícone de configurações do painel.

  2. Para visualizar a estrutura de dados que define o painel, escolha Modelo JSON. Você pode personalizar o painel fazendo edições nesse modelo JSON diretamente no console.

Como alternativa, o código-fonte desse painel está disponível no dashboard.json arquivo na stacks/infra/grafana pasta no GitHub repositório.

AWS DevOps
TarefaDescriptionHabilidades necessárias

Pausa as execuções de DAGs no Amazon MWAA.

Para pausar as execuções de DAGs, faça o seguinte:

  1. No console do Amazon MWAA, navegue até os Ambientes do Airflow e escolha Abrir interface de usuário do Airflow.

  2. Para pausar os DAGs, use a chave seletora ao lado de cada DAG.

  3. Atualize a página da interface do Airflow, que deve listar três DAGs na seção Pausado.

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:

  1. (Opcional) Antes de excluir os recursos, você pode visualizar as alterações que o Terraform fará. Para gerar um plano, execute o seguinte comando:

    terraform plan -destroy

    A saída do comando mostra que o destroy comando excluirá todos os AWS recursos que foram criados anteriormente.

  2. terraform destroy -auto-approve

    Esse comando leva aproximadamente 20 minutos para destruir a infraestrutura.

    nota

    Para destruir todos os recursos gerenciados pelo Terraform, execute o comando a seguir. : a marcação -auto-approve não espera a confirmação do usuário para começar a destruir os recursos.

  3. Para excluir o arquivo local de estado do Terraform, execute os seguintes comandos:

    rm .terraform.lock.hcl rm -rf .terraform rm terraform.tfstate*
AWS DevOps

Solução de problemas

ProblemaSoluçã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.

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

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 para criar AWS recursos. Você pode integrar ainda mais esse código aos seus fluxos de trabalho de implantação de infraestrutura.