Crie alarmes para métricas personalizadas usando a detecção de anomalias do Amazon CloudWatch
Ram Kandaswamy e Raheem Jiwani, Amazon Web Services
Resumo
Na nuvem da Amazon Web Services (AWS), você pode usar o Amazon CloudWatch para criar alarmes que monitoram métricas e enviam notificações ou fazem alterações automaticamente se um limite for violado.
Para evitar ser limitado por limites estáticos, você pode criar alarmes com base em padrões anteriores e notificá-lo se métricas específicas estiverem fora da janela operacional normal. Por exemplo, você pode monitorar os tempos de resposta da sua API a partir do Amazon API Gateway e receber notificações sobre anomalias que impedem que você cumpra um Acordo de Serviço (SLA).
Esse padrão descreve como usar a detecção de anomalias do CloudWatch para métricas personalizadas. O padrão mostra como criar uma métrica personalizada no Amazon CloudWatch Logs Insights ou publicar uma métrica personalizada com uma função do AWS Lambda e, em seguida, configurar a detecção de anomalias e criar notificações usando o Amazon Simple Notification Service (Amazon SNS).
Pré-requisitos e limitações
Pré-requisitos
Uma conta AWS ativa
Um tópico do SNS existente, configurado para enviar notificações por e-mail. Para obter mais informações sobre isso, consulte Conceitos básicos do Amazon SNS na documentação do Amazon SNS.
Um aplicativo existente, configurado com o CloudWatch Logs.
Limitações
As métricas do CloudWatch não oferecem suporte a intervalos de tempo de milissegundos. Para obter mais informações sobre o detalhamento das métricas regulares e personalizadas, consulte as perguntas frequentes do Amazon CloudWatch
.
Arquitetura

O diagrama mostra o seguinte fluxo de trabalho:
Os logs que usam métricas criadas e atualizadas pelo CloudWatch Logs são transmitidos para o CloudWatch.
Um alarme é iniciado com base nos limites e envia um alerta para um tópico do SNS.
O Amazon SNS lhe enviará uma notificação por e-mail.
Pilha de tecnologia
CloudWatch
AWS Lambda
Amazon SNS
Ferramentas
O Amazon CloudWatch disponibiliza uma solução de monitoramento confiável, flexível e capaz de escalar conforme a necessidade.
O AWS Lambda é um serviço de computação que permite executar código sem a necessidade de provisionar ou gerenciar servidores.
O Amazon Simple Notification Service (Amazon SNS) é um serviço gerenciado que fornece entrega de mensagens de publicadores para assinantes.
Épicos
| Tarefa | Descrição | Habilidades necessárias |
|---|---|---|
Opção 1 - Crie uma métrica personalizada com uma função do Lambda. | Faça o download do arquivo Depois de executar a função do Lambda, você pode entrar no Console de Gerenciamento da AWS, abrir o console do CloudWatch e a métrica publicada estará disponível em seu namespace publicado. | Engenheiro de DevOps, AWS DevOps |
Opção 2 – Crie métricas personalizadas a partir dos grupos de log do CloudWatch. | Faça login no Console de Gerenciamento da AWS, abra o console do CloudWatch e escolha Grupos de logs. Escolha o grupo de logs para o qual você deseja criar uma métrica. Escolha Actions (Ações) e escolha Create metric filter (Criar filtro de métrica). Em Filter pattern (Padrão de filtro), insira o padrão de filtro que deseja usar. Para obter mais informações, consulte Sintaxe do padrão e do filtro na documentação do CloudWatch. Para testar seu padrão de filtro, insira um ou mais eventos de logs em Test Pattern (Testar padrão). Cada evento de log deve estar dentro de uma linha, porque as quebras de linha são usadas para separar eventos de log na caixa Log event messages (Mensagens do evento de log). Depois de testar o padrão, você pode inserir um nome e um valor para sua métrica em Detalhes da métrica. Para obter mais informações e etapas para criar uma métrica personalizada, consulte Criar um filtro de métrica para um grupo de logs na documentação do CloudWatch. | Engenheiro de DevOps, AWS DevOps |
Crie um alarme para sua métrica personalizada. | No console do CloudWatch, escolha Alarmes e, em seguida, escolha Criar alarme. Escolha Selecionar métrica e insira o nome da métrica que você criou anteriormente na caixa de pesquisa. Escolha a guia Métricas em gráficos e configure as opções de acordo com seus requisitos. Em Condições, escolha Detecção de anomalias em vez de Limites estáticos. Isso mostra uma banda com base em dois desvios padrão. É possível definir limites e ajustá-los de acordo com seus requisitos. Escolha Next (Próximo). notaA banda é dinâmica e depende da qualidade dos pontos de dados. Quando você começa a agregar mais dados, a faixa e os limites são atualizados automaticamente. | Engenheiro de DevOps, AWS DevOps |
Configure notificações do SNS. | Em Notification (Notificação), escolha um tópico do SNS para notificar quando o alarme estiver no estado Para que o alarme envie várias notificações para o mesmo estado de alarme ou para diferentes estados de alarme, escolha Add notification (Adicionar notificação). Escolha Próximo. Digite um nome e uma descrição para o alarme. O nome deve conter somente caracteres ASCII. Escolha Próximo. Em Preview and create (Previsualizar e criar), confirme se as informações e condições estão corretas e escolha Create alarm (Criar alarme). | Engenheiro de DevOps, AWS DevOps |
Recursos relacionados
Anexos
Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: attachment.zip