

# Monitorar a execução da API REST com métricas do Amazon CloudWatch
<a name="monitoring-cloudwatch"></a>

É possível monitorar a execução da API usando o CloudWatch, que coleta e processa dados brutos do API Gateway em métricas legíveis, quase em tempo real. Essas estatísticas são registradas para um período de 15 meses, de forma que você possa acessar informações históricas e ganhar uma perspectiva melhor sobre como seu serviço ou aplicativo web está se saindo. Por padrão, os dados de métricas do API Gateway são enviados automaticamente para o CloudWatch em períodos de um minuto. Para obter mais informações, consulte [O que é o Amazon CloudWatch?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) no *Guia do usuário do Amazon CloudWatch*.

As métricas informadas pelo API Gateway fornecem informações que podem ser analisadas de diferentes maneiras. A lista a seguir mostra alguns usos comuns de métricas que são sugestões para começar a usar:
+ Monitore as métricas de **IntegrationLatency** para medir a capacidade de resposta do backend.
+ Monitore as métricas de **Latency** para medir a capacidade de resposta geral das suas chamadas de API.
+ Monitor as métricas de **CacheHitCount** e **CacheMissCount** para otimizar capacidades de cache de modo a alcançar o desempenho desejado.

**Topics**
+ [Dimensões e métricas do Amazon API Gateway](api-gateway-metrics-and-dimensions.md)
+ [Exibir métricas do CloudWatch com o painel de API no API Gateway](how-to-api-dashboard.md)
+ [Exibir métricas do API Gateway no console do CloudWatch](metrics_dimensions_view_in_cloud_watch.md)
+ [Exibir eventos de log do API Gateway no console do CloudWatch](view-cloudwatch-log-events-in-cloudwatch-console.md)
+ [Ferramentas de monitoramento na AWS para o API Gateway](monitoring_automated_manual.md)

# Dimensões e métricas do Amazon API Gateway
<a name="api-gateway-metrics-and-dimensions"></a>

As métricas e dimensões que o API Gateway envia para o Amazon CloudWatch estão listadas abaixo. Para obter mais informações, consulte [Monitorar a execução da API REST com métricas do Amazon CloudWatch](monitoring-cloudwatch.md). 

## Métricas do API Gateway
<a name="api-gateway-metrics"></a>

O Amazon API Gateway envia dados de métricas para o CloudWatch a cada minuto.

O namespace `AWS/ApiGateway` inclui as métricas a seguir.


| Métrica | Descrição | 
| --- | --- | 
|  4XXError |  O número de erros no lado do cliente capturados em um determinado período. O API Gateway considera os códigos de status de resposta do gateway modificados como erros 4XXError. A estatística `Sum` representa essa métrica, ou seja, a contagem total de erros 4XXError no período especificado. A estatística `Average` representa a taxa de erros 4XXError, ou seja, a contagem total de erros 4XXError dividida pelo número total de solicitações durante o período. O denominador corresponde à métrica Count (abaixo). Unit: Count  | 
|  5XXError  |  O número de erros do servidor capturados em um período determinado. A estatística `Sum` representa essa métrica, ou seja, a contagem total de erros 5XXError no período especificado. A estatística `Average` representa a taxa de erros 5XXError, ou seja, a contagem total de erros 5XXError dividida pelo número total de solicitações durante o período. O denominador corresponde à métrica Count (abaixo). Unit: Count  | 
|  CacheHitCount  |  O número de solicitações atendidas pelo cache da API em um determinado período. A estatística `Sum` representa essa métrica, ou seja, a contagem total de acertos de cache no período especificado. A estatística `Average` representa a taxa de acertos de cache, a saber, a contagem total de acertos de cache dividida pelo número total de solicitações durante o período. O denominador corresponde à métrica Count (abaixo). Unit: Count  | 
|  CacheMissCount  |  O número de solicitações atendidas pelo backend em um determinado período quando o armazenamento em cache da API está habilitado. A estatística `Sum` representa essa métrica, ou seja, a contagem total de erros de cache no período especificado. A estatística `Average` representa a taxa de erros de cache, ou seja, a contagem total de erros de cache dividida pelo número total de solicitações durante o período. O denominador corresponde à métrica Count (abaixo). Unit: Count  | 
|  Count  |  O número total de solicitações de API em um determinado período. A estatística `SampleCount` representa essa métrica. Unit: Count  | 
|  IntegrationLatency  |  O tempo que o API Gateway leva para receber uma resposta do backend depois de retransmitir uma solicitação para o backend. Unit: Millisecond  | 
|  Latency  |  O tempo que o API Gateway leva para devolver uma resposta para um cliente depois de receber uma solicitação do cliente. A latência inclui a latência de integração e outras despesas gerais do API Gateway. Unit: Millisecond  | 

## Dimensões para métricas
<a name="api-gateway-metricdimensions"></a>

É possível usar as dimensões na tabela a seguir para filtrar métricas do API Gateway.

**nota**  
O API Gateway remove caracteres não ASCII da dimensão ApiName antes de enviar métricas para o CloudWatch. Se o APIName contiver caracteres ASCII, o API ID será usado como o ApiName.


| Dimensão | Descrição | 
| --- | --- | 
|  ApiName  |  Filtra as métricas do API Gateway para a API REST com o nome de API especificado.  | 
|  ApiName, Method, Resource, Stage  |  Filtra as métricas do API Gateway para o método de API com o nome, o estágio, o recurso e o método de API especificados. O API Gateway não enviará essas métricas a menos que você tenha habilitado explicitamente métricas detalhadas do CloudWatch. No console, selecione um estágio e, em **Logs e rastreamento**, selecione **Editar**. Selecione **Métricas detalhadas** e, depois, **Salvar alterações**. Como alternativa, você pode chamar o comando [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) da AWS CLI para atualizar a propriedade `metricsEnabled` para `true`. Habilitar essas métricas incorrerá em cobranças adicionais na conta. Para obter informações de definição de preço, consulte [Definição de preço do Amazon CloudWatch](https://aws.amazon.com/cloudwatch/pricing/).  | 
|  ApiName, Stage  |  Filtra as métricas do API Gateway para o recurso de estágio de API com o nome e o estágio de API especificados.  | 

# Exibir métricas do CloudWatch com o painel de API no API Gateway
<a name="how-to-api-dashboard"></a>

Você pode usar o painel de API no console do API Gateway para exibir as métricas do CloudWatch da API implantada no API Gateway. Elas são apresentadas como um resumo da atividade da API ao longo do tempo. 

**Topics**
+ [Pré-requisitos](#how-to-api-dashboard-prerequisites)
+ [Examinar atividades da API no painel](#how-to-api-dashboard-console)

## Pré-requisitos
<a name="how-to-api-dashboard-prerequisites"></a>

1. Você deve ter uma API criada no API Gateway. Siga as instruções em [Desenvolver APIs REST no API Gateway](rest-api-develop.md).

1. Você deve ter a API implantada pelo menos uma vez. Siga as instruções em [Implantar APIs REST no API Gateway](how-to-deploy-api.md).

## Examinar atividades da API no painel
<a name="how-to-api-dashboard-console"></a>

1. Inicie uma sessão no console do API Gateway em [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Escolha uma API.

1. No painel de navegação principal, escolha **Painel**.

1. Em **Estágio**, escolha o estágio desejado.

1. Escolha **Intervalo de datas** para especificar um intervalo de datas.

1. Se necessário, atualize e visualize as métricas individuais exibidas em grafos separados, chamados **Chamadas de API**, **Latência**, **Latência de integração**, **Latência**, **Erro 4xx** e **Erro 5xx**.
**dica**  
Para examinar métricas do CloudWatch em nível de método, verifique se o CloudWatch Logs está habilitado em nível de método. Para obter mais informações sobre como configurar o registro em log em nível de método, consulte [Substituir configurações em nível de estágio](set-up-stages.md#how-to-method-override).

# Exibir métricas do API Gateway no console do CloudWatch
<a name="metrics_dimensions_view_in_cloud_watch"></a>

As métricas são agrupadas primeiro pelo namespace do serviço e, em seguida, por várias combinações de dimensão dentro de cada namespace. Para visualizar as métricas em nível de método da API, ative as métricas detalhadas. Para obter mais informações, consulte [Modifique as configurações de armazenamento.](set-up-stages.md#how-to-stage-settings).

**Como exibir métricas do API Gateway usando o console do CloudWatch**

1. Abra o console do CloudWatch, em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Se necessário, altere a Região da AWS. Na barra de navegação, selecione a região em que os seus recursos da AWS residem.

1. No painel de navegação, selecione **Métricas**.

1. Na guia **All metrics (Todas as métricas)**, escolha **API Gateway**. 

1.  Para visualizar as métricas por estágio, escolha o painel **By Stage (Por estágio)**. E selecione as APIs e os nomes de métrica. 

1. Para visualizar as métricas por API específica, escolha o painel **By Api Name (Por nome de Api)**. E selecione as APIs e os nomes de métrica.

**Para visualizar métricas usando a CLI da AWS**

1. Use o comando [list-metrics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/list-metrics.html) indicado abaixo para listar as métricas:

   ```
   aws cloudwatch list-metrics --namespace "AWS/ApiGateway"
   ```

   Depois de criar uma métrica, aguarde até 15 minutos para que ela apareça. Para ver as estatísticas métricas com antecedência, use [get-metric-data](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/update-domain-name.html) ou [get-metric-statistics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/update-domain-name.html).

1. Use o comando [get-metrics-statistics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-statistics.html) indicado abaixo para visualizar a média ao longo de um período usando intervalos de 5 minutos:

   ```
   aws cloudwatch get-metric-statistics --namespace AWS/ApiGateway --metric-name Count --start-time 2011-10-03T23:00:00Z --end-time 2017-10-05T23:00:00Z --period 300 --statistics Average
   ```

# Exibir eventos de log do API Gateway no console do CloudWatch
<a name="view-cloudwatch-log-events-in-cloudwatch-console"></a>

A seção a seguir explica os pré-requisitos e como visualizar os eventos de log do API Gateway no console do CloudWatch.

## Pré-requisitos
<a name="view-cloudwatch-log-event-prerequisites"></a>

1. Você deve ter uma API criada no API Gateway. Siga as instruções em [Desenvolver APIs REST no API Gateway](rest-api-develop.md).

1. Você deve ter implantado e invocado a API pelo menos uma vez. Siga as instruções em [Implantar APIs REST no API Gateway](how-to-deploy-api.md) e [Invocar APIs REST no API Gateway](how-to-call-api.md).

1. Você deve ter o CloudWatch Logs habilitado para um estágio. Siga as instruções em [Configurar o registro em log do CloudWatch para APIs REST no API Gateway](set-up-logging.md).

## Como exibir solicitações e respostas de APIs registradas em log usando o console do CloudWatch
<a name="view-cloudwatch-log-event"></a>

1. Abra o console do CloudWatch, em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Se necessário, altere a Região da AWS. Na barra de navegação, selecione a região em que os seus recursos da AWS residem. Para obter mais informações, consulte [Regiões e endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html).

1. No painel de navegação, selecione **Logs**, **Grupos de log**.

1. Na tabela **Log Groups (Grupos de logs)**, selecione um grupo de logs do nome **API-Gateway-Execution-Logs\$1\$1rest-api-id\$1/\$1stage-name\$1**. 

1.  Na tabela **Log Streams (Fluxos de log)**, escolha um fluxo de logs. Você pode usar o carimbo de data e hora para ajudar a localizar o fluxo de logs de seu interesse. 

1. Escolha **Text (Texto)** para visualizar texto bruto ou escolha **Row (Linha)** para visualizar o evento linha por linha.

**Importante**  
 O CloudWatch permite que você exclua streams ou grupos de logs. Não exclua manualmente os streams ou grupos de logs da API do API Gateway. Deixe o API Gateway gerenciar esses recursos. A exclusão manual de grupos ou fluxos de log pode fazer com que as solicitações e as respostas da API não sejam registradas. Se isso acontecer, você pode excluir todo o grupo de logs da API e reimplantá-la. Isso ocorre porque o API Gateway cria grupos ou fluxos de log para um estágio de API no momento em que ela é implantada. 

# Ferramentas de monitoramento na AWS para o API Gateway
<a name="monitoring_automated_manual"></a>

AWSA fornece várias ferramentas que podem ser usadas para monitorar o API Gateway. É possível configurar algumas dessas ferramentas para realizar o monitoramento automaticamente, enquanto outras exigem intervenção manual. Recomendamos que as tarefas de monitoramento sejam automatizadas ao máximo possível.

## Ferramentas de monitoramento automatizadas na AWS
<a name="monitoring_automated_tools"></a>

É possível usar as seguintes ferramentas de monitoramento automatizadas para supervisionar o API Gateway e gerar relatórios quando algo estiver errado:
+ **Amazon CloudWatch Alarms**: observe uma única métrica ao longo de um período que você especificar e realize uma ou mais ações com base no valor da métrica em relação a um limite ao longo de vários períodos. A ação é uma notificação enviada para um tópico do Amazon Simple Notification Service (Amazon SNS) ou uma política do Amazon EC2 Auto Scaling. Os alarmes do CloudWatch não invocam ações simplesmente por estarem em um estado específico. O estado deve ter sido alterado e mantido por um número específico de períodos. Para obter mais informações, consulte [Monitorar a execução da API REST com métricas do Amazon CloudWatch](monitoring-cloudwatch.md).
+ **Amazon CloudWatch Logs**: monitore, armazene e acesse seus arquivos de log do AWS CloudTrail ou de outras origens. Para obter mais informações, consulte [What is CloudWatch Logs?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) no *Guia do usuário do Amazon CloudWatch*.
+ **Amazon EventBridge (anteriormente chamado de CloudWatch Events)**: faça correspondência de eventos e direcione-os a uma ou mais funções ou streams de destino para fazer alterações, capturar informações de estado e realizar ações corretivas. Para obter mais informações, consulte [What Is Amazon EventBridge?](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) no *Guia do usuário do Amazon EventBridge*.
+ **Monitoramento de log AWS CloudTrail**: compartilhe arquivos de log entre contas, monitore os arquivos de log do CloudTrail em tempo real enviando-os para o CloudWatch Logs, escreva aplicações de processamento de logs em Java e confirme se os arquivos de log não foram alterados após a entrega pelo CloudTrail. Para obter mais informações, consulte [Trabalhando com arquivos de log do CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-working-with-log-files.html) no *Guia do usuário do AWS CloudTrail*. 

## Ferramentas de monitoramento manual
<a name="monitoring_manual_tools"></a>

Outra parte importante do monitoramento do API Gateway é o monitoramento manual dos itens que os alarmes do CloudWatch não abrangem. O API Gateway, o CloudWatch e outros painéis do console da AWS fornecem uma visualização rápida do estado de seu ambiente da AWS. Recomendamos que você também verifique os arquivos de log na execução da API.
+ O painel do API Gateway mostra as seguintes estatísticas para um estágio de API durante um período específico:
  + **API Calls (Chamadas de API**
  + **Cache Hit (Acertos do cache)**, apenas quando o armazenamento em cache de API está ativado.
  + **Cache Miss (Solicitações não atendidas pelo cache)**, apenas quando o armazenamento em cache de API está ativado.
  + **Latência**
  + **Integration Latency (Latência de integração**
  + **4XX Error (Erro 4XX**
  + **5XX Error (Erro 5XX**
+ A página inicial do CloudWatch mostra:
  + Alertas e status atual
  + Gráficos de alertas e recursos
  + Estado de integridade do serviço

  Além disso, é possível usar o CloudWatch para fazer o seguinte: 
  + Crie [painéis personalizados](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html) para monitorar os serviços com os quais você se preocupa.
  + Colocar em gráfico dados de métrica para solucionar problemas e descobrir tendências
  + Pesquisar e procurar todas as métricas de recursos da AWS
  + Criar e editar alertas para ser notificado sobre problemas

## Criar alarmes do CloudWatch para monitorar o API Gateway
<a name="creating_alarms"></a>

Você pode criar um alarme do CloudWatch que envia uma mensagem do Amazon SNS quando o alarme muda de estado. Um alarme observa uma única métrica ao longo de um período especificado por você e realiza uma ou mais ações com base no valor da métrica relativo a um determinado limite ao longo de vários períodos. A ação é uma notificação enviada para um tópico do Amazon SNS ou uma política de Auto Scaling. Os alertas invocam ações apenas para alterações de estado mantidas. Os alarmes do CloudWatch não invocam ações simplesmente por estarem em um estado específico. O estado deve ter sido alterado e mantido por um número específico de períodos.