

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

# Publicação de métricas CloudWatch personalizadas da Amazon para um ambiente
<a name="health-enhanced-cloudwatch"></a>

Você pode publicar os dados coletados por meio de relatórios de saúde AWS Elastic Beanstalk aprimorados na Amazon CloudWatch como métricas personalizadas. A publicação de métricas CloudWatch permite monitorar as mudanças no desempenho do aplicativo ao longo do tempo e identificar possíveis problemas rastreando como o uso de recursos e a latência da solicitação aumentam com a carga.

Ao publicar métricas em CloudWatch, você também as disponibiliza para uso com [gráficos de monitoramento e [alarmes](using-features.alarms.md)](environment-health-console.md#environment-health-console-graphs). Uma métrica gratuita, *EnvironmentHealth*, é ativada automaticamente quando você usa relatórios de saúde aprimorados. Métricas personalizadas que não *EnvironmentHealth*sejam [CloudWatch cobranças](https://aws.amazon.com/cloudwatch/pricing/) padrão. 

Para publicar métricas CloudWatch personalizadas para um ambiente, você deve primeiro habilitar relatórios de integridade aprimorados sobre o ambiente. Para obter instruções, consulte [Habilitar relatórios de integridade aprimorada do Elastic Beanstalk](health-enhanced-enable.md).

**Topics**
+ [Métricas de relatórios de integridade aprimorada](#health-enhanced-cloudwatch-metrics)
+ [Configurando CloudWatch métricas usando o console do Elastic Beanstalk](#health-enhanced-cloudwatch-console)
+ [Configurando métricas CloudWatch personalizadas usando o EB CLI](#health-enhanced-cloudwatch-ebcli)
+ [Fornecer documentos Config de métrica personalizada](#health-enhanced-cloudwatch-configdocument)

## Métricas de relatórios de integridade aprimorada
<a name="health-enhanced-cloudwatch-metrics"></a>

Quando você ativa relatórios de integridade aprimorados em seu ambiente, o sistema aprimorado de relatórios de integridade publica automaticamente uma [métrica CloudWatch personalizada](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/publishingMetrics.html), *EnvironmentHealth*. [Para publicar métricas adicionais CloudWatch, configure seu ambiente com essas métricas usando o [console do [Elastic Beanstalk](#health-enhanced-cloudwatch-console),](#health-enhanced-cloudwatch-ebcli) EB CLI ou .ebextensions.](command-options.md)

Você pode publicar as seguintes métricas de saúde aprimoradas do seu ambiente para CloudWatch.Métricas disponíveis — todas as plataformas

`EnvironmentHealth`  
*Ambiente apenas. * Essa é a única CloudWatch métrica que o sistema aprimorado de relatórios de saúde publica, a menos que você configure métricas adicionais. A integridade do ambiente é representada por um dos sete [status](health-enhanced-status.md). No CloudWatch console, esses status são mapeados para os seguintes valores:  
+ 0: OK
+ 1: Informações
+ 5: Desconhecido
+ 10: Sem dados
+ 15: Aviso
+ 20: Reduzido
+ 25: Grave

`InstancesSevere``InstancesDegraded``InstancesWarning``InstancesInfo``InstancesOk``InstancesPending``InstancesUnknown``InstancesNoData`  
*Ambiente apenas. * Essas métricas indicam o número de instâncias no ambiente com cada status de integridade. `InstancesNoData` indica o número de instâncias para as quais não há dados recebidos.

`ApplicationRequestsTotal``ApplicationRequests5xx``ApplicationRequests4xx``ApplicationRequests3xx``ApplicationRequests2xx`  
*Instância e ambiente. * Indica o número total de solicitações concluídas pela instância ou ambiente, e o número de solicitações que foram concluídas com cada categoria de código de status.

`ApplicationLatencyP10``ApplicationLatencyP50``ApplicationLatencyP75``ApplicationLatencyP85``ApplicationLatencyP90``ApplicationLatencyP95``ApplicationLatencyP99``ApplicationLatencyP99.9`  
*Instância e ambiente. * Indica o tempo médio, em segundos, que leva para concluir com mais rapidez *x* % de solicitações.

`InstanceHealth`  
*Instância apenas.* Indica o status da integridade atual da instância. A integridade da instância é representada por um dos sete [status](health-enhanced-status.md). No CloudWatch console, esses status são mapeados para os seguintes valores:  
+ 0: OK
+ 1: Informações
+ 5: Desconhecido
+ 10: Sem dados
+ 15: Aviso
+ 20: Reduzido
+ 25: GraveMétricas disponíveis — Linux

`CPUIrq``CPUIdle``CPUUser``CPUSystem``CPUSoftirq``CPUIowait``CPUNice`  
*Instância apenas.* Indica a porcentagem de tempo que a CPU passou em cada estado no último minuto.

`LoadAverage1min`  
*Instância apenas.* A carga média de CPU da instância durante o último minuto.

`RootFilesystemUtil`  
*Instância apenas.* Indica a porcentagem do espaço em disco em uso.Métricas disponíveis — Windows

`CPUIdle``CPUUser``CPUPrivileged`  
Instância apenas. Indica a porcentagem de tempo que a CPU passou em cada estado no último minuto.

## Configurando CloudWatch métricas usando o console do Elastic Beanstalk
<a name="health-enhanced-cloudwatch-console"></a>

Você pode usar o console do Elastic Beanstalk para configurar seu ambiente para publicar CloudWatch métricas aprimoradas de relatórios de saúde e disponibilizá-las para uso com gráficos de monitoramento e alarmes.

**Para configurar métricas CloudWatch personalizadas no console do Elastic Beanstalk**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Ambientes** e selecione o nome do ambiente na lista.

1. No painel de navegação, escolha **Configuration (Configuração)**.

1. Na categoria de configuração **Monitoring (Monitoramento)**, escolha **Edit (Editar)**.

1. Em **Health reporting (Relatórios de integridade)**, selecione as métricas de instância e de ambiente a serem publicadas no CloudWatch. Para selecionar várias métricas, mantenha pressionada a tecla **Ctrl** enquanto escolhe.

1. Para salvar as alterações, escolha **Apply (Aplicar)** na parte inferior da página.

A ativação de métricas CloudWatch personalizadas as adiciona à lista de métricas disponíveis na [página **Monitoramento**](environment-health-console.md).

## Configurando métricas CloudWatch personalizadas usando o EB CLI
<a name="health-enhanced-cloudwatch-ebcli"></a>

Use a CLI do EB para configurar métricas personalizadas, salvando a configuração do ambiente localmente, adicionando uma entrada que define as métricas para publicação e fazendo upload da configuração no Elastic Beanstalk. Você pode aplicar a configuração salva a um ambiente durante ou após a criação.

**Para configurar métricas CloudWatch personalizadas com a CLI do EB e configurações salvas**

1. Inicialize a pasta do projeto com [**eb init**](eb-cli3-configuration.md).

1. Crie um ambiente executando o comando **eb create**.

1. Salve um modelo de configuração localmente, executando o comando **eb config save**. O exemplo a seguir usa a opção `--cfg` para especificar o nome da configuração.

   ```
   $ eb config save --cfg 01-base-state
   Configuration saved at: ~/project/.elasticbeanstalk/saved_configs/01-base-state.cfg.yml
   ```

1. Abra o arquivo de configuração salvo em um editor de texto.

1. Em `OptionSettings` >`aws:elasticbeanstalk:healthreporting:system:`, adicione uma `ConfigDocument` chave para ativar cada uma das CloudWatch métricas desejadas. Por exemplo, `ConfigDocument` publica as métricas `ApplicationRequests5xx` e `ApplicationRequests4xx` no nível de ambiente e as métricas `ApplicationRequestsTotal` no nível de instância.

   ```
   OptionSettings:
     ...
     aws:elasticbeanstalk:healthreporting:system:
       ConfigDocument:
         CloudWatchMetrics:
           Environment:
             ApplicationRequests5xx: 60
             ApplicationRequests4xx: 60
           Instance:
             ApplicationRequestsTotal: 60
         Version: 1
       SystemType: enhanced
   ...
   ```

   No exemplo, 60 indica o número de segundos entre as medidas. No momento, este é o único valor aceito.
**nota**  
É possível combinar `CloudWatchMetrics` e `Rules` na mesma configuração da opção `ConfigDocument`. `Rules` são descritas em [Configurar as regras de integridade aperfeiçoada de um ambiente](health-enhanced-rules.md).  
Se você tiver usado `Rules` anteriormente para configurar as regras de integridade aprimorada, o arquivo de configuração recuperado por meio do comando **eb config save** já terá uma chave `ConfigDocument` com uma seção `Rules`. *Não o exclua*, em vez disso, adicione uma seção `CloudWatchMetrics` no mesmo valor da opção `ConfigDocument`.

1. Salve o arquivo de configuração e feche o editor de texto. Neste exemplo, o arquivo de configuração atualizado é salvo com um nome (`02-cloudwatch-enabled.cfg.yml`) que seja diferente do arquivo de configuração que foi baixado. Isso cria uma configuração salva separada quando o arquivo é carregado. Você pode usar o mesmo nome que o arquivo baixado para substituir a configuração existente, sem criar um novo.

1. Use o comando **eb config put** para fazer upload do arquivo de configuração atualizado no Elastic Beanstalk.

   ```
   $ eb config put 02-cloudwatch-enabled
   ```

   Ao usar os comandos **eb config** `get` e `put` com configurações salvas, não inclua a extensão de arquivo.

1. Aplique a configuração salva ao ambiente em execução.

   ```
   $ eb config --cfg 02-cloudwatch-enabled
   ```

   A opção `--cfg` especifica um arquivo de configuração nomeado que é aplicado ao ambiente. É possível salvar o arquivo de configuração localmente ou no Elastic Beanstalk. Se um arquivo de configuração com o nome especificado já existir em ambos os locais, a EB CLI usará o arquivo local.

## Fornecer documentos Config de métrica personalizada
<a name="health-enhanced-cloudwatch-configdocument"></a>

O documento de configuração (config) das métricas CloudWatch personalizadas da Amazon é um documento JSON que lista as métricas a serem publicadas nos níveis de ambiente e instância. O exemplo a seguir mostra um documento config que habilita todas as métricas disponíveis no Linux.

```
{
  "CloudWatchMetrics": {
    "Environment": {
      "ApplicationLatencyP99.9": 60,
      "InstancesSevere": 60,
      "ApplicationLatencyP90": 60,
      "ApplicationLatencyP99": 60,
      "ApplicationLatencyP95": 60,
      "InstancesUnknown": 60,
      "ApplicationLatencyP85": 60,
      "InstancesInfo": 60,
      "ApplicationRequests2xx": 60,
      "InstancesDegraded": 60,
      "InstancesWarning": 60,
      "ApplicationLatencyP50": 60,
      "ApplicationRequestsTotal": 60,
      "InstancesNoData": 60,
      "InstancesPending": 60,
      "ApplicationLatencyP10": 60,
      "ApplicationRequests5xx": 60,
      "ApplicationLatencyP75": 60,
      "InstancesOk": 60,
      "ApplicationRequests3xx": 60,
      "ApplicationRequests4xx": 60
    },
    "Instance": {
      "ApplicationLatencyP99.9": 60,
      "ApplicationLatencyP90": 60,
      "ApplicationLatencyP99": 60,
      "ApplicationLatencyP95": 60,
      "ApplicationLatencyP85": 60,
      "CPUUser": 60,
      "ApplicationRequests2xx": 60,
      "CPUIdle": 60,
      "ApplicationLatencyP50": 60,
      "ApplicationRequestsTotal": 60,
      "RootFilesystemUtil": 60,
      "LoadAverage1min": 60,
      "CPUIrq": 60,
      "CPUNice": 60,
      "CPUIowait": 60,
      "ApplicationLatencyP10": 60,
      "LoadAverage5min": 60,
      "ApplicationRequests5xx": 60,
      "ApplicationLatencyP75": 60,
      "CPUSystem": 60,
      "ApplicationRequests3xx": 60,
      "ApplicationRequests4xx": 60,
      "InstanceHealth": 60,
      "CPUSoftirq": 60
    }
  },
  "Version": 1
}
```

Para o AWS CLI, você passa o documento como um valor para a `Value` chave em um argumento de configurações de opção, que por si só é um objeto JSON. Nesse caso, você deve escapar as aspas no documento incorporado.

```
$ aws elasticbeanstalk validate-configuration-settings --application-name my-app --environment-name my-env --option-settings '[
    {
        "Namespace": "aws:elasticbeanstalk:healthreporting:system",
        "OptionName": "ConfigDocument",
        "Value": "{\"CloudWatchMetrics\": {\"Environment\": {\"ApplicationLatencyP99.9\": 60,\"InstancesSevere\": 60,\"ApplicationLatencyP90\": 60,\"ApplicationLatencyP99\": 60,\"ApplicationLatencyP95\": 60,\"InstancesUnknown\": 60,\"ApplicationLatencyP85\": 60,\"InstancesInfo\": 60,\"ApplicationRequests2xx\": 60,\"InstancesDegraded\": 60,\"InstancesWarning\": 60,\"ApplicationLatencyP50\": 60,\"ApplicationRequestsTotal\": 60,\"InstancesNoData\": 60,\"InstancesPending\": 60,\"ApplicationLatencyP10\": 60,\"ApplicationRequests5xx\": 60,\"ApplicationLatencyP75\": 60,\"InstancesOk\": 60,\"ApplicationRequests3xx\": 60,\"ApplicationRequests4xx\": 60},\"Instance\": {\"ApplicationLatencyP99.9\": 60,\"ApplicationLatencyP90\": 60,\"ApplicationLatencyP99\": 60,\"ApplicationLatencyP95\": 60,\"ApplicationLatencyP85\": 60,\"CPUUser\": 60,\"ApplicationRequests2xx\": 60,\"CPUIdle\": 60,\"ApplicationLatencyP50\": 60,\"ApplicationRequestsTotal\": 60,\"RootFilesystemUtil\": 60,\"LoadAverage1min\": 60,\"CPUIrq\": 60,\"CPUNice\": 60,\"CPUIowait\": 60,\"ApplicationLatencyP10\": 60,\"LoadAverage5min\": 60,\"ApplicationRequests5xx\": 60,\"ApplicationLatencyP75\": 60,\"CPUSystem\": 60,\"ApplicationRequests3xx\": 60,\"ApplicationRequests4xx\": 60,\"InstanceHealth\": 60,\"CPUSoftirq\": 60}},\"Version\": 1}"
    }
]'
```

Para um arquivo de configuração `.ebextensions` em YAML, você pode fornecer o documento JSON no estado em que está.

```
  option_settings:
    - namespace: aws:elasticbeanstalk:healthreporting:system
      option_name: ConfigDocument
      value: {
  "CloudWatchMetrics": {
    "Environment": {
      "ApplicationLatencyP99.9": 60,
      "InstancesSevere": 60,
      "ApplicationLatencyP90": 60,
      "ApplicationLatencyP99": 60,
      "ApplicationLatencyP95": 60,
      "InstancesUnknown": 60,
      "ApplicationLatencyP85": 60,
      "InstancesInfo": 60,
      "ApplicationRequests2xx": 60,
      "InstancesDegraded": 60,
      "InstancesWarning": 60,
      "ApplicationLatencyP50": 60,
      "ApplicationRequestsTotal": 60,
      "InstancesNoData": 60,
      "InstancesPending": 60,
      "ApplicationLatencyP10": 60,
      "ApplicationRequests5xx": 60,
      "ApplicationLatencyP75": 60,
      "InstancesOk": 60,
      "ApplicationRequests3xx": 60,
      "ApplicationRequests4xx": 60
    },
    "Instance": {
      "ApplicationLatencyP99.9": 60,
      "ApplicationLatencyP90": 60,
      "ApplicationLatencyP99": 60,
      "ApplicationLatencyP95": 60,
      "ApplicationLatencyP85": 60,
      "CPUUser": 60,
      "ApplicationRequests2xx": 60,
      "CPUIdle": 60,
      "ApplicationLatencyP50": 60,
      "ApplicationRequestsTotal": 60,
      "RootFilesystemUtil": 60,
      "LoadAverage1min": 60,
      "CPUIrq": 60,
      "CPUNice": 60,
      "CPUIowait": 60,
      "ApplicationLatencyP10": 60,
      "LoadAverage5min": 60,
      "ApplicationRequests5xx": 60,
      "ApplicationLatencyP75": 60,
      "CPUSystem": 60,
      "ApplicationRequests3xx": 60,
      "ApplicationRequests4xx": 60,
      "InstanceHealth": 60,
      "CPUSoftirq": 60
    }
  },
  "Version": 1
}
```