

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

# Integração de métricas do CloudWatch com o Amazon Managed Service for Prometheus
<a name="integrating-cw-firehose"></a>

Ter todas as suas métricas em um só lugar pode ajudar. O Amazon Managed Service for Prometheus não ingere métricas do Amazon CloudWatch automaticamente. No entanto, você pode usar o Amazon Data Firehose e o AWS Lambda para enviar métricas do CloudWatch ao Amazon Managed Service for Prometheus.

Esta seção descreve como instrumentar um [fluxo de métricas do Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Metric-Streams.html) e usar o [Amazon Data Firehose](https://docs.aws.amazon.com/firehose/latest/dev/what-is-this-service.html) e o [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) para ingerir métricas no Amazon Managed Service for Prometheus.

Você definirá uma pilha usando o [kit de desenvolvimento em nuvem (CDK) da AWS](https://aws.amazon.com/cdk/) para criar um fluxo de entrega do Firehose, um bucket do Amazon S3 e Lambda para demonstrar um cenário completo.

## Infraestrutura
<a name="integ-cw-fh-infrastructure"></a>

A primeira coisa que você deve fazer é configurar a infraestrutura dessa fórmula. 

Os fluxos de métricas do CloudWatch permitem o encaminhamento dos dados métricos de transmissão para um endpoint HTTP ou um [bucket do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html).

A configuração da infraestrutura consistirá em 4 etapas:
+ Configurar pré-requisitos
+ Criação de um espaço de trabalho do Amazon Managed Service for Prometheus
+ Instalar as dependências
+ Implantar a pilha

**Pré-requisitos **
+ A AWS CLI estar [instalada](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) e [configurada](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) em seu ambiente.
+ O [AWS CDK Typescript](https://docs.aws.amazon.com/cdk/latest/guide/work-with-cdk-typescript.html) estar instalado em seu ambiente.
+ O Node.js e o Go estarem instalados em seu ambiente.
+ O [repositório do GitHub do exportador de métricas do CloudWatch de observabilidade da AWS](https://github.com/aws-observability/observability-best-practices/tree/main/sandbox/CWMetricStreamExporter) (`CWMetricsStreamExporter`) ter sido clonado em sua máquina local.

**Para criar um espaço de trabalho do Amazon Managed Service for Prometheus**

1. O aplicativo de demonstração dessa fórmula será executado no Amazon Managed Service for Prometheus. Crie seu espaço de trabalho do Amazon Managed Service for Prometheus por meio do seguinte comando:

   ```
   aws amp create-workspace --alias prometheus-demo-recipe
   ```

1. Verifique se o seu espaço de trabalho foi criado com o seguinte comando:

   ```
   aws amp list-workspaces
   ```

   Para obter mais informações sobre o Amazon Managed Service for Prometheus, consulte o Guia do usuário do [Amazon Managed Service for Prometheus](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-getting-started.html).

**Para instalar dependências**

1. **Instale as dependências**

   Na raiz do repositório `aws-o11y-recipes`, altere seu diretório para `CWMetricStreamExporter` usando o comando:

   ```
   cd sandbox/CWMetricStreamExporter
   ```

   A partir de agora, esse será considerado a raiz do repositório.

1. Altere o diretório para `/cdk` por meio do comando a seguir:

   ```
   cd cdk
   ```

1. Instale as dependências do CDK por meio do seguinte comando:

   ```
   npm install
   ```

1. Altere o diretório de volta para a raiz do repositório e, em seguida, altere o diretório para `/lambda` usando o seguinte comando:

   ```
   cd lambda
   ```

1. Uma vez na pasta `/lambda`, instale as dependências do Go usando:

   ```
   go get
   ```

   Agora todas as dependências estão instaladas.

**Para implantar a pilha**

1. Na raiz do repositório, abra `config.yaml` e modifique o URL do espaço de trabalho do Amazon Managed Service for Prometheus substituindo o `{workspace}` pelo ID do espaço de trabalho recém-criado e pela região em que está seu espaço de trabalho do Amazon Managed Service for Prometheus.

   Por exemplo, modifique o seguinte com:

   ```
   AMP: 
       remote_write_url: "https://aps-workspaces.us-east-2.amazonaws.com/workspaces/{workspaceId}/api/v1/remote_write" 
       region: us-east-2
   ```

   Altere os nomes do fluxo de entrega do Firehose e do bucket do Amazon S3 como preferir.

1. Para criar o AWS CDK e o código Lambda, execute o seguinte comando na raiz do repositório:

   ```
   npm run build
   ```

   Essa etapa de criação garante que o binário do Go Lambda seja criado e implanta o CDK no CloudFormation.

1. Para concluir a implantação, revise e aceite as alterações do IAM exigidas pela pilha.

1. (Opcional) Você pode verificar se a pilha foi criada executando o seguinte comando.

   ```
   aws cloudformation list-stacks
   ```

   Uma pilha chamada `CDK Stack` estará na lista.

## Criação de um fluxo do Amazon CloudWatch
<a name="integ-cw-fh-stream"></a>

Agora que você tem uma função do Lambda para lidar com as métricas, você pode criar o fluxo de métricas a partir do Amazon CloudWatch.

**Para criar um fluxo de métricas do CloudWatch**

1. Vá até o console do CloudWatch, em [https://console.aws.amazon.com/cloudwatch/home\$1metric-streams:streamsList](https://console.aws.amazon.com/cloudwatch/home#metric-streams:streamsList), e selecione **Criar fluxo de métricas**.

1. Selecione as métricas necessárias, sejam todas as métricas ou somente aquelas dentro dos namespaces selecionados.

1. Em `Configuration`, escolha **Selecionar um Firehose existente pertencente à sua conta**.

1. Você usará o Firehose criado anteriormente pelo CDK. No menu suspenso **Selecionar seu fluxo do Kinesis Data Firehose**, selecione o fluxo criado anteriormente. Ele terá um nome como `CdkStack-KinesisFirehoseStream123456AB-sample1234`.

1. Altere o formato de saída para **JSON**.

1. Dê ao fluxo de métricas um nome que signifique alguma coisa para você.

1. Escolha **Create metric stream** (Criar filtro de métrica).

1. (Opcional) Para verificar a invocação da função do Lambda, vá até o [console do Lambda](https://console.aws.amazon.com/lambda/home) e escolha a função `KinesisMessageHandler`. Selecione a guia **Monitorar** e a subguia **Registros** e, em **Invocações recentes**, deve haver entradas da função do Lambda sendo acionadas.
**nota**  
Pode levar até 5 minutos até que as invocações comecem a ser exibidas na guia **Monitorar**.

Suas métricas agora estão sendo transmitidas do Amazon CloudWatch para o Amazon Managed Service for Prometheus.

## Limpeza
<a name="integ-cw-fh-cleanup"></a>

Você pode precisar limpar os recursos usados neste exemplo. O procedimento a seguir explica como. Isso interromperá o fluxo de métricas que você criou.

**Como limpar recursos**

1. Comece excluindo a pilha do CloudFormation com os seguintes comandos:

   ```
   cd cdk
   cdk destroy
   ```

1. Remova o espaço de trabalho do Amazon Managed Service for Prometheus:

   ```
   aws amp delete-workspace --workspace-id \
       `aws amp list-workspaces --alias prometheus-sample-app --query 'workspaces[0].workspaceId' --output text`
   ```

1. Por fim, remova o fluxo de métricas do Amazon CloudWatch usando o [console do Amazon CloudWatch](https://console.aws.amazon.com/cloudwatch/home#metric-streams:streamsList).