# Guia Configuração do External Service Incident CloudWatch na Elven Platform

A integração do **External Service Incident CloudWatch** com a Elven Platform é uma solução pensada para facilitar sua vida, centralizando a gestão de incidentes em um único lugar. Com ela, você recebe notificações diretamente da Amazon CloudWatch, eliminando a necessidade de alternar entre plataformas e permitindo uma visão clara e eficiente de tudo o que acontece no seu ambiente de trabalho.&#x20;

Além disso, a integração é totalmente personalizável. Você define quais métricas e condições são mais relevantes para o seu negócio, garantindo que as notificações de incidentes recebidas sejam úteis e alinhadas com suas necessidades. É uma maneira prática de transformar o monitoramento em uma experiência mais fluida, organizada e assertiva.&#x20;

{% embed url="<https://demo.elven.works/demo/cmd3gwita03s63l0i9ig6sr6m>" %}

## **Configuração API Token**

Para configurar o **External Service Incident no CloudWatch, é** necessário gerar um **API Token**. Esse token será utilizado como parte essencial do processo de autenticação, sendo incorporado diretamente no **Path** da requisição. Ele atua como uma camada de segurança adicional, garantindo que apenas usuários devidamente autorizados possam acessar e interagir com o serviço externo. Nesse contexto, o **API Token** é incluído como parâmetro da URL na chamada para a API. Isso assegura que a autenticação do cliente seja realizada corretamente durante o envio de notificações de incidentes ou a interação com o serviço.&#x20;

* No menu superior na parte de configuração de seu usuário, clique em **Organization Settings.** &#x20;
* Na aba AP&#x49;**,** clique no botão + para criar um novo API Token.

<figure><img src="https://1787513308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjv1RurNOS0w2Y9bpxizM%2Fuploads%2FONpSLEUNRUr0DHNlJ7JA%2Fextserci01.png?alt=media&#x26;token=5cb7d606-f1db-458d-9635-02c33dec5451" alt=""><figcaption></figcaption></figure>

## **Acessando External Service Incident CloudWatch**&#x20;

* Navegue até o menu principal e clique em **Services Hub**. &#x20;
* Em **External Services Monitoring**, selecione o item **Incident CloudWatch**.&#x20;

<figure><img src="https://1787513308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjv1RurNOS0w2Y9bpxizM%2Fuploads%2Fjntu2s1tDGzU3XvVCkTb%2Fextserci02.png?alt=media&#x26;token=90ab31b3-1ae2-4ffa-8fb1-c6a7f5feb247" alt=""><figcaption></figcaption></figure>

## **Configuração do External Service Incident CloudWatch**

A configuração dos campos no **External Service Incident CloudWatch** é um passo essencial para garantir que suas notificaçoes sobre incidentes na Elven Platform funcionem de forma eficiente e atinjam as pessoas certas no momento certo. O primeiro campo, **External Service Name**, é onde você deve dar um nome ao serviço que está sendo integrado. Este nome será exibido em dashboards e relatórios, facilitando a identificação rápida do serviço em meio a outros. Escolha um nome claro e descritivo, pois ele será sua referência para gerenciar e revisar o histórico de incidentes no futuro. &#x20;

Já o campo **Responders** é a ponte entre o incidente e a solução do problema. Aqui você define quem será notificado quando a notificação de incidente for disparada, sejam indivíduos específicos, equipes inteiras ou mesmo sistemas automatizados. Este campo é vital para que as notificações de incidentes cheguem às pessoas certas, evitando atrasos e confusões. Adicione contatos relevantes, como e-mails ou IDs de equipes, e certifique-se de que todos os responsáveis tenham as informações e acessos necessários para agir rapidamente.&#x20;

<figure><img src="https://1787513308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjv1RurNOS0w2Y9bpxizM%2Fuploads%2FrfgpAleIUXTBwudJpTLS%2Fextserci03.png?alt=media&#x26;token=b29e0f63-88d7-430e-852e-ed79283877f1" alt=""><figcaption></figcaption></figure>

## **Função Lambda do External Service Incident CloudWatch**

Ao configurar um **External Service Incident CloudWatch**, um dos passos mais importantes é selecionar a **API Token** que você gerou anteriormente. Essa chave é como uma credencial exclusiva que conecta seu sistema ao serviço de notificação de incidentes de maneira segura. Pense nela como uma chave mestra que permite autenticação e comunicação entre as plataformas. Certifique-se de escolher a **API Token** correta e mantê-la protegida, pois ela é fundamental para o funcionamento do serviço e para garantir a integridade da integração.&#x20;

Depois de selecionar a **API Token**, você terá acesso à função, que é gerada automaticamente. Essa função será responsável por intermediar a comunicação entre os alarmes do **CloudWatch** e a **Elven Platform**, processando os eventos recebidos e enviando notificações claras e acionáveis. A integração é projetada para transformar dados brutos em notificações de incidentes estruturados, garantindo que qualquer evento importante seja capturado e entregue de forma eficiente. Isso assegura que você esteja sempre informado sobre os estados críticos de seus recursos, permitindo uma resposta rápida e assertiva.&#x20;

<figure><img src="https://1787513308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjv1RurNOS0w2Y9bpxizM%2Fuploads%2FOhLHlkSHcKprAhy08ZfN%2Fextserci04.png?alt=media&#x26;token=c32ad59e-2790-4ab7-aac1-432d88586d02" alt=""><figcaption></figcaption></figure>

## **AWS Lambda e AWS SNS**

Essa automação é uma peça-chave para agilizar a identificação e a resposta a problemas em seu ambiente de monitoramento. Nesse processo, a função **Lambda** e o serviço **SNS (Simple Notification Service)** desempenham papéis fundamentais.&#x20;

A **função Lambda** atua como o intermediário inteligente, processando os eventos gerados pelos alarmes do CloudWatch. Quando configurada corretamente, ela transforma essas notificações brutas em informações que podem ser enviadas para a Elven Platform, garantindo que você receba notificações de incidentes claros e acionáveis. Sem a Lambda, o fluxo automatizado de dados entre o CloudWatch e a Elven Platform não seria possível.&#x20;

O **SNS (Simple Notification Service)** desempenha um papel essencial como o “mensageiro” no sistema de integração com a Elven Platform. Ele gerencia e distribui as notificações geradas pelos alarmes do CloudWatch, garantindo que cada evento relevante seja entregue à função Lambda e, posteriormente, processado para envio à Elven Platform.&#x20;

Essa configuração permite que as notificações de incidentes sejam encaminhadas de maneira eficiente e em tempo real para a plataforma, onde podem ser centralizados e gerenciados de forma mais prática.&#x20;

## **Configurando no Cloudwatch**

#### Na AWS devemos criar uma **lambda**, no menu de serviços procure por lambda, depois **Create function**:

<figure><img src="https://1787513308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjv1RurNOS0w2Y9bpxizM%2Fuploads%2FEnT0QYU0vk8ZbG2P81XX%2Fextserci05.png?alt=media&#x26;token=4af39e9a-d089-40ec-bc0a-1bdee0f91eaf" alt=""><figcaption></figcaption></figure>

Na criação da lambda, devemos informar o nome e o **Runtime**. Por padrão o utilizado é o **Node.js 20x**.&#x20;

Após preencher os campos acima clique em **Create function.**

#### **Após acessar a lambda criada, em code source, substituir o padrão pelo obtido na criação do External Service Cloudwatch**.

<figure><img src="https://1787513308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjv1RurNOS0w2Y9bpxizM%2Fuploads%2FSnNgafpiTtANv5Of4t1z%2Fextserci06.png?alt=media&#x26;token=2dd0179b-49c8-4784-ab58-f05a09c072a0" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1787513308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjv1RurNOS0w2Y9bpxizM%2Fuploads%2FIQGDXqx3Mg61KWltSTxk%2Fextserci07.png?alt=media&#x26;token=e9e1589c-0089-4f45-8620-cfddfcd3a4dc" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1787513308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjv1RurNOS0w2Y9bpxizM%2Fuploads%2FlHQyF52hBvMYgCockxqh%2Fextserci08.png?alt=media&#x26;token=0b81453d-3e1c-4910-b947-a99a97e56974" alt=""><figcaption></figcaption></figure>

Clique em deploy, após inserir o código fornecido.

#### **Acessar o serviço SNS**.

<figure><img src="https://1787513308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjv1RurNOS0w2Y9bpxizM%2Fuploads%2FEEV9zOC01pL01sdUybHu%2Fextserci09.png?alt=media&#x26;token=eec1b43b-4cb7-41d4-a162-0721ce907b81" alt=""><figcaption></figcaption></figure>

Após acessar o serviço, acesse topics e depois create topic:&#x20;

Selecionar a opção Standard, de um nome de sua preferência.&#x20;

<figure><img src="https://1787513308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjv1RurNOS0w2Y9bpxizM%2Fuploads%2FNzs4GGhS0Ccgmc9aslJq%2Fextserci10.png?alt=media&#x26;token=f868d5b5-293f-48c2-ae5e-a76dac9e987b" alt=""><figcaption></figcaption></figure>

Após isso clicar em Create topic.

#### **Ao criar o tópico, o próximo passo é associar a lambda criada. Para isso, role o cursor do mouse até o fim da página e clique em Create Subscription**.

<figure><img src="https://1787513308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjv1RurNOS0w2Y9bpxizM%2Fuploads%2FYiQmoY9V1TYHBDHVB0K4%2Fextserci11.png?alt=media&#x26;token=5037cfa9-9a66-4cdc-b119-a39d16ff4f9f" alt=""><figcaption></figcaption></figure>

#### **Após criar o tópico SNS, devemos configurar no Cloudwatch.**&#x20;

<figure><img src="https://1787513308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjv1RurNOS0w2Y9bpxizM%2Fuploads%2FW7tYxOYhllCi0gm2PRBN%2Fextserci12.png?alt=media&#x26;token=632f3cd0-8eb7-4daf-b4b4-e75186422fd4" alt=""><figcaption></figcaption></figure>

Ao acessar o serviço cloudwatch, o próximo passo é criar o alerta clicando em “Create alarm”.&#x20;

Selecione a métrica que seja monitorar, no exemplo abaixo estamos monitorando a métrica de CPU Utilization:&#x20;

<figure><img src="https://1787513308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjv1RurNOS0w2Y9bpxizM%2Fuploads%2FoqOF1IXYwzX0psqv1Jhu%2Fextserci13.png?alt=media&#x26;token=3cf74e14-4059-4d1c-a7cc-ff72399fea3a" alt=""><figcaption></figcaption></figure>

Defina as condições conforme sua operação.

<figure><img src="https://1787513308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjv1RurNOS0w2Y9bpxizM%2Fuploads%2FSJDc3LoenwWhxSFXInpU%2Fextserci14.png?alt=media&#x26;token=ce8676fa-19ed-42f5-8fef-381b3200440c" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1787513308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjv1RurNOS0w2Y9bpxizM%2Fuploads%2FGbd2EOUBNtbfX25R6Zt5%2Fextserci15.png?alt=media&#x26;token=0e93826a-c3cb-4da2-a0a5-a52c91d3d477" alt=""><figcaption></figcaption></figure>

Clique em next para a próxima etapa.

#### **Configure actions**, devemos configurar a notificação para as três status:

* In Alarm&#x20;
* OK&#x20;
* Insufficient data&#x20;

Todos devem enviar para o tópico criado no **SNS**, conforme exemplo:

<figure><img src="https://1787513308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjv1RurNOS0w2Y9bpxizM%2Fuploads%2FLJwd71EdV4SMaCSC14Bu%2Fextserci16.png?alt=media&#x26;token=18137a1a-3d42-4970-97eb-8e2b4b7af2ca" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1787513308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjv1RurNOS0w2Y9bpxizM%2Fuploads%2Fcmy1yAnCtj9jlDSBUe8F%2Fextserci17.png?alt=media&#x26;token=a60d5ce6-06da-4ae6-9881-fafa4db02403" alt=""><figcaption></figcaption></figure>

Clique em **next** para a próxima etapa e assim nomear o alerta criado.

<figure><img src="https://1787513308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjv1RurNOS0w2Y9bpxizM%2Fuploads%2FKjRUYP4DBpbEOGJmqWcN%2Fextserci18.png?alt=media&#x26;token=6127b6c6-b640-4328-8d32-c8624dc19ed0" alt=""><figcaption></figcaption></figure>

Verifique se o alerta e condições foram criadas corretamente e clique em **Create alarm** para finalizar. Após isso todos os alertas do **Cloudwatch** deverão aparecer na Elven Platform.\
\
Assim que configurado, o serviço aparecerá no **External Services Monitoring Center**, classificado por status, facilitando o monitoramento de incidentes com prioridade para aqueles em estado de alarme.&#x20;

## **Configurações adicionais de segurança e performance**

* **Whitelist de IPs:** A comunicação via API pode ser configurada para permitir **apenas IPs autorizados**. Para ativar ou modificar essa configuração, entre em contato com o **suporte da Elven Platform**.
* **Rate Limiting:** O tempo padrão para limitação de requisições é **5 minutos**, mas pode ser ajustado conforme a necessidade. Para alterações, entre em contato com o **suporte da Elven Platform**.

Essas configurações garantem maior segurança e controle sobre o tráfego de dados entre os sistemas integrados.

## **Glossário de Termos Técnicos**

**API Token:** Uma chave única usada para autenticação segura entre sistemas. No contexto desta documentação, é essencial para conectar o CloudWatch à Elven Platform.&#x20;

**CloudWatch:** Serviço de monitoramento da AWS que coleta e rastreia métricas, monitora logs e gera alarmes para alterações em seu ambiente.&#x20;

**External Service Name:** Nome descritivo atribuído a um serviço externo integrado à Elven Platform, usado para identificação em dashboards e relatórios.&#x20;

**Responders:** Pessoas, equipes ou sistemas designados para receber notificações de alertas e agir conforme necessário.&#x20;

**Lambda Function:** Função na AWS Lambda que processa eventos gerados pelos alarmes do CloudWatch e os encaminha para a Elven Platform.&#x20;

**SNS (Simple Notification Service):** Serviço de mensagens da AWS que entrega notificações geradas pelos alarmes do CloudWatch para a função Lambda ou outros endpoints.&#x20;

**Node.js Runtime:** Ambiente de execução usado para a função Lambda. Nesta documentação, o Node.js 20.x é mencionado como padrão.&#x20;

**Code Source:** Área dentro da função Lambda onde o código de processamento é inserido ou editado antes de ser implantado.&#x20;

**Topics (SNS):** Recurso do SNS usado para organizar e distribuir mensagens para assinantes específicos, como funções Lambda.&#x20;

**Subscription:** Associação entre um tópico do SNS e um endpoint (por exemplo, uma função Lambda), que garante o envio de notificações.&#x20;

**CPU Utilization:** Métrica comum usada no monitoramento de recursos para avaliar o uso da CPU por instâncias ou aplicações na AWS.&#x20;

**Standard Topic (SNS):** Tipo de tópico no SNS que entrega mensagens com um esforço máximo de disponibilidade e confiabilidade.&#x20;

**Endpoint:** Destino para onde as notificações do SNS são enviadas, como uma função Lambda configurada para a integração.&#x20;

<br>
