

# Monitoramento da infraestrutura
<a name="CloudWatch-Insights-Sections"></a>

Os tópicos desta seção explicam os recursos do CloudWatch que podem ajudar você a obter visibilidade operacional dos seus recursos da AWS.

**Topics**
+ [Container Insights](ContainerInsights.md)
+ [Lambda Insights](Lambda-Insights.md)
+ [CloudWatch Database Insights](Database-Insights.md)
+ [Usar o Contributor Insights para analisar dados de alta cardinalidade](ContributorInsights.md)
+ [Detectar problemas comuns de aplicações com o CloudWatch Application Insights](cloudwatch-application-insights.md)
+ [Usar a visualização de integridade de recursos no console do CloudWatch](servicelens_resource_health.md)

# Container Insights
<a name="ContainerInsights"></a>

Use o CloudWatch Container Insights para coletar, agregar e resumir métricas e logs de suas aplicações e seus microsserviços conteinerizados. O Container Insights está disponível para o Amazon Elastic Container Service (Amazon ECS), o Amazon Elastic Kubernetes Service (Amazon EKS), o RedHat OpenShift na AWS (ROSA) e para plataformas do Kubernetes no Amazon EC2. O Container Insights é compatível com a coleta de métricas de clusters implantados no AWS Fargate para o Amazon ECS e Amazon EKS. 

O CloudWatch coleta automaticamente métricas de muitos recursos, como CPU, memória, disco e rede. O Container Insights também fornece informações de diagnóstico, como falhas de reinicialização de contêiner, para ajudar a isolar problemas e resolvê-los rapidamente. Também é possível definir alarmes do CloudWatch em métricas que o Container Insights coleta.

O Container Insights coleta dados como *eventos de log de performance* usando [formato de métrica incorporado](CloudWatch_Embedded_Metric_Format.md). Esses eventos de log de performance são entradas que usam um esquema JSON estruturado que permite que dados de alta cardinalidade sejam ingeridos e armazenados em escala. Com base nesses dados, o CloudWatch cria métricas agregadas no nível de cluster, nó, pod, tarefa e serviço como métricas do CloudWatch. As métricas que o Container Insights coleta estão disponíveis nos painéis automáticos do CloudWatch e também podem ser visualizadas na seção **Métricas** do console do CloudWatch. As métricas não estarão visíveis até que as tarefas do contêiner estejam em execução por algum tempo.

Quando você implanta o Container Insights, ele cria automaticamente um grupo de logs para os eventos do log de performance. Você não precisa criar esse grupo de logs sozinho.

Para ajudar você a gerenciar os custos do Container Insights, o CloudWatch não cria automaticamente todas as métricas possíveis dos dados de logs. Porém, é possível visualizar outras métricas e outros níveis de detalhamento usando o CloudWatch Logs Insights para analisar os eventos de log de performance brutos.

Com a versão original do Container Insights, as métricas coletadas e os registros ingeridos são cobrados como métricas personalizadas. Com o Container Insights com observabilidade aprimorada para o Amazon EKS, as métricas e os logs do Container Insights são cobrados por observação em vez de serem cobrados por métrica armazenada ou log ingerido. Para obter mais informações sobre os preços do CloudWatch, consulte [Preço do Amazon CloudWatch](https://aws.amazon.com/cloudwatch/pricing/).

**[Pré-visualização]** Para o Amazon EKS, o Container Insights com OpenTelemetry fornece um modo adicional de métricas que coleta métricas usando o OpenTelemetry Protocol (OTLP), e é compatível com consultas do PromQL. Cada métrica é enriquecida com até 150 rótulos, incluindo atributos de convenção semântica do OpenTelemetry e rótulos de pods e nós do Kubernetes. Para obter mais informações, consulte [Métricas do Container Insights com OpenTelemetry para Amazon EKS](container-insights-otel-metrics.md).

No Amazon EKS, no RedHat Openshift na AWS e no Kubernetes, o Container Insights usa uma versão conteinerizada do agente do CloudWatch para detectar todos os contêineres que estão em execução em um cluster. Depois, ele coleta dados de performance em cada camada da pilha de performance.

O Container Insights é compatível com a criptografia com o AWS KMS key dos registros e métricas que ele coleta. Para habilitar essa criptografia, você deve habilitar manualmente a criptografia do AWS KMS para o grupo de logs que recebe dados do Container Insights. Isso faz com que o Container Insights criptografe esses dados usando a chave do KMS fornecida. Somente chaves simétricas têm suporte. Não use chaves do KMS assimétricas para criptografar seus grupos de logs.

Para obter mais informações, consulte [Criptografar dados de log no CloudWatch Logs usando o AWS KMS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html).

## Plataformas compatíveis
<a name="container-insights-platforms"></a>

O Container Insights está disponível para o Amazon Elastic Container Service, o Amazon Elastic Kubernetes Service, o RedHat OpenShift na AWS e para plataformas do Kubernetes em instâncias do Amazon EC2.
+ Para o Amazon ECS, o Container Insights coleta métricas nos níveis de cluster, tarefa e serviço em instâncias do Linux e do Windows Server. Ele pode coletar métricas no nível de instância apenas em instâncias do Linux. As métricas de rede estão disponíveis para contêineres que usam o modo de rede `bridge` e o modo de rede `awsvpc`, mas não estão disponíveis para contêineres que usam o modo de rede `host`.
+ No Amazon Elastic Kubernetes Service e nas plataformas do Kubernetes em instâncias do Amazon EC2, o Container Insights tem suporte em instâncias do Linux e Windows.
+ **[Pré-visualização]** O Container Insights com métricas do OpenTelemetry está disponível para o Amazon EKS. Para obter mais informações, consulte [Métricas do Container Insights com OpenTelemetry para Amazon EKS](container-insights-otel-metrics.md).

# Container Insights com observabilidade aprimorada para o Amazon ECS
<a name="container-insights-detailed-ecs-metrics"></a>

Em 2 de dezembro de 2024, a AWS lançou o Container Insights com observabilidade aprimorada para o Amazon ECS. Essa versão é compatível com a observabilidade aprimorada dos clusters do Amazon ECS usando os tipos de inicialização do Amazon EC2 e do Fargate. Depois de configurar o Container Insights com observabilidade aprimorada no Amazon ECS, o Container Insights coleta automaticamente a telemetria detalhada da infraestrutura do nível do cluster até o nível do contêiner em seu ambiente e exibe esses dados cruciais de performance em painéis selecionados, eliminando o trabalho pesado na configuração da observabilidade. Para obter informações sobre como configurar o Container Insights com observabilidade aprimorada, consulte [Configurar o Container Insights no Amazon ECS](deploy-container-insights-ECS-cluster.md).

O Container Insights com observabilidade aprimorada fornece todas as métricas do Container Insights, além de métricas adicionais de tarefas e contêineres. Para obter mais informações, consulte [Métricas do Container Insights com observabilidade aprimorada para o Amazon ECS](Container-Insights-enhanced-observability-metrics-ECS.md).

O Container Insights com observabilidade aprimorada também é compatível com a observabilidade entre contas do CloudWatch. Você usa uma única conta de monitoramento para monitorar e solucionar problemas relacionados às aplicações que abrangem diversas contas da AWS em uma única região. Para obter mais informações, consulte [Observabilidade entre contas do CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html).

# Container Insights com observabilidade aprimorada para o Amazon EKS
<a name="container-insights-detailed-metrics"></a>

Em 6 de novembro de 2023, uma nova versão do Container Insights foi lançada. Essa versão é compatível com a observabilidade aprimorada dos clusters do Amazon EKS em execução no Amazon EC2 e pode coletar métricas mais detalhadas desses clusters. Após a instalação, ela coleta automaticamente a telemetria detalhada da infraestrutura e os registros de contêineres dos clusters do Amazon EKS. Em seguida, é possível usar painéis selecionados e imediatamente utilizáveis para detalhar a telemetria de aplicações e infraestrutura. 

O Container Insights com observabilidade aprimorada para o Amazon EKS coleta métricas granulares de integridade, performance e status até o nível do contêiner, além de métricas do ambiente de gerenciamento. Para obter mais informações sobre as métricas e dimensões adicionais coletadas, consulte [Métricas do Container Insights com observabilidade aprimorada para o Amazon EKS e o Kubernetes](Container-Insights-metrics-enhanced-EKS.md).

Se você instalou o Container Insights usando o agente do CloudWatch em um cluster do Amazon EKS no Amazon EC2 após 6 de novembro de 2023, você tem o Container Insights com observabilidade aprimorada para o Amazon EKS. Caso contrário, você pode atualizar um cluster do Amazon EKS para essa nova versão seguindo as instruções em [Atualização para o Container Insights com observabilidade aprimorada para o Amazon EKS no CloudWatch](Container-Insights-upgrade-enhanced.md).

O Container Insights é compatível com a observabilidade entre contas do CloudWatch. Você usa uma única conta de monitoramento para monitorar e solucionar problemas relacionados a aplicações que abrangem diversas contas da AWS em uma única região. Para obter mais informações, consulte [Observabilidade entre contas do CloudWatch](CloudWatch-Unified-Cross-Account.md).

O Container Insights com observabilidade aprimorada para o Amazon EKS também é compatível com nós de processamento do Windows.

O Container Insights com observabilidade aprimorada para o Amazon EKS não é compatível com o Fargate.

**nota**  
Você pode descobrir se tem clusters que podem ser atualizados para o Container Insights com observabilidade aprimorada para o Amazon EKS ao navegar até o console do Container Insights. Para fazer isso, selecione **Insights**, **Container Insights** no painel de navegação do console do CloudWatch. No console do Container Insights, um banner informa se você tem clusters do Amazon EKS que podem ser atualizados e links para a página de atualização.

# Métricas do Container Insights com OpenTelemetry para Amazon EKS
<a name="container-insights-otel-metrics"></a>

**Demonstração**  
O Container Insights com métricas do OpenTelemetry fornece visibilidade sobre a integridade operacional da sua infraestrutura de clusters do Amazon EKS. Está disponível em pré-visualização pública sem custo adicional nas regiões Leste dos EUA (Norte da Virgínia), Oeste dos EUA (Oregon), Europa (Irlanda), Ásia-Pacífico (Singapura) e Ásia-Pacífico (Sydney).

O complemento de observabilidade do EKS do Amazon CloudWatch coleta métricas de código aberto de seus clusters do Amazon EKS e as envia para o CloudWatch usando o OpenTelemetry Protocol (OTLP) com granularidade de 30 segundos. Essas métricas usam nomes de métricas de suas fontes originais, incluindo cAdvisor, Prometheus Node Exporter, NVIDIA DCGM, Kube State Metrics e AWS Neuron Monitor. Você pode consultar essas métricas usando o PromQL no CloudWatch Query Studio ou por meio da API de consulta compatível com o Prometheus.

Cada métrica é enriquecida automaticamente com até 150 rótulos, incluindo atributos de convenção semântica do OpenTelemetry e rótulos de pods e nós do Kubernetes. O PromQL lida com a agregação no momento da consulta, então cada métrica é publicada uma vez por recurso, em vez de em vários níveis de agregação. O complemento também correlaciona as métricas do acelerador do AWS Neuron e do AWS Elastic Fabric Adapter com os pods e contêineres específicos que os usam, fornecendo visibilidade que não está disponível apenas nas fontes de métricas.

Para habilitar o OTel Container Insights em um cluster do Amazon EKS, instale o complemento de observabilidade do EKS do Amazon CloudWatch, versão `v6.0.1-eksbuild.1` ou posterior, por meio do console do Amazon EKS ou da infraestrutura como código.

Para obter mais informações sobre a configuração do OTel Container Insights, consulte [Configurar o Container Insights](deploy-container-insights.md).

Para obter mais informações sobre a consulta a essas métricas com o PromQL, consulte [Consultas do PromQL](CloudWatch-PromQL-Querying.md).

## Como o OTel Container Insights se compara ao Container Insights (aprimorado)
<a name="container-insights-otel-comparison"></a>

A tabela a seguir resume as diferenças entre o Container Insights (aprimorado) e o OTel Container Insights.


| Recurso | Container Insights (aprimorado) | OTel Container Insights | 
| --- | --- | --- | 
| Nomes de métricas | Métricas no formato do CloudWatch (por exemplo, pod\$1cpu\$1utilization) | Nativo de código aberto (por exemplo, container\$1cpu\$1usage\$1seconds\$1total) | 
| Rótulos por métrica | 3 a 6 dimensões predefinidas por métrica | Até 150 rótulos, incluindo todos os rótulos de pods e nós do Kubernetes | 
| Agregação | Pré-agregada em vários níveis (cluster, namespace, workload, pod) | Métricas brutas por recurso; agregada no momento da consulta com o PromQL | 
| Linguagem da consulta | API do CloudWatch Metrics | PromQL (compatível com o Prometheus) | 
| Ingestão de métricas | CloudWatch Logs no formato EMF | Endpoint do OTLP | 

## Como as métricas são rotuladas
<a name="container-insights-otel-labels"></a>

Cada métrica coletada pelo OTel Container Insights carrega rótulos de três fontes.

Rótulos nativos da fonte de telemetria  
Rótulos da fonte original de métricas (por exemplo, o cAdvisor fornece rótulos como `pod`, `namespace` e `container`). Eles são preservados como atributos do ponto de dados.

Atributos de recursos do OpenTelemetry  
O complemento anexa atributos de recursos seguindo as convenções semânticas do OpenTelemetry para [Kubernetes](https://opentelemetry.io/docs/specs/semconv/resource/k8s/), [Host](https://opentelemetry.io/docs/specs/semconv/resource/host/) e [Nuvem](https://opentelemetry.io/docs/specs/semconv/resource/cloud/), como `k8s.pod.name`, `k8s.namespace.name`, `k8s.node.name`, `host.name` e `cloud.region`. Esses atributos são consistentes em todas as fontes de métricas.

Rótulos de pods e nós do Kubernetes  
Todos os rótulos de pods e de nós descobertos na API do Kubernetes são anexados como atributos de recursos com os prefixos `k8s.pod.label` e `k8s.node.label`.

Para obter mais informações sobre consultar esses atributos usando o PromQL, consulte [Consultas do PromQL](CloudWatch-PromQL-Querying.md).

## Métricas compatíveis
<a name="container-insights-otel-supported-metrics"></a>

A tabela a seguir lista as fontes e categorias das métricas coletadas pelo OTel Container Insights.


| Origem da métrica | Categoria métrica | Pré-requisitos | 
| --- | --- | --- | 
| cAdvisor | Métricas de CPU | - | 
| cAdvisor | Métricas de memória | - | 
| cAdvisor | Métricas de rede | - | 
| cAdvisor | Métricas de disco e de sistema de arquivos | - | 
| Exportador de nós do Prometheus | Métricas de CPU | - | 
| Exportador de nós do Prometheus | Métricas de memória | - | 
| Exportador de nós do Prometheus | Métricas de disco | - | 
| Exportador de nós do Prometheus | Métricas de sistema de arquivos | - | 
| Exportador de nós do Prometheus | Métricas de rede | - | 
| Exportador de nós do Prometheus | Métricas do sistema | - | 
| Exportador de nós do Prometheus | Métricas do VMStat | - | 
| Exportador de nós do Prometheus | Métricas de Netstat e soquetes | - | 
| NVIDIA DCGM | Métricas de utilização e desempenho da GPU | O [plug-in de dispositivo NVIDIA](https://github.com/NVIDIA/k8s-device-plugin) e o [kit de ferramentas de contêiner NVIDIA](https://github.com/NVIDIA/nvidia-container-toolkit) devem estar instalados. | 
| NVIDIA DCGM | Métricas de memória da GPU | O [plug-in de dispositivo NVIDIA](https://github.com/NVIDIA/k8s-device-plugin) e o [kit de ferramentas de contêiner NVIDIA](https://github.com/NVIDIA/nvidia-container-toolkit) devem estar instalados. | 
| NVIDIA DCGM | Métricas térmicas e de energia da GPU | O [plug-in de dispositivo NVIDIA](https://github.com/NVIDIA/k8s-device-plugin) e o [kit de ferramentas de contêiner NVIDIA](https://github.com/NVIDIA/nvidia-container-toolkit) devem estar instalados. | 
| NVIDIA DCGM | Métricas de limitação da GPU | O [plug-in de dispositivo NVIDIA](https://github.com/NVIDIA/k8s-device-plugin) e o [kit de ferramentas de contêiner NVIDIA](https://github.com/NVIDIA/nvidia-container-toolkit) devem estar instalados. | 
| NVIDIA DCGM | Métricas de erro e confiabilidade da GPU | O [plug-in de dispositivo NVIDIA](https://github.com/NVIDIA/k8s-device-plugin) e o [kit de ferramentas de contêiner NVIDIA](https://github.com/NVIDIA/nvidia-container-toolkit) devem estar instalados. | 
| NVIDIA DCGM | Métricas de NVLink da GPU | O [plug-in de dispositivo NVIDIA](https://github.com/NVIDIA/k8s-device-plugin) e o [kit de ferramentas de contêiner NVIDIA](https://github.com/NVIDIA/nvidia-container-toolkit) devem estar instalados. | 
| NVIDIA DCGM | Métricas de informações da GPU | O [plug-in de dispositivo NVIDIA](https://github.com/NVIDIA/k8s-device-plugin) e o [kit de ferramentas de contêiner NVIDIA](https://github.com/NVIDIA/nvidia-container-toolkit) devem estar instalados. | 
| AWS Neuron Monitor | Métricas do NeuronCore | O [driver Neuron](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/general/setup/neuron-setup/pytorch/neuronx/ubuntu/torch-neuronx-ubuntu22.html) e o [plug-in do dispositivo Neuron](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/containers/kubernetes-getting-started.html) devem estar instalados. | 
| AWS Neuron Monitor | Métricas do NeuronDevice | O [driver Neuron](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/general/setup/neuron-setup/pytorch/neuronx/ubuntu/torch-neuronx-ubuntu22.html) e o [plug-in do dispositivo Neuron](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/containers/kubernetes-getting-started.html) devem estar instalados. | 
| AWS Neuron Monitor | Métricas do sistema Neuron | O [driver Neuron](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/general/setup/neuron-setup/pytorch/neuronx/ubuntu/torch-neuronx-ubuntu22.html) e o [plug-in do dispositivo Neuron](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/containers/kubernetes-getting-started.html) devem estar instalados. | 
| AWS Elastic Fabric Adapter | Métricas do EFA | O [plug-in do dispositivo EFA](https://github.com/aws/eks-charts/tree/master/stable/aws-efa-k8s-device-plugin) deve estar instalado. | 
| NVMe | Métricas SMART de NVMe | - | 
| Métricas de estado do Kube | Métricas de pods, nós, implantação, DaemonSet, StatefulSet, ReplicaSet, tarefas, CronJob, serviços, namespaces, PersistentVolume, PersistentVolumeClaim | - | 
| Servidor da API do Kubernetes | Servidor da API e métricas do etcd | - | 

## Imagem de contêiner do atendente do CloudWatch
<a name="container-insights-download-limit"></a>

A Amazon fornece uma imagem de contêiner do atendente do CloudWatch no Amazon Elastic Container Registry. Para obter mais informações, consulte [cloudwatch-agent](https://gallery.ecr.aws/cloudwatch-agent/cloudwatch-agent) no Amazon ECR.

# Configurar o Container Insights
<a name="deploy-container-insights"></a>

O processo de configuração do Container Insights é diferente para o Amazon ECS e Amazon EKS e o Kubernetes. 
+ [Configurar o Container Insights no Amazon EKS e no Kubernetes](deploy-container-insights-EKS.md)
+ [Configurar o Container Insights no Amazon ECS](deploy-container-insights-ECS.md)

**Topics**
+ [Configurar o Container Insights no Amazon ECS](deploy-container-insights-ECS.md)
+ [Configurar o Container Insights no Amazon EKS e no Kubernetes](deploy-container-insights-EKS.md)
+ [Como configurar o Container Insights no RedHat OpenShift na AWS (ROSA)](deploy-container-insights-RedHatOpenShift.md)

# Configurar o Container Insights no Amazon ECS
<a name="deploy-container-insights-ECS"></a>

É possível usar uma ou ambas as opções a seguir para habilitar o Container Insights em clusters do Amazon ECS:
+ Use o Console de gerenciamento da AWS ou a AWS CLI para começar a coletar métricas no nível de cluster, no nível de tarefa e no nível de serviço.
+ Implante o agente do CloudWatch com um serviço daemon para começar a coletar métricas no nível de instância em clusters que são hospedados em instâncias do Amazon EC2.

**Topics**
+ [Configurar o Container Insights no Amazon ECS](deploy-container-insights-ECS-cluster.md)
+ [Configurar o Container Insights no Amazon ECS usando o AWS Distro for OpenTelemetry](deploy-container-insights-ECS-adot.md)
+ [Implantar o atendente do CloudWatch para coletar métricas no nível de instância do EC2 no Amazon ECS](deploy-container-insights-ECS-instancelevel.md)
+ [Implantar o AWS Distro for OpenTelemetry para coletar métricas no nível de instância do EC2 em clusters do Amazon ECS](deploy-container-insights-ECS-OTEL.md)
+ [Configurar o FireLens para enviar logs ao CloudWatch Logs](deploy-container-insights-ECS-logs.md)

# Configurar o Container Insights no Amazon ECS
<a name="deploy-container-insights-ECS-cluster"></a>

Você pode configurar o Container Insights com observabilidade aprimorada ou o Container Insights em clusters novos e existentes do Amazon ECS usando o console do Amazon ECS ou a AWS CLI. O Container Insights coleta métricas nos níveis de cluster, de tarefa e de serviço. O Container Insights com observabilidade aprimorada fornece dimensões e métricas adicionais, permitindo que você se aprofunde na visibilidade em nível de contêiner. 

Se estiver usando o Amazon ECS em uma instância do Amazon EC2, execute essa instância usando uma AMI que inclua o agente do Amazon ECS versão 1.29 ou posterior. Para obter informações sobre como atualizar a versão do agente, consulte [Atualizar o agente de contêiner do Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html).

**nota**  
Se a chave do AWS KMS gerenciada pelo cliente que você usa para as métricas do Amazon ECS Container Insights ainda não estiver configurada para funcionar com o CloudWatch, você deverá atualizar a política de chave para permitir logs criptografados no CloudWatch Logs. Você também deve associar sua própria chave do AWS KMS ao grupo de logs em `/aws/ecs/containerinsights/ClusterName/performance`. Para obter mais informações, consulte [Criptografar dados de logs no CloudWatch Logs usando o AWS Key Management Service](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html).

Recomendamos que você use o Container Insights com observabilidade aprimorada em vez do Container Insights, pois ele fornece visibilidade detalhada no ambiente de contêiner, reduzindo o tempo médio de resolução.

## Configurar o Container Insights com observabilidade aprimorada
<a name="set-container-insights-ECS-cluster-enhanced"></a>

Você pode ativar o Container Insights com observabilidade aprimorada usando o console do Amazon ECS ou a AWS CLI. 

------
#### [ AWS CLI ]

Use o comando a seguir para ativar o Container Insights com observabilidade aprimorada.

 Definir a configuração da conta `containerInsights` como `enhanced`

```
aws ecs put-account-setting --name containerInsights --value enhanced
```

Exemplo de saída

```
{
    "setting": {
        "name": "containerInsights",
        "value": "enhanced",
        "principalArn": "arn:aws:iam::123456789012:johndoe",
         "type": user
    }
}
```

**nota**  
Por padrão, o `put-account-setting` apenas é aplicável ao usuário autenticado no momento. Para habilitar a configuração em nível de conta para todos os usuários e perfis, trabalhe com o usuário-raiz, como no exemplo a seguir.  

```
aws ecs put-account-setting --name containerInsights --value enhanced --principal-arn arn:aws:iam::accountID:root
```

Depois de definir essa configuração de conta, todos os novos clusters usarão automaticamente o Container Insights com observabilidade aprimorada. Use o comando `update-cluster-settings` para adicionar o Container Insights com observabilidade aprimorada ao cluster existente, ou para atualizar clusters que atualmente usam o Container Insights para o Container Insights com observabilidade aprimorada.

```
aws ecs update-cluster-settings --cluster cluster-name --settings name=containerInsights,value=enhanced
```

------
#### [ Amazon ECS console ]

1. Abra o console em [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

1. Na barra de navegação na parte superior, selecione a região da qual você deseja visualizar as configurações da conta. 

1. Na página de navegação, selecione **Account Settings** (Configurações da conta).

1. Selecione **Atualizar**.

1. Para usar o Container Insights com observabilidade aprimorada, escolha **Container Insights com observabilidade aprimorada**.

1. Escolha **Salvar alterações**.

1. Na tela de confirmação, escolha **Confirm (Confirmar)** para salvar a seleção.

Depois de definir isso, todos os novos clusters usarão automaticamente o Container Insights com observabilidade aprimorada. Você pode adicionar o Container Insights com observabilidade aprimorada ao cluster existente, ou pode atualizar clusters que atualmente usam o Container Insights para o Container Insights com observabilidade aprimorada. Para obter mais informações, consulte [Atualização de um cluster do Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/update-cluster-v2.html) no *Guia do desenvolvedor do Amazon Elastic Container Service*.

------

## Configurar o Container Insights
<a name="set-container-insights-ECS-cluster"></a>

Você pode ativar o Container Insights usando o console do Amazon ECS ou a AWS CLI. 

------
#### [ AWS CLI ]

Para usar o Container Insights, defina a configuração da conta `container Insights` como `enabled`. Use o comando a seguir para ativar o Container Insights.

```
aws ecs put-account-setting --name containerInsights --value enabled
```

Exemplo de saída

```
{
    "setting": {
        "name": "container Insights",
        "value": "enabled",
        "principalArn": "arn:aws:iam::123456789012:johndoe",
         "type": user
    }
}
```

Ao definir a configuração da conta `container Insights` como `enabled`, todos os novos clusters terão o Container Insights habilitado por padrão. Use o comando `update-cluster-settings` para adicionar o Container Insights a um cluster existente.

```
aws ecs update-cluster-settings --cluster cluster-name --settings name=containerInsights,value=enabled
```

------
#### [ Amazon ECS console ]

1. Abra o console em [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

1. Na barra de navegação na parte superior, selecione a região da qual você deseja visualizar as configurações da conta. 

1. Na página de navegação, selecione **Account Settings** (Configurações da conta).

1. Selecione **Atualizar**.

1. Para usar o Container Insights, escolha **Container Insights**.

1. Escolha **Salvar alterações**.

1. Na tela de confirmação, escolha **Confirm (Confirmar)** para salvar a seleção.

Depois de definir isso, todos os novos clusters usarão automaticamente o Container Insights. Atualize os clusters existentes para adicionar o Container Insights. Para obter mais informações, consulte [Atualização de um cluster do Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/update-cluster-v2.html) no *Guia do desenvolvedor do Amazon Elastic Container Service*.

------

# Configurar o Container Insights no Amazon ECS usando o AWS Distro for OpenTelemetry
<a name="deploy-container-insights-ECS-adot"></a>

Consulte esta seção para usar o AWS Distro for OpenTelemetry para configurar o CloudWatch Container Insights em um cluster do Amazon ECS. Para obter mais informações sobre o AWS Distro for OpenTelemetry, consulte [AWS Distro for OpenTelemetry](https://aws.amazon.com/otel/). 

Estas etapas presumem que você já tenha um cluster executando o Amazon ECS. Para obter mais informações sobre como usar o AWS Distro for Open Telemetry com o Amazon ECS e configurar um cluster do Amazon ECS para essa finalidade, consulte [Configurar o AWS Distro for Open Telemetry Collector no Amazon Elastic Container Service](https://aws-otel.github.io/docs/setup/ecs).

## Etapa 1: Criar uma função de tarefa
<a name="deploy-container-insights-ECS-adot-CreateTaskRole"></a>

A primeira etapa é criar uma função de tarefa no cluster que o AWS Distro for Open Telemetry Collector usará.

**Para criar uma função de tarefa para o AWS Distro for Open Telemetry**

1. Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação, escolha **Policies (Políticas)** e, em seguida, selecione **Create policy (Criar política)**.

1. Selecione a guia **JSON** e copie a política a seguir:

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "logs:PutLogEvents",
                   "logs:CreateLogGroup",
                   "logs:CreateLogStream",
                   "logs:DescribeLogStreams",
                   "logs:DescribeLogGroups",
                   "ssm:GetParameters"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Selecione **Revisar política**.

1. Para nome, insira **AWSDistroOpenTelemetryPolicy** e escolha **Create policy** (Criar política).

1. No painel de navegação à esquerda, escolha **Roles** (Funções) e **Create role** (Criar função).

1. Na lista de serviços, escolha **Elastic Container Service**.

1. Na parte inferior da página, escolha **Elastic Container Service** e **Next: Permissions** (Próximo: permissões).

1. Na lista de políticas, procure **AWSDistroOpenTelemetryPolicy**.

1. Marque a caixa de seleção ao lado de **AWSDistroOpenTelemetryPolicy**.

1. Escolha **Next: Tags** (Próximo: etiquetas) e **Next: Review** (Próximo: revisar).

1. Em **Role name** (Nome da função), insira **AWSOpenTelemetryTaskRole** e escolha **Create role** (Criar função).

## Etapa 2: Criar uma função de execução de tarefa
<a name="deploy-container-insights-ECS-adot-CreateTaskExecutionRole"></a>

A próxima etapa é criar uma função de execução de tarefas para o AWS OpenTelemetry Collector.

**Para criar uma função de execução de tarefa para o AWS Distro for Open Telemetry**

1. Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação à esquerda, escolha **Roles** (Funções) e **Create role** (Criar função).

1. Na lista de serviços, escolha **Elastic Container Service**.

1. Na parte inferior da página, escolha **Elastic Container Service** e **Next: Permissions** (Próximo: permissões).

1. Na lista de políticas, procure **AmazonECSTaskExecutionRolePolicy** e marque a caixa de seleção ao lado de **AmazonECSTaskExecutionRolePolicy**.

1. Na lista de políticas, procure **CloudWatchLogsFullAccess** e marque a caixa de seleção ao lado de **CloudWatchLogsFullAccess**.

1. Na lista de políticas, procure **AmazonSSMReadOnlyAccess** e marque a caixa de seleção ao lado de **AmazonSSMReadOnlyAccess**.

1. Escolha **Next: Tags** (Próximo: etiquetas) e **Next: Review** (Próximo: revisar).

1. Em **Role name** (Nome da função), insira **AWSOpenTelemetryTaskExecutionRole** e escolha **Create role** (Criar função).

## Etapa 3: Criar uma definição de tarefa
<a name="deploy-container-insights-ECS-adot-CreateTaskDefinition"></a>

A próxima etapa é criar uma definição de tarefa.

**Para criar uma definição de tarefa para o AWS Distro for Open Telemetry**

1. Abra o console em [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

1. No painel de navegação, escolha **Task definitions** (Definições de tarefas)

1. Escolha **Create new task definition** (Criar nova definição de tarefa), **Create new task definition** (Criar nova definição de tarefa).

1. Em **Task definition family** (Família de definição de tarefa), especifique um nome exclusivo para a definição de tarefa.

1. Configure seus contêineres e escolha **Avançar**.

1. Em **Métricas e logs**, selecione **Usar coleção de métricas**.

1. Escolha **Próximo**.

1. Escolha **Criar**.

Para obter mais informações sobre como usar o AWS Open Telemetry Collector com o Amazon ECS, consulte [Configurar o AWS Distro for Open Telemetry Collector no Amazon Elastic Container Service](https://aws-otel.github.io/docs/setup/ecs).

## Etapa 4: Executar a tarefa
<a name="deploy-container-insights-ECS-adot-CreateTaskDefinition"></a>

A etapa final é executar a tarefa que você criou.

**Para executar a tarefa para AWS Distro for OpenTelemetry**

1. Abra o console em [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

1. No painel de navegação à esquerda, escolha **Task Definitions** (Definições de tarefa) e selecione a tarefa que você acabou de criar.

1. Escolha **Ações**, **Implantar**, **Executar tarefa**. 

1. Escolha **Deploy** (Implantar), **Run task** (Executar tarefa).

1. Na seção **Opções de computação**, em **Cluster existente**, escolha o cluster.

1. Escolha **Criar**.

1. Em seguida, é possível conferir as novas métricas no console do CloudWatch.

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

1. No painel de navegação à esquerda, escolha **Metrics**.

   Você deverá ver um namespace **ECS/ContainerInsights**. Escolha esse namespace e verá oito métricas.

# Implantar o atendente do CloudWatch para coletar métricas no nível de instância do EC2 no Amazon ECS
<a name="deploy-container-insights-ECS-instancelevel"></a>

Para implantar o atendente do CloudWatch para coletar métricas no nível de instância de clusters do Amazon ECS hospedados em uma instância do EC2, use uma configuração de início rápido com uma configuração padrão ou instale o atendente manualmente para poder personalizá-lo.

Ambos os métodos exigem que você já tenha, pelo menos, um cluster do Amazon ECS implantado com um tipo de inicialização do EC2 e que o contêiner do agente do CloudWatch tenha acesso ao Instance Metadata Service (IMDS) do EC2. Para obter mais informações sobre o IMDS, consulte [Metadados da instância e dados de usuário](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html).

Esses métodos também presumem que a AWS CLI esteja instalada. Além disso, para executar os comandos nos procedimentos a seguir, é necessário estar conectado em uma conta ou em uma função que tenha as políticas **IAMFullAccess** e **AmazonECS\$1FullAccess**.

**Importante**  
Ao definir o contêiner do agente do CloudWatch em sua definição de tarefa, configure `essential: false`. Isso evita que todo o serviço do Amazon ECS seja interrompido se o contêiner do agente do CloudWatch falhar. Outros contêineres de aplicações críticas continuarão em execução mesmo se o agente estiver temporariamente indisponível.

**Topics**
+ [Configuração rápida usando o CloudFormation](#deploy-container-insights-ECS-instancelevel-quickstart)
+ [Configuração manual e personalizada](#deploy-container-insights-ECS-instancelevel-manual)

## Configuração rápida usando o CloudFormation
<a name="deploy-container-insights-ECS-instancelevel-quickstart"></a>

Para usar a configuração rápida, insira o comando a seguir a fim de usar o CloudFormation para instalar o atendente. Substitua *cluster-name* e *cluster-region* pelo nome e pela região de seu cluster do Amazon ECS.

Esse comando cria as funções do IAM **CWAgentECSTaskRole** e **CWAgentECSExecutionRole**. Se essas funções já existirem em sua conta, use `ParameterKey=CreateIAMRoles,ParameterValue=False` em vez de `ParameterKey=CreateIAMRoles,ParameterValue=True` ao inserir o comando. Caso contrário, o comando falhará.

```
ClusterName=cluster-name
Region=cluster-region
curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/ecs-task-definition-templates/deployment-mode/daemon-service/cwagent-ecs-instance-metric/cloudformation-quickstart/cwagent-ecs-instance-metric-cfn.json
aws cloudformation create-stack --stack-name CWAgentECS-${ClusterName}-${Region} \
    --template-body file://cwagent-ecs-instance-metric-cfn.json \
    --parameters ParameterKey=ClusterName,ParameterValue=${ClusterName} \
                 ParameterKey=CreateIAMRoles,ParameterValue=True \
    --capabilities CAPABILITY_NAMED_IAM \
    --region ${Region}
```

**(Alternativa) Usar suas próprias funções do IAM**

Se quiser usar suas próprias função de tarefa do ECS e função de execução de tarefa do ECS em vez das funções **CWAgentECSTaskRole** e **CWAgentECSExecutionRole**, primeiro verifique se a função que deve ser usada como a função de tarefa do ECS tem a **CloudWatchAgentServerPolicy** anexada. Além disso, verifique se a função a ser usada como função de execução de tarefa do ECS tem as políticas **CloudWatchAgentServerPolicy** e **AmazonECSTaskExecutionRolePolicy** anexadas. Depois, insira o comando a seguir. No comando, substitua *task-role-arn* pelo ARN da função de tarefa do ECS e substitua *execution-role-arn* pelo ARN da função de execução de tarefa do ECS personalizada.

```
ClusterName=cluster-name
Region=cluster-region
TaskRoleArn=task-role-arn
ExecutionRoleArn=execution-role-arn
curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/ecs-task-definition-templates/deployment-mode/daemon-service/cwagent-ecs-instance-metric/cloudformation-quickstart/cwagent-ecs-instance-metric-cfn.json
aws cloudformation create-stack --stack-name CWAgentECS-${ClusterName}-${Region} \
    --template-body file://cwagent-ecs-instance-metric-cfn.json \
    --parameters ParameterKey=ClusterName,ParameterValue=${ClusterName} \
                 ParameterKey=TaskRoleArn,ParameterValue=${TaskRoleArn} \
                 ParameterKey=ExecutionRoleArn,ParameterValue=${ExecutionRoleArn} \
    --capabilities CAPABILITY_NAMED_IAM \
    --region ${Region}
```

**Solucionar problemas da configuração rápida**

Para verificar o status da pilha do CloudFormation, insira o comando a seguir.

```
ClusterName=cluster-name
Region=cluster-region
aws cloudformation describe-stacks --stack-name CWAgentECS-$ClusterName-$Region --region $Region
```

Se o `StackStatus` for diferente de `CREATE_COMPLETE` ou de `CREATE_IN_PROGRESS`, verifique os eventos da pilha para localizar o erro. Insira o comando a seguir.

```
ClusterName=cluster-name
Region=cluster-region
aws cloudformation describe-stack-events --stack-name CWAgentECS-$ClusterName-$Region --region $Region
```

Para conferir o status do serviço daemon `cwagent`, insira o comando a seguir. Na saída, `runningCount` deve ser igual a `desiredCount` na seção `deployment`. Se não for igual, verifique a seção `failures` na saída.

```
ClusterName=cluster-name
Region=cluster-region
aws ecs describe-services --services cwagent-daemon-service --cluster $ClusterName --region $Region
```

Também é possível usar o console do CloudWatch Logs para conferir o log do atendente. Procure o grupo de logs **/ecs/ecs-cwagent-daemon-service**.

**Excluir a pilha do CloudFormation do atendente do CloudWatch**

Se for necessário excluir a pilha do CloudFormation, insira o comando a seguir.

```
ClusterName=cluster-name
Region=cluster-region
aws cloudformation delete-stack --stack-name CWAgentECS-${ClusterName}-${Region} --region ${Region}
```

## Configuração manual e personalizada
<a name="deploy-container-insights-ECS-instancelevel-manual"></a>

Siga as etapas desta seção para implantar manualmente o atendente do CloudWatch a fim de coletar métricas no nível de instância dos clusters do Amazon ECS hospedados em instâncias do EC2.

### Funções e políticas do IAM necessárias
<a name="deploy-container-insights-ECS-instancelevel-IAMRoles"></a>

São necessárias duas funções do IAM. É necessário criá-las, caso ainda não existam. Para obter mais informações sobre essas funções, consulte [Funções do IAM para tarefas](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) e [Função de execução de tarefa do Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html).
+ Uma *função de tarefa do ECS*, que é usada pelo atendente do CloudWatch para publicar métricas. Se essa função já existir, será necessário verificar se ela tem a política `CloudWatchAgentServerPolicy` anexada.
+ Uma *função de execução de tarefa do ECS*, que é usada pelo atendente do Amazon ECS para executar o atendente do CloudWatch. Se essa função já existir, será necessário verificar se ela tem as políticas `AmazonECSTaskExecutionRolePolicy` e `CloudWatchAgentServerPolicy` anexadas.

Se ainda não tiver essas funções, você poderá usar os comandos a seguir para criá-las e anexar as políticas necessárias. Este primeiro comando cria a função de tarefa do ECS.

```
aws iam create-role --role-name CWAgentECSTaskRole \
    --assume-role-policy-document "{\"Version\": \"2012-10-17\",		 	 	 \"Statement\": [{\"Sid\": \"\",\"Effect\": \"Allow\",\"Principal\": {\"Service\": \"ecs-tasks.amazonaws.com\"},\"Action\": \"sts:AssumeRole\"}]}"
```

Após inserir o comando anterior, anote o valor de `Arn` da saída do comando como "TaskRoleArn". Você precisará usá-lo posteriormente ao criar a definição de tarefa. Depois, insira o comando a seguir para anexar as políticas necessárias.

```
aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy \
    --role-name CWAgentECSTaskRole
```

Este próximo comando cria a função de execução de tarefa do ECS.

```
aws iam create-role --role-name CWAgentECSExecutionRole \
    --assume-role-policy-document "{\"Version\": \"2012-10-17\",		 	 	 \"Statement\": [{\"Sid\": \"\",\"Effect\": \"Allow\",\"Principal\": {\"Service\": \"ecs-tasks.amazonaws.com\"},\"Action\": \"sts:AssumeRole\"}]}"
```

Após inserir o comando anterior, anote o valor de `Arn` da saída do comando como "ExecutionRoleArn". Você precisará usá-lo posteriormente ao criar a definição de tarefa. Depois, insira os comandos a seguir para anexar as políticas necessárias.

```
aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy \
    --role-name CWAgentECSExecutionRole
          
aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy \
    --role-name CWAgentECSExecutionRole
```

### Criar a definição de tarefa e iniciar o serviço daemon
<a name="deploy-container-insights-ECS-instancelevel-taskdefinition"></a>

Crie uma definição de tarefa e use-a para executar o atendente do CloudWatch como um serviço daemon. Para criar a definição de tarefa, insira o comando a seguir. Nas primeiras linhas, substitua os espaços reservados pelos valores reais da implantação. *logs-region* é a região onde o CloudWatch Logs está localizado e *cluster-region* é a região onde o cluster está localizado. *task-role-arn* é o ARN do perfil da tarefa do ECS que você está usando e *execution-role-arn* é o ARN do perfil de execução de tarefa do ECS.

```
TaskRoleArn=task-role-arn
ExecutionRoleArn=execution-role-arn
AWSLogsRegion=logs-region
Region=cluster-region
curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/ecs-task-definition-templates/deployment-mode/daemon-service/cwagent-ecs-instance-metric/cwagent-ecs-instance-metric.json \
    | sed "s|{{task-role-arn}}|${TaskRoleArn}|;s|{{execution-role-arn}}|${ExecutionRoleArn}|;s|{{awslogs-region}}|${AWSLogsRegion}|" \
    | xargs -0 aws ecs register-task-definition --region ${Region} --cli-input-json
```

Depois, execute o comando a seguir para executar o serviço daemon. Substitua *cluster-name* e *cluster-region* pelo nome e pela região de seu cluster do Amazon ECS.

**Importante**  
Remova todas as estratégias do provedor de capacidade antes de executar o comando. Caso contrário, o comando não funcionará.

```
ClusterName=cluster-name
Region=cluster-region
aws ecs create-service \
    --cluster ${ClusterName} \
    --service-name cwagent-daemon-service \
    --task-definition ecs-cwagent-daemon-service \
    --scheduling-strategy DAEMON \
    --region ${Region}
```

Se esta mensagem de erro for exibida, `An error occurred (InvalidParameterException) when calling the CreateService operation: Creation of service was not idempotent`, é porque você já criou um serviço daemon chamado `cwagent-daemon-service`. Será necessário excluir esse serviço primeiro, usando o comando a seguir como exemplo.

```
ClusterName=cluster-name
Region=cluster-region
aws ecs delete-service \
    --cluster ${ClusterName} \
    --service cwagent-daemon-service \
    --region ${Region} \
    --force
```

### (Opcional) Configuração avançada
<a name="deploy-container-insights-ECS-instancelevel-advanced"></a>

Se preferir, você poderá usar o SSM para especificar outras opções de configuração para o atendente do CloudWatch nos clusters do Amazon ECS hospedados nas instâncias do EC2. Essas opções são as seguintes:
+ `metrics_collection_interval`? a frequência, em segundos, com a qual o atendente do CloudWatch coleta as métricas. O padrão é 60. O intervalo é de 1 a 172.000.
+ `endpoint_override`: (opcional) especifica um endpoint diferente para o qual enviar logs. Você pode querer fazer isso se estiver publicando de um cluster em uma VPC e quiser que os dados de logs vão para um VPC endpoint.

  O valor de `endpoint_override` deve ser uma string que seja um URL.
+ `force_flush_interval`: especifica em segundos a quantidade máxima de tempo em que os logs permanecem no buffer da memória antes de serem enviados ao servidor. Não importa a configuração para esse campo, se o tamanho dos logs no buffer alcançar 1 MB, os logs serão enviados imediatamente para o servidor. O valor de padrão é 5 segundos.
+ `region`: por padrão, o atendente publica métricas na mesma região onde a instância de contêiner do Amazon ECS está localizada. Para substituir isso, é possível especificar uma região diferente aqui. Por exemplo, `"region" : "us-east-1"`

Veja a seguir um exemplo de uma configuração personalizada:

```
{
    "agent": {
        "region": "us-east-1"
    },
    "logs": {
        "metrics_collected": {
            "ecs": {
                "metrics_collection_interval": 30
            }
        },
        "force_flush_interval": 5
    }
}
```

**Para personalizar a configuração do atendente do CloudWatch nos contêineres do Amazon ECS**

1. Verifique se a política **AmazonSSMReadOnlyAccess** está anexada à função de execução de tarefa do Amazon ECS. É possível inserir o comando a seguir para fazer isso. Esse exemplo pressupõe que a função de execução de tarefa do Amazon ECS seja CWAgentECSExecutionRole. Se você estiver usando uma função diferente, substitua esse nome da função no comando a seguir.

   ```
   aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/AmazonSSMReadOnlyAccess \
           --role-name CWAgentECSExecutionRole
   ```

1. Crie o arquivo de configuração personalizada semelhante ao exemplo anterior. Nomeie esse arquivo como `/tmp/ecs-cwagent-daemon-config.json`.

1. Execute o comando a seguir para colocar essa configuração no Parameter Store. Substitua *cluster-region* pela região do cluster do Amazon ECS. Para executar esse comando, é necessário estar conectado a um usuário ou a uma função que tenha a política **AmazonSSMFullAccess**.

   ```
   Region=cluster-region
   aws ssm put-parameter \
       --name "ecs-cwagent-daemon-service" \
       --type "String" \
       --value "`cat /tmp/ecs-cwagent-daemon-config.json`" \
       --region $Region
   ```

1. Faça download do arquivo de definição de tarefa em um arquivo local, como . `/tmp/cwagent-ecs-instance-metric.json`

   ```
   curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/ecs-task-definition-templates/deployment-mode/daemon-service/cwagent-ecs-instance-metric/cwagent-ecs-instance-metric.json -o /tmp/cwagent-ecs-instance-metric.json
   ```

1. Modifique o arquivo de definição de tarefa. Remova a seguinte seção:

   ```
   "environment": [
                   {
                       "name": "USE_DEFAULT_CONFIG",
                       "value": "True"
                   }
               ],
   ```

   Substitua essa seção pela seguinte:

   ```
   "secrets": [
                   {
                       "name": "CW_CONFIG_CONTENT",
                       "valueFrom": "ecs-cwagent-daemon-service"
                   }
               ],
   ```

1. Reinicie o atendente como um serviço daemon seguindo estas etapas:

   1. Execute o comando a seguir.

      ```
      TaskRoleArn=task-role-arn
      ExecutionRoleArn=execution-role-arn
      AWSLogsRegion=logs-region
      Region=cluster-region
      cat /tmp/cwagent-ecs-instance-metric.json \
          | sed "s|{{task-role-arn}}|${TaskRoleArn}|;s|{{execution-role-arn}}|${ExecutionRoleArn}|;s|{{awslogs-region}}|${AWSLogsRegion}|" \
          | xargs -0 aws ecs register-task-definition --region ${Region} --cli-input-json
      ```

   1. Execute o comando a seguir para executar o serviço daemon. Substitua *cluster-name* e *cluster-region* pelo nome e pela região de seu cluster do Amazon ECS.

      ```
      ClusterName=cluster-name
      Region=cluster-region
      aws ecs create-service \
          --cluster ${ClusterName} \
          --service-name cwagent-daemon-service \
          --task-definition ecs-cwagent-daemon-service \
          --scheduling-strategy DAEMON \
          --region ${Region}
      ```

      Se esta mensagem de erro for exibida, `An error occurred (InvalidParameterException) when calling the CreateService operation: Creation of service was not idempotent`, é porque você já criou um serviço daemon chamado `cwagent-daemon-service`. Será necessário excluir esse serviço primeiro, usando o comando a seguir como exemplo.

      ```
      ClusterName=cluster-name
      Region=Region
      aws ecs delete-service \
          --cluster ${ClusterName} \
          --service cwagent-daemon-service \
          --region ${Region} \
          --force
      ```

# Implantar o AWS Distro for OpenTelemetry para coletar métricas no nível de instância do EC2 em clusters do Amazon ECS
<a name="deploy-container-insights-ECS-OTEL"></a>

Realize as etapas desta seção para usar o AWS Distro for OpenTelemetry para coletar métricas no nível de instância do EC2 em clusters do Amazon ECS. Para obter mais informações sobre o AWS Distro for OpenTelemetry, consulte [AWS Distro for OpenTelemetry](https://aws.amazon.com/otel/).

Estas etapas presumem que você já tenha um cluster executando o Amazon ECS. Esse cluster deve ser implantado com o tipo de inicialização EC2. Para obter mais informações sobre como usar o AWS Distro for Open Telemetry com o Amazon ECS e configurar um cluster do Amazon ECS para essa finalidade, consulte [Configurar o AWS Distro for Open Telemetry Collector no Amazon Elastic Container Service para métricas no nível da instância do EC2 no ECS](https://aws-otel.github.io/docs/setup/ecs#3-setup-the-aws-otel-collector-for-ecs-ec2-instance-metrics). 

**Topics**
+ [Configuração rápida usando o CloudFormation](#container-insights-ECS-OTEL-quicksetup)
+ [Configuração manual e personalizada](#container-insights-ECS-OTEL-custom)

## Configuração rápida usando o CloudFormation
<a name="container-insights-ECS-OTEL-quicksetup"></a>

Baixe o arquivo de modelo do CloudFormation para instalar o AWS Distro for OpenTelemetry Colector para o Amazon ECS no EC2. Execute o comando curl a seguir.

```
curl -O https://raw.githubusercontent.com/aws-observability/aws-otel-collector/main/deployment-template/ecs/aws-otel-ec2-instance-metrics-daemon-deployment-cfn.yaml
```

Depois de baixar o arquivo de modelo, abra-o e substitua *PATH\$1TO\$1CloudFormation\$1TEMPLATE* pelo caminho onde você salvou o arquivo de modelo. Em seguida, exporte os seguintes parâmetros e execute o comando CloudFormation, conforme mostrado no comando a seguir.
+ **Cluster\$1Name**: o nome do cluster do Amazon ECS
+ **AWS\$1Region**: a região para onde os dados serão enviados
+ **PATH\$1TO\$1CloudFormation\$1TEMPLATE**: o caminho onde você salvou o arquivo de modelo do CloudFormation.
+ **command**: para habilitar o AWS Distro for OpenTelemetry Collector para coletar as métricas no nível de instância do Amazon ECS no Amazon EC2, é necessário especificar `--config=/etc/ecs/otel-instance-metrics-config.yaml` para este parâmetro.

```
ClusterName=Cluster_Name
Region=AWS_Region
command=--config=/etc/ecs/otel-instance-metrics-config.yaml
aws cloudformation create-stack --stack-name AOCECS-${ClusterName}-${Region} \
--template-body file://PATH_TO_CloudFormation_TEMPLATE \
--parameters ParameterKey=ClusterName,ParameterValue=${ClusterName} \
ParameterKey=CreateIAMRoles,ParameterValue=True \
ParameterKey=command,ParameterValue=${command} \
--capabilities CAPABILITY_NAMED_IAM \
--region ${Region}
```

Depois de executar este comando, use o console do Amazon ECS para ver se a tarefa está em execução.

### Solucionar problemas da configuração rápida
<a name="container-insights-ECS-OTEL-quicksetup-troubleshooting"></a>

Para verificar o status da pilha do CloudFormation, insira o comando a seguir.

```
ClusterName=cluster-name
Region=cluster-region
aws cloudformation describe-stack --stack-name AOCECS-$ClusterName-$Region --region $Region
```

Se o valor de `StackStatus` for diferente de `CREATE_COMPLETE` ou de `CREATE_IN_PROGRESS`, verifique os eventos da pilha para localizar o erro. Insira o comando a seguir.

```
ClusterName=cluster-name
Region=cluster-region
aws cloudformation describe-stack-events --stack-name AOCECS-$ClusterName-$Region --region $Region
```

Para conferir o status do serviço daemon `AOCECS`, insira o comando a seguir. Na saída, é necessário verificar se `runningCount` é igual a `desiredCount` na seção de implantação. Se não for igual, confira a seção de falhas na saída.

```
ClusterName=cluster-name
Region=cluster-region
aws ecs describe-services --services AOCECS-daemon-service --cluster $ClusterName --region $Region
```

Também é possível usar o console do CloudWatch Logs para conferir o log do atendente. Procure o grupo de logs **/aws/ecs/containerinsights/\$1ClusterName\$1/performance**.

## Configuração manual e personalizada
<a name="container-insights-ECS-OTEL-custom"></a>

Siga as etapas desta seção para implantar manualmente o AWS Distro for OpenTelemetry a fim de coletar métricas no nível de instância dos clusters do Amazon ECS hospedados em instâncias do Amazon EC2.

### Etapa 1: Funções e políticas do IAM necessárias
<a name="container-insights-ECS-OTEL-custom-iam"></a>

São necessárias duas funções do IAM. É necessário criá-las, caso ainda não existam. Para obter mais informações sobre essas funções, consulte [Criar política do IAM](https://aws-otel.github.io/docs/setup/ecs/create-iam-policy) e [Criar função do IAM](https://aws-otel.github.io/docs/setup/ecs/create-iam-role).

### Etapa 2: Criar uma definição de tarefa
<a name="container-insights-ECS-OTEL-custom-task"></a>

Crie uma definição de tarefa e use-a para iniciar o atendente do AWS Distro for OpenTelemetry como um serviço daemon.

Para usar o modelo de definição de tarefa para criar a definição de tarefa, siga as instruções em [Criar definição de tarefa do ECS EC2 para instância do EC2 com AWS OTel Collector](https://aws-otel.github.io/docs/setup/ecs/task-definition-for-ecs-ec2-instance).

Para usar o console do Amazon ECS para criar a definição de tarefa, siga as instruções em [Instalar AWS OTel Collector criando definição de rarefas pelo Console AWS para métricas de instância do EC2 no Amazon ECS](https://aws-otel.github.io/docs/setup/ecs/create-task-definition-instance-console).

### Etapa 3: Iniciar o serviço daemon
<a name="container-insights-ECS-OTEL-custom-launch"></a>

Para iniciar o AWS Distro para OpenTeemetry como um serviço daemon, siga as instruções em [Executar tarefa no Amazon Elastic Container Service (Amazon ECS) usando o serviço daemon](https://aws-otel.github.io/docs/setup/ecs/run-daemon-service).

### (Opcional) Configuração avançada
<a name="container-insights-ECS-OTEL-custom-advancdeconfig"></a>

Se preferir, você poderá usar o SSM para especificar outras opções de configuração para o AWS Distro for OpenTelemetry nos clusters do Amazon ECS hospedados nas instâncias do Amazon EC2. Para obter mais informações sobre como criar um arquivo de configuração, consulte [Configuração personalizada do OpenTelemetry](https://aws-otel.github.io/docs/setup/ecs#5-custom-opentelemetry-configuration). Para obter mais informações sobre as opções que você pode usar no arquivo de configuração, consulte [Receptor do AWS Container Insights](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/receiver/awscontainerinsightreceiver/README.md).

# Configurar o FireLens para enviar logs ao CloudWatch Logs
<a name="deploy-container-insights-ECS-logs"></a>

O FireLens para Amazon ECS permite usar parâmetros de definição de tarefa para rotear logs para o Amazon CloudWatch Logs para armazenamento e analytics de logs. O FireLens funciona com [Fluent Bit](https://fluentbit.io/) e [Fluentd](https://www.fluentd.org/). Fornecemos a imagem da AWS for Fluent Bit ou é possível usar sua própria imagem do Fluent Bit ou Fluentd. Criar definições de tarefa do Amazon ECS com uma configuração do FireLens tem suporte usando os AWS SDKs, AWS CLI e Console de gerenciamento da AWS. Para obter mais informações sobre o CloudWatch Logs, consulte [O que é o Amazon CloudWatch Logs?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html).

Há considerações importantes ao usar o FireLens for Amazon ECS. Para obter mais informações, consulte [Considerações](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html#firelens-considerations).

Para encontrar imagens da AWS for Fluent Bit, consulte[ Usar a imagem da AWS for Fluent Bit](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/firelens-using-fluentbit.html).

Para criar uma definição de tarefa que usa uma configuração do FireLens, consulte [Como criar uma definição de tarefa que usa uma configuração do FireLens](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/firelens-taskdef.html).

**Exemplo**

O exemplo de definição de tarefa a seguir mostra como especificar uma configuração de log que encaminha logs a um grupo de logs do CloudWatch Logs. Para obter mais informações, consulte [O que é o Amazon CloudWatch Logs?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) no *Guia do usuário do Amazon CloudWatch Logs*.

Nas opções de configuração de log, especifique o nome do grupo de logs e a região em que ele existe. Para que o Fluent Bit crie o grupo de logs em seu nome, especifique `"auto_create_group":"true"`. Também é possível especificar o ID da tarefa como o prefixo de fluxo de log que auxilia na filtragem. Para obter mais informações, consulte [Plugin do Fluent Bit para CloudWatch Logs](https://github.com/aws/amazon-cloudwatch-logs-for-fluent-bit/blob/mainline/README.md).

```
{
	"family": "firelens-example-cloudwatch",
	"taskRoleArn": "arn:aws:iam::123456789012:role/ecs_task_iam_role",
	"containerDefinitions": [
		{
			"essential": true,
			"image": "906394416424.dkr.ecr.us-west-2.amazonaws.com/aws-for-fluent-bit:latest",
			"name": "log_router",
			"firelensConfiguration": {
				"type": "fluentbit"
			},
			"logConfiguration": {
				"logDriver": "awslogs",
				"options": {
					"awslogs-group": "firelens-container",
					"awslogs-region": "us-west-2",
					"awslogs-create-group": "true",
					"awslogs-stream-prefix": "firelens"
				}
			},
			"memoryReservation": 50
		 },
		 {
			 "essential": true,
			 "image": "nginx",
			 "name": "app",
			 "logConfiguration": {
				 "logDriver":"awsfirelens",
				 "options": {
					"Name": "cloudwatch_logs",
					"region": "us-west-2",
					"log_key": "log",
                                 "log_group_name": "/aws/ecs/containerinsights/my-cluster/application",
					"auto_create_group": "true",
					"log_stream_name": "my-task-id"
				}
			},
			"memoryReservation": 100
		}
	]
}
```

# Configurar o Container Insights no Amazon EKS e no Kubernetes
<a name="deploy-container-insights-EKS"></a>

Há suporte para o Container Insights nas versões 1.23 e posteriores do Amazon EKS. Há suporte para o método de início rápido da instalação somente nas versões 1.24 e posteriores.

O processo geral para configurar o Container Insights no Amazon EKS ou no Kubernetes é o seguinte:

1. Verifique se você tem os pré-requisitos necessários.

1. Configure o complemento de observabilidade do EKS do Amazon CloudWatch, o agente do CloudWatch ou o AWS Distro para OpenTelemetry em seu cluster para enviar métricas ao CloudWatch. 
**nota**  
Para usar o Container Insights com observabilidade aprimorada para o Amazon EKS, você deve usar o complemento de observabilidade do EKS do Amazon CloudWatch ou o agente do CloudWatch. Para obter mais informações sobre esta versão do Container Insights, consulte [Container Insights com observabilidade aprimorada para o Amazon EKS](container-insights-detailed-metrics.md).  
Para usar o Container Insights com o Fargate, você deve usar o AWS Distro para OpenTelemetry. O Container Insights com observabilidade aprimorada para o Amazon EKS não é compatível com o Fargate.
**nota**  
Agora, o Container Insights é compatível com nós de processamento do Windows em um cluster do Amazon EKS. Além disso, o Container Insights com observabilidade aprimorada para o Amazon EKS é compatível com o sistema Windows. Para obter informações sobre como habilitar o Container Insights no Windows, consulte [Como usar o agente do CloudWatch com observabilidade aprimorada do Container Insights ativada](Container-Insights-EKS-agent.md).

   Para usar o Container Insights com as métricas do OpenTelemetry, instale o complemento de observabilidade do EKS do Amazon CloudWatch, versão `v6.0.1-eksbuild.1` ou posterior. Para obter mais informações, consulte [Métricas do Container Insights com OpenTelemetry para Amazon EKS](container-insights-otel-metrics.md).

   Configure o Fluent Bit ou o Fluentd para enviar logs ao CloudWatch Logs. (Isso ficará ativado por padrão se você instalar o complemento de observabilidade do EKS do Amazon CloudWatch.)

   Você pode executar essas etapas de uma só vez como parte da configuração de início rápido, se estiver usando o atendente do CloudWatch, ou executá-las de forma separada.

1. (Opcional) Configure o registro do ambiente de gerenciamento do Amazon EKS.

1. (Opcional) Configure o atendente do CloudWatch como um endpoint do StatsD no cluster para enviar métricas do StatsD ao CloudWatch.

1. (Opcional) Habilite logs de acesso do App Mesh Envoy.

Com a versão original do Container Insights, as métricas coletadas e os registros ingeridos são cobrados como métricas personalizadas. Com o Container Insights com observabilidade aprimorada para o Amazon EKS, as métricas e os logs do Container Insights são cobrados por observação em vez de serem cobrados por métrica armazenada ou log ingerido. Para obter mais informações sobre os preços do CloudWatch, consulte [Preço do Amazon CloudWatch](https://aws.amazon.com/cloudwatch/pricing/).

**Topics**
+ [Verificação dos pré-requisitos para o Container Insights no CloudWatch](Container-Insights-prerequisites.md)
+ [Como usar o agente do CloudWatch com observabilidade aprimorada do Container Insights ativada](Container-Insights-EKS-agent.md)
+ [Usar o AWS Distro for OpenTelemetry](Container-Insights-EKS-otel.md)
+ [Enviar logs ao CloudWatch Logs](Container-Insights-EKS-logs.md)
+ [Atualizar ou excluir o Container Insights no Amazon EKS e no Kubernetes](ContainerInsights-update-delete.md)

# Verificação dos pré-requisitos para o Container Insights no CloudWatch
<a name="Container-Insights-prerequisites"></a>

Antes de instalar o Container Insights no Amazon EKS ou no Kubernetes, verifique os pré-requisitos a seguir. Esses pré-requisitos se aplicam tanto se você usar o atendente do CloudWatch ou o AWS Distro for OpenTelemetry para configurar o Container Insights em clusters do Amazon EKS.
+ Você tem um cluster funcional do Amazon EKS ou do Kubernetes com nós anexados em uma das regiões que oferecem suporte ao Container Insights ao Amazon EKS e ao Kubernetes. Para obter a lista de regiões compatíveis, consulte [Container Insights](ContainerInsights.md).
+ Você tem `kubectl` instalado e em execução. Para obter mais informações, consulte [Instalar o `kubectl`](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html) no *Manual do usuário do Amazon EKS*.
+ Se você estiver usando o Kubernetes em execução na AWS, em vez de usar o Amazon EKS, os seguintes pré-requisitos também serão necessários:
  + Certifique-se de que o cluster do Kubernetes habilitou o controle de acesso baseado em funções (RBAC). Para obter mais informações, consulte [Usar a autorização de RBAC](https://kubernetes.io/docs/reference/access-authn-authz/rbac/) (em inglês) na Referência do Kubernetes. 
  + Seu kubelet habilitou o modo de autorização Webhook. Para obter mais informações, consulte [Autenticação/autorização do Kubelet](https://kubernetes.io/docs/reference/access-authn-authz/kubelet-authn-authz/) (em inglês) na Referência do Kubernetes.

Você também deve conceder permissões do IAM para permitir que seus nós de processamento do Amazon EKS enviem métricas e logs ao CloudWatch. Há duas maneiras de fazer isso:
+ Anexe uma política à função do IAM dos nós de processamento. Isso funciona tanto para clusters do Amazon EKS quanto para outros clusters do Kubernetes.
+ Utilize uma função do IAM para contas de serviço para o cluster e anexe a política a essa função. Funciona somente para clusters do Amazon EKS.

A primeira opção concede permissões ao CloudWatch para o nó inteiro, enquanto o uso de uma função do IAM para a conta de serviço dá acesso ao CloudWatch somente aos pods do daemonset apropriados.

**Anexar uma política à função do IAM de seus nós de processamento**

Siga estas etapas para anexar a política à função do IAM dos nós de processamento. Isso funciona tanto para clusters do Amazon EKS como para clusters do Kubernetes fora do Amazon EKS. 

**Como adicionar a política necessária à função do IAM para os nós de processamento**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Selecione uma das instâncias do nó de processamento e escolha a função do IAM na descrição.

1. Na página da função do IAM, selecione **Attach policies** (Anexar políticas).

1. Na lista de políticas, marque a caixa de seleção ao lado de **CloudWatchAgentServerPolicy**. Se necessário, use a caixa de pesquisa para encontrar essa política.

1. Escolha **Anexar políticas**.

Se você estiver executando um cluster do Kubernetes fora do Amazon EKS, talvez você não tenha uma função do IAM anexada a seus nós de processamento. Caso contrário, primeiro anexe uma função do IAM à instância e adicione a política conforme explicado nas etapas anteriores. Para obter mais informações sobre como anexar um perfil a uma instância, consulte [Anexar um perfil do IAM a uma instância](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/iam-roles-for-amazon-ec2.html#attach-iam-role) no *Guia do usuário do Amazon EC2*.

Se estiver executando um cluster do Kubernetes fora do Amazon EKS e quiser coletar IDs de volumes do EBS nas métricas. você deverá adicionar outra política à função do IAM anexada à instância. Adicione o seguinte como uma política em linha. Para obter mais informações, consulte [Adicionar e remover permissões de identidade do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) no *Manual do usuário do IAM*.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "ec2:DescribeVolumes"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}
```

------

**Usar uma função de conta de serviço do IAM**

Esse método funciona somente em clusters do Amazon EKS.

**Para conceder permissão para o CloudWatch usar uma função de conta de serviço do IAM**

1. Caso ainda não tenha feito isso, habilite as funções do IAM para contas de serviço no cluster. Para obter mais informações, consulte [Habilitar funções do IAM para contas de serviço em seu cluster ](https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html). 

1. Caso ainda não tenha configurado, configure a conta de serviço para usar o perfil do IAM. Para obter mais informações, consulte [Configuração de uma conta de serviço do Kubernetes para assumir um perfil do IAM](https://docs.aws.amazon.com/eks/latest/userguide/associate-service-account-role.html). 

   Ao criar a função, anexe a política do IAM **CloudWatchAgentServerPolicy** à função, além da política que você criar para a função. Além disso, a conta de serviço do Kubernetes associada que está vinculada a essa função deve ser criada no namespace do `amazon-cloudwatch`, no qual os daemonsets do CloudWatch e do Fluent Bit serão implantados nas próximas etapas.

1. Associe a função do IAM a uma conta de serviço no cluster, se ainda não tiver feito isso. Para obter mais informações, consulte [Configuração de uma conta de serviço do Kubernetes para assumir um perfil do IAM](https://docs.aws.amazon.com/eks/latest/userguide/associate-service-account-role.html).

# Como usar o agente do CloudWatch com observabilidade aprimorada do Container Insights ativada
<a name="Container-Insights-EKS-agent"></a>

Use as instruções em uma das seções a seguir para configurar o Container Insights em um cluster do Amazon EKS ou do Kubernetes usando o agente do CloudWatch. Há suporte para as instruções de início rápido somente nas versões 1.24 e posteriores do Amazon EKS.

**nota**  
Você pode instalar o Container Insights seguindo as instruções em qualquer uma das seções a seguir. Não é necessário seguir todos os três conjuntos de instruções.

**Topics**
+ [Introdução ao complemento Amazon CloudWatch Observability do EKS](Container-Insights-setup-EKS-addon.md)
+ [Configuração de início rápido para o Container Insights no Amazon EKS e no Kubernetes](Container-Insights-setup-EKS-quickstart.md)
+ [Configuração do agente do CloudWatch para a coleta de métricas do cluster](Container-Insights-setup-metrics.md)

# Introdução ao complemento Amazon CloudWatch Observability do EKS
<a name="Container-Insights-setup-EKS-addon"></a>

Você pode usar o complemento do EKS da Amazon para instalar o Container Insights com observabilidade aprimorada para o Amazon EKS. O complemento instala o agente do CloudWatch para enviar as métricas de infraestrutura do cluster, instala o Fluent Bit para enviar os logs de contêiner, e também habilita que o CloudWatch [Application Signals](CloudWatch-Application-Monitoring-Sections.md) envie a telemetria de performance para as aplicações.

Quando você usa o complemento do Amazon EKS na versão 1.5.0 ou em versões posteriores, o Container Insights é habilitado nos nós de processamento do Linux e do Windows no cluster. O Application Signals não é compatível com o sistema Windows no Amazon EKS.

O complemento do Amazon EKS não é compatível com clusters que executam o Kubernetes em vez do Amazon EKS.

Para obter mais informações sobre o complemento de observabilidade do EKS do Amazon CloudWatch, consulte [Instalação do agente do CloudWatch com o complemento de observabilidade do EKS do Amazon CloudWatch ou com o chart do Helm](install-CloudWatch-Observability-EKS-addon.md).

Se você usa a versão 3.1.0 ou posterior do complemento, pode usar a Identidade de Pods do EKS para conceder as permissões necessárias ao complemento. A Identidade de Pods do EKS é a opção recomendada e oferece benefícios como privilégio mínimo, alternância de credenciais e auditabilidade. Além disso, o uso da Identidade de Pods do EKS permite instalar o complemento do EKS como parte da própria criação do cluster.

**Como instalar o complemento Amazon CloudWatch Observability do EKS**

1. Siga as etapas de [Associação da Identidade de Pods do EKS](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-association.html#pod-id-association-create/) para criar o perfil do IAM e configurar o agente da Identidade de Pods do EKS.

1. Anexe uma política do IAM que conceda as permissões necessárias ao seu perfil. Substitua *my-role* pelo nome do seu perfil do IAM da etapa anterior.

   ```
   aws iam attach-role-policy \
    --role-name my-role \
   --policy-arn=arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy
   ```

1. Insira o comando a seguir, usando o perfil do IAM que você criou na etapa anterior:

   ```
   aws eks create-addon \
   --addon-name amazon-cloudwatch-observability \
   --cluster-name my-cluster-name \
   --pod-identity-associations serviceAccount=cloudwatch-agent,roleArn=arn:aws:iam::111122223333:role/my-role
   ```

# Configuração de início rápido para o Container Insights no Amazon EKS e no Kubernetes
<a name="Container-Insights-setup-EKS-quickstart"></a>

**Importante**  
Se estiver instalando o Container Insights em um cluster do Amazon EKS, recomendamos que use o complemento de observabilidade do EKS do Amazon CloudWatch para a instalação em vez de usar as instruções desta seção. Além disso, para recuperar redes com computação acelerada, use o complemento Amazon CloudWatch Observability EKS. Para obter mais informações e instruções, consulte [Introdução ao complemento Amazon CloudWatch Observability do EKS](Container-Insights-setup-EKS-addon.md).

Para concluir a configuração do Container Insights, siga as instruções de início rápido nesta seção. Se estiver instalando em um cluster do Amazon EKS e usar as instruções desta seção em ou após 6 de novembro de 2023, você instalará o Container Insights com observabilidade aprimorada para o Amazon EKS no cluster.

**Importante**  
Antes de executar as etapas desta seção, você deve ter verificado os pré-requisitos, inclusive as permissões do IAM. Para obter mais informações, consulte [Verificação dos pré-requisitos para o Container Insights no CloudWatch](Container-Insights-prerequisites.md). 

Como alternativa, você pode seguir as instruções nas duas seções a seguir, [Configuração do agente do CloudWatch para a coleta de métricas do cluster](Container-Insights-setup-metrics.md) e [Enviar logs ao CloudWatch Logs](Container-Insights-EKS-logs.md). Essas seções fornecem mais detalhes sobre como o atendente do CloudWatch funciona com o Amazon EKS e o Kubernetes, mas necessitam que você execute mais etapas de instalação.

Com a versão original do Container Insights, as métricas coletadas e os registros ingeridos são cobrados como métricas personalizadas. Com o Container Insights com observabilidade aprimorada para o Amazon EKS, as métricas e os logs do Container Insights são cobrados por observação em vez de serem cobrados por métrica armazenada ou log ingerido. Para obter mais informações sobre os preços do CloudWatch, consulte [Preço do Amazon CloudWatch](https://aws.amazon.com/cloudwatch/pricing/).

**nota**  
A Amazon agora lançou o Fluent Bit como a solução de log padrão para o Container Insights com ganhos consideráveis de performance. Recomendamos usar o Fluent Bit em vez do Fluentd.

## Início rápido ao usar o operador do agente do CloudWatch e o Fluent Bit
<a name="Container-Insights-setup-EKS-quickstart-FluentBit"></a>

Existem duas configurações para Fluent Bit: uma versão otimizada e uma versão que fornece uma experiência mais semelhante ao Fluentd. A configuração de início rápido usa a versão otimizada. Para obter mais detalhes sobre a configuração compatível com o Fluentd, consulte [Configurar o Fluent Bit como um DaemonSet para enviar logs ao CloudWatch Logs](Container-Insights-setup-logs-FluentBit.md).

O operador do agente do CloudWatch corresponde a um contêiner adicional instalado em um cluster do Amazon EKS. Ele é modelado de acordo com o Operador do OpenTelemetry para Kubernetes. O operador gerencia o ciclo de vida útil dos recursos do Kubernetes em um cluster. Ele instala o agente do CloudWatch, a ferramenta DCGM Exporter (NVIDIA) e o monitor do AWS Neuron em um cluster do Amazon EKS e os gerencia. O Fluent Bit e o agente do CloudWatch para Windows são instalados diretamente em um cluster do Amazon EKS sem a necessidade de que o operador os gerencie. 

Para obter uma solução de autoridade de certificação mais segura e repleta de funcionalidades, o operador do agente do CloudWatch requer o cert-manager, uma solução amplamente adotada para o gerenciamento de certificados TLS no Kubernetes. Usar o cert-manager simplifica o processo de obtenção, renovação, gerenciamento e uso desses certificados. Ele garante que os certificados sejam válidos e atualizados, bem como tenta renovar os certificados em um momento configurado antes da expiração. O cert-manager também facilita a emissão de certificados de diversas fontes com suporte, incluindo o AWS Certificate Manager Private Certificate Authority.

**Como implantar o Container Insights usando o início rápido**

1. Instale o cert-manager se ele ainda não estiver instalado no cluster. Para obter mais informações, consulte [cert-manager Installation](https://cert-manager.io/docs/installation/).

1. Instale as definições de recursos personalizados (CRD) ao inserir o comando apresentado a seguir.

   ```
   curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/main/k8s-quickstart/cwagent-custom-resource-definitions.yaml | kubectl apply --server-side -f -
   ```

1. Instale o operador ao inserir o comando apresentado a seguir. Substitua *my-cluster-name* pelo nome do cluster do Amazon EKS ou do Kubernetes e *my-cluster-region* pelo nome da região em que os logs são publicados. Recomendamos usar a mesma região em que o cluster está implantado para reduzir os custos de transferência de dados de saída da AWS.

   ```
   ClusterName=my-cluster-name
   RegionName=my-cluster-region
   curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/main/k8s-quickstart/cwagent-operator-rendered.yaml | sed 's/{{cluster_name}}/'${ClusterName}'/g;s/{{region_name}}/'${RegionName}'/g' | kubectl apply -f -
   ```

   Por exemplo, para implantar o Container Insights no cluster chamado `MyCluster` e publicar os logs e as métricas em Oeste dos EUA (Oregon), insira o comando a seguir.

   ```
   ClusterName='MyCluster'
   RegionName='us-west-2'
   curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/main/k8s-quickstart/cwagent-operator-rendered.yaml | sed 's/{{cluster_name}}/'${ClusterName}'/g;s/{{region_name}}/'${RegionName}'/g' | kubectl apply -f -
   ```

**Migrar do Container Insights**

Se você já tiver o Container Insights configurado em um cluster do Amazon EKS e desejar realizar a migração para o Container Insights com observabilidade aprimorada para o Amazon EKS, consulte [Atualização para o Container Insights com observabilidade aprimorada para o Amazon EKS no CloudWatch](Container-Insights-upgrade-enhanced.md).

**Excluir o Container Insights**

Se você quiser remover o Container Insights depois de usar a configuração de início rápido, insira os comandos apresentados a seguir.

```
ClusterName=my-cluster-name 
RegionName=my-cluster-region
curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/main/k8s-quickstart/cwagent-operator-rendered.yaml | sed 's/{{cluster_name}}/'${ClusterName}'/g;s/{{region_name}}/'${RegionName}'/g' | kubectl delete -f -
curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/main/k8s-quickstart/cwagent-custom-resource-definitions.yaml | kubectl delete -f -
```

# Configuração do agente do CloudWatch para a coleta de métricas do cluster
<a name="Container-Insights-setup-metrics"></a>

**Importante**  
Se estiver instalando o Container Insights em um cluster do Amazon EKS, recomendamos que use o complemento de observabilidade do EKS do Amazon CloudWatch para a instalação em vez de usar as instruções desta seção. Para obter mais informações e instruções, consulte [Introdução ao complemento Amazon CloudWatch Observability do EKS](Container-Insights-setup-EKS-addon.md).

Para configurar o Container Insights para coletar métricas, siga as etapas em [Configuração de início rápido para o Container Insights no Amazon EKS e no Kubernetes](Container-Insights-setup-EKS-quickstart.md) ou siga as etapas nesta seção. Nas etapas a seguir, você configura o atendente do CloudWatch para ser capaz de coletar métricas dos clusters.

Se estiver instalando em um cluster do Amazon EKS e usar as instruções desta seção em ou após 6 de novembro de 2023, você instalará o Container Insights com observabilidade aprimorada para o Amazon EKS no cluster.

## Etapa 1: Criar um namespace para o CloudWatch
<a name="create-namespace-metrics"></a>

Use a seguinte etapa para criar um namespace do Kubernetes chamado `amazon-cloudwatch` para o CloudWatch. Ignore essas etapas se você já tiver criado esse namespace.

**Para criar um namespace para o CloudWatch**
+ Insira o comando a seguir.

  ```
  kubectl apply -f https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/daemonset/container-insights-monitoring/cloudwatch-namespace.yaml
  ```

## Etapa 2: Criar uma conta de serviço no cluster
<a name="create-service-account"></a>

Aplique um dos métodos a seguir para criar uma conta de serviço para o agente do CloudWatch, se ainda não tiver uma.
+ Use `kubectl`
+ Usar um arquivo `kubeconfig`

### Usar `kubectl` para autenticação
<a name="use-kubectl"></a>

**Para usar `kubectl` para criar uma conta de serviço para o agente do CloudWatch**
+ Insira o comando a seguir.

  ```
  kubectl apply -f https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/daemonset/container-insights-monitoring/cwagent/cwagent-serviceaccount.yaml
  ```

Se você não seguiu as etapas anteriores, mas já tem uma conta de serviço para o atendente do CloudWatch que deseja usar, deve garantir que ela tenha as regras a seguir. Além disso, no restante das etapas da instalação do Container Insights, você deve usar o nome da conta de serviço em vez de `cloudwatch-agent`.

```
rules:
  - apiGroups: [""]
    resources: ["pods", "nodes", "endpoints"]
    verbs: ["list", "watch"]
  - apiGroups: [ "" ]
    resources: [ "services" ]
    verbs: [ "list", "watch" ]
  - apiGroups: ["apps"]
    resources: ["replicasets", "daemonsets", "deployments", "statefulsets"]
    verbs: ["list", "watch"]
  - apiGroups: ["batch"]
    resources: ["jobs"]
    verbs: ["list", "watch"]
  - apiGroups: [""]
    resources: ["nodes/proxy"]
    verbs: ["get"]
  - apiGroups: [""]
    resources: ["nodes/stats", "configmaps", "events"]
    verbs: ["create", "get"]
  - apiGroups: [""]
    resources: ["configmaps"]
    resourceNames: ["cwagent-clusterleader"]
    verbs: ["get","update"]
  - nonResourceURLs: ["/metrics"]
    verbs: ["get", "list", "watch"]
  - apiGroups: [ "discovery.k8s.io" ]
    resources: [ "endpointslices" ]
    verbs: [ "list", "watch", "get" ]
```

### Usar `kubeconfig` para autenticação
<a name="use-kubeconfig"></a>

Também é possível usar um arquivo `kubeconfig` para autenticação. Esse método permite que você contorne a necessidade de uma conta de serviço ao especificar diretamente o caminho de `kubeconfig` na configuração do seu agente do CloudWatch. Ele também permite que você remova sua dependência da API de ambiente de gerenciamento do Kubernetes para autenticação, simplificando sua configuração e aumentando potencialmente a segurança ao gerenciar a autenticação por meio de seu arquivo kubeconfig. 

Para usar esse método, atualize o arquivo de configuração do agente do CloudWatch para especificar o caminho para o arquivo `kubeconfig`, como no exemplo a seguir.

```
{
  "logs": {
    "metrics_collected": {
      "kubernetes": {
        "cluster_name": "YOUR_CLUSTER_NAME",
        "enhanced_container_insights": false,
        "accelerated_compute_metrics": false,
        "tag_service": false,
        "kube_config_path": "/path/to/your/kubeconfig" 
        "host_ip": "HOSTIP"
      }
    }
  }
}
```

Para criar um arquivo `kubeconfig`, crie uma Solicitação de Assinatura de Certificado (CSR) para o usuário `admin/{create_your_own_user}` com a função `system:masters` do Kubernetes. Em seguida, assine com a Autoridade Certificadora (CA) do cluster Kubernetes e crie o arquivo `kubeconfig`.

## Etapa 3: Criar um ConfigMap para o atendente do CloudWatch
<a name="create-configmap"></a>

Siga as etapas a seguir para criar um ConfigMap para o atendente do CloudWatch.

**Para criar um ConfigMap para o atendente do CloudWatch**

1. Faça download do YAML do ConfigMap para o host do cliente `kubectl` executando o seguinte comando:

   ```
   curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/daemonset/container-insights-monitoring/cwagent/cwagent-configmap-enhanced.yaml
   ```

1. Edite o arquivo YAML obtido por download da seguinte forma:
   + **cluster\$1name**: na seção `kubernetes`, substitua `{{cluster_name}}` pelo nome do cluster. Remova os caracteres `{{}}`. Se preferir, caso esteja usando um cluster do Amazon EKS, você poderá excluir o campo `"cluster_name"` e o valor. Se fizer isso, o atendente do CloudWatch detectará o nome do cluster a partir das etiquetas do Amazon EC2.

1. (Opcional) Faça alterações adicionais no ConfigMap com base nos requisitos de monitoramento da seguinte forma:
   + **metrics\$1collection\$1interval**: na seção `kubernetes`, você pode especificar com que frequência o atendente coleta métricas. O padrão é 60 segundos. O intervalo de coleta do cadvisor padrão em kubelet é de 15 segundos, portanto, não defina esse valor para menos de 15 segundos.
   + **endpoint\$1override**: na seção `logs`, você poderá especificar o endpoint do CloudWatch Logs se desejar substituir o endpoint padrão. Você pode querer fazer isso se estiver publicando de um cluster em uma VPC e quiser que os dados vão para um VPC endpoint.
   + **force\$1flush\$1interval**: na seção `logs`, você pode especificar o intervalo para agrupar em lote os eventos de log antes que eles sejam publicados no CloudWatch Logs. O padrão é 5 segundos.
   + **region**: por padrão, o atendente publicou métricas para a Região em que o nó de processamento está localizado. Para substituir isso, você pode adicionar um campo `region` na seção `agent`: por exemplo, `"region":"us-west-2"`.
   + Seção **statsd**: se quiser que o atendente do CloudWatch Logs também execute um StatsD em cada nó de processamento do cluster, você poderá adicionar uma seção `statsd` à seção `metrics`, conforme o exemplo a seguir. Para obter informações sobre outras opções do StatsD para essa seção, consulte [Recuperar métricas personalizadas com o StatsD](CloudWatch-Agent-custom-metrics-statsd.md).

     ```
     "metrics": {
       "metrics_collected": {
         "statsd": {
           "service_address":":8125"
         }
       }
     }
     ```

     Um exemplo completo da seção JSON é o seguinte. Se você estiver usando um arquivo `kubeconfig` para autenticação, adicione o parâmetro `kube_config_path` para especificar o caminho para seu arquivo kubeconfig.

     ```
     {
         "agent": {
             "region": "us-east-1"
         },
         "logs": {
             "metrics_collected": {
                 "kubernetes": {
                     "cluster_name": "MyCluster",
                     "metrics_collection_interval": 60,
                     "kube_config_path": "/path/to/your/kubeconfig" //if using kubeconfig for authentication
                 }
             },
             "force_flush_interval": 5,
             "endpoint_override": "logs.us-east-1.amazonaws.com"
         },
         "metrics": {
             "metrics_collected": {
                 "statsd": {
                     "service_address": ":8125"
                 }
             }
         }
     }
     ```

1. Crie o ConfigMap no cluster executando o comando a seguir.

   ```
   kubectl apply -f cwagent-configmap-enhanced.yaml
   ```

## Etapa 4: Implantar o atendente do CloudWatch como um DaemonSet
<a name="deploy-agent-yaml"></a>

Para concluir a instalação do atendente do CloudWatch e começar a coletar métricas de contêiner, siga as etapas a seguir.

**Para implantar o atendente do CloudWatch como um DaemonSet**

1. 
   + Para não usar o StatsD no cluster, insira o comando a seguir.

     ```
     kubectl apply -f https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/daemonset/container-insights-monitoring/cwagent/cwagent-daemonset.yaml
     ```
   + Para usar o StatsD, siga estas etapas:

     1. Faça download do YAML do DaemonSet para o host do cliente `kubectl` executando o comando a seguir.

        ```
        curl -O  https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/daemonset/container-insights-monitoring/cwagent/cwagent-daemonset.yaml
        ```

     1. Remova o comentário da seção `port` no arquivo `cwagent-daemonset.yaml` da seguinte forma: 

        ```
        ports:
          - containerPort: 8125
            hostPort: 8125
            protocol: UDP
        ```

     1. Implante o atendente do CloudWatch no cluster executando o comando a seguir.

        ```
        kubectl apply -f cwagent-daemonset.yaml
        ```

     1. Implante o agente do CloudWatch nos nós do Windows em seu cluster ao executar o comando apresentado a seguir. O receptor StatsD não é compatível com o agente do CloudWatch no Windows.

        ```
        kubectl apply -f cwagent-daemonset-windows.yaml
        ```

1. Confirme se o atendente está implantado executando o comando a seguir.

   ```
   kubectl get pods -n amazon-cloudwatch
   ```

Quando for concluído, o atendente do CloudWatch criará um grupo de logs chamado `/aws/containerinsights/Cluster_Name/performance` e enviará os eventos de log de performance a esse grupo de logs. Se você também configurar o atendente como um listener do StatsD, o atendente também escutará as métricas do StatsD na porta 8125 com o endereço IP do nó no qual o pod do aplicativo está programado.

### Solução de problemas
<a name="ContainerInsights-deploy-troubleshooting"></a>

Se o atendente não for implantado corretamente, tente o seguinte:
+ Execute o comando a seguir para obter a lista de pods.

  ```
  kubectl get pods -n amazon-cloudwatch
  ```
+ Execute o comando a seguir e verifique os eventos na parte inferior da saída.

  ```
  kubectl describe pod pod-name -n amazon-cloudwatch
  ```
+ Execute o comando a seguir para verificar os logs.

  ```
  kubectl logs pod-name  -n amazon-cloudwatch
  ```

# Usar o AWS Distro for OpenTelemetry
<a name="Container-Insights-EKS-otel"></a>

Você pode configurar o Container Insights para coletar métricas dos clusters do Amazon EKS usando o coletor AWS Distro for OpenTelemetry. Para obter mais informações sobre o AWS Distro for OpenTelemetry, consulte [AWS Distro for OpenTelemetry](https://aws.amazon.com/otel/). 

**Importante**  
Se você instalar usando o AWS Distro para OpenTelemetry, você instala o Container Insights, mas não terá acesso ao Container Insights com observabilidade aprimorada para o Amazon EKS. Você não coletará as métricas detalhadas compatíveis com o Container Insights com observabilidade aprimorada para o Amazon EKS.

A forma de configuração do Container Insights depende se o cluster está hospedado em instâncias do Amazon EC2 ou em AWS Fargate.

## Clusters do Amazon EKS hospedados no Amazon EC2
<a name="Container-Insights-EKS-otel-EC2"></a>

Se você ainda não tiver feito isso, verifique se cumpriu os pré-requisitos, inclusive as funções do IAM necessárias. Para obter mais informações, consulte [Verificação dos pré-requisitos para o Container Insights no CloudWatch](Container-Insights-prerequisites.md).

A Amazon fornece um chart do Helm que pode ser usado para configurar o monitoramento do Amazon Elastic Kubernetes Service no Amazon EC2. Esse monitoramento usa coletor AWS Distro for OpenEleetry (ADOT) para métricas e Fluent Bit para logs. Portanto, o chart do Helm é útil para clientes que usam o Amazon EKS no Amazon EC2 e desejam coletar métricas e logs para enviar ao CloudWatch Container Insights. Para obter mais informações sobre o chart do Helm, consulte [Gráfico ADOT Helm para EKS em métricas e logs do EC2 para o Amazon CloudWatch Container Insights](https://github.com/aws-observability/aws-otel-helm-charts/tree/main/charts/adot-exporter-for-eks-on-ec2). 

Como alternativa, você também pode usar as instruções no restante desta seção.

Primeiro, implante o coletor do AWS Distro for OpenTelemetry como um DaemonSet inserindo o comando a seguir. 

```
curl https://raw.githubusercontent.com/aws-observability/aws-otel-collector/main/deployment-template/eks/otel-container-insights-infra.yaml |
kubectl apply -f -
```

Insira o comando a seguir para confirmar se o coletor está em execução.

```
kubectl get pods -l name=aws-otel-eks-ci -n aws-otel-eks
```

Se a saída desse comando incluir vários pods no estado `Running`, o coletor está em execução e coletando métricas do cluster. O coletor cria um grupo de logs chamado `aws/containerinsights/cluster-name/performance` e envia os eventos de log de performance para ele.

Para obter informações sobre como visualizar as métricas do Container Insights no CloudWatch, consulte [Visualizar métricas do Container Insights](Container-Insights-view-metrics.md).

AWSA também forneceu documentação sobre o GitHub para esse cenário. Se quiser personalizar as métricas e os logs publicados pelo Container Insights, consulte [https://aws-otel.github.io/docs/getting-started/container-insights/eks-infra](https://aws-otel.github.io/docs/getting-started/container-insights/eks-infra).

## Clusters do Amazon EKS hospedados no Fargate
<a name="Container-Insights-EKS-otel-Fargate"></a>

Para obter instruções sobre como configurar e implantar um ADOT Collector para coletar métricas do sistema de cargas de trabalho implantadas em um cluster do Amazon EKS no Fargate e enviá-las para o CloudWatch Container Insights, consulte [Container Insights EKS Fargate](https://aws-otel.github.io/docs/getting-started/container-insights/eks-fargate) na documentação do AWS Distro for OpenTelemetry.

# Enviar logs ao CloudWatch Logs
<a name="Container-Insights-EKS-logs"></a>

Para enviar logs de seus contêineres para o Amazon CloudWatch Logs, você pode usar o Fluent Bit. Para obter mais informações, consulte [Fluent Bit](https://fluentbit.io/).

**nota**  
A partir de 10 de fevereiro de 2025, a AWS descontinuou o suporte ao FluentD como um encaminhador de logs para o CloudWatch Logs. Recomendamos usar o Fluent Bit, que é uma alternativa compacta e eficiente em termos de recursos. As implantações existentes do FluentD continuarão funcionando. Migre seu pipeline de logs para o Fluent Bit para garantir suporte contínuo e performance ideal.   
Anteriormente, o Container Insights também era compatível com o uso do FluentD para enviar logs dos contêineres. O FluentD foi descontinuado e agora não é mais compatível com o Container Insights. Use o Fluent Bit em vez disso.

**Topics**
+ [Configurar o Fluent Bit como um DaemonSet para enviar logs ao CloudWatch Logs](Container-Insights-setup-logs-FluentBit.md)
+ [(Opcional) Configurar o registro do ambiente de gerenciamento do Amazon EKS](Container-Insights-setup-control-plane-logging.md)
+ [(Opcional) Habilite o recurso Use\$1Kubelet para clusters grandes](ContainerInsights-use-kubelet.md)

# Configurar o Fluent Bit como um DaemonSet para enviar logs ao CloudWatch Logs
<a name="Container-Insights-setup-logs-FluentBit"></a>

As seções a seguir ajudam a implantar o Fluent Bit para enviar logs de contêineres ao CloudWatch Logs.

**Topics**
+ [Configurar o Fluent Bit](#Container-Insights-FluentBit-setup)
+ [Suporte a logs de várias linhas](#ContainerInsights-fluentbit-multiline)
+ [(Opcional) Reduzir o volume de log do Fluent Bit](#ContainerInsights-fluentbit-volume)
+ [Solução de problemas](#Container-Insights-FluentBit-troubleshoot)
+ [Painel](#Container-Insights-FluentBit-dashboard)

## Configurar o Fluent Bit
<a name="Container-Insights-FluentBit-setup"></a>

Para configurar o Fluent Bit para coletar logs de seus contêineres, siga as etapas em [Configuração de início rápido para o Container Insights no Amazon EKS e no Kubernetes](Container-Insights-setup-EKS-quickstart.md) ou siga as etapas nesta seção.

Com qualquer dos dois métodos, a função do IAM que está anexada aos nós do cluster deve ter permissões suficientes. Para obter mais informações sobre as permissões necessárias para executar um cluster do Amazon EKS, consulte[Políticas, funções, e permissões do Amazon EKS IAM](https://docs.aws.amazon.com/eks/latest/userguide/IAM_policies.html) no *Manual do usuário do Amazon EKS*.

Nas etapas a seguir, você configura o Fluent Bit como um daemonSet para enviar logs ao CloudWatch Logs. Ao concluir esta etapa, o Fluent Bit criará os grupos de log a seguir, caso eles ainda não existam.

**Importante**  
Se você já tiver o Fluentd configurado no Container Insights e o daemonSet do Fluentd não estiver sendo executado conforme o esperado (isso poderá acontecer se você usar o runtime `containerd`), desinstale-o antes de instalar o Fluent Bit para evitar que o Fluent Bit processe as mensagens de log de erros do Fluentd. Caso contrário, você deverá desinstalar o Fluentd imediatamente após ter instalado o Fluent Bit com êxito. A desinstalação do Fluentd após a instalação do Fluent Bit garante a continuidade do registro em logs durante esse processo de migração. Apenas um dentre o Fluent Bit e o Fluentd é necessário para enviar logs ao CloudWatch Logs.


| Nome do grupo de logs | Origem do log | 
| --- | --- | 
|  `/aws/containerinsights/Cluster_Name/application`  |  Todos os arquivos de log em `/var/log/containers`  | 
|  `/aws/containerinsights/Cluster_Name/host`  |  Logs de `/var/log/dmesg`, `/var/log/secure` e `/var/log/messages`  | 
|  `/aws/containerinsights/Cluster_Name/dataplane`  |  Os logs no `/var/log/journal` para `kubelet.service`, `kubeproxy.service` e `docker.service`.  | 

**Para instalar o Fluent Bit para enviar logs de contêineres ao CloudWatch Logs**

1. Se você ainda não tem um namespace chamado `amazon-cloudwatch`, crie um inserindo este comando:

   ```
   kubectl apply -f https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/daemonset/container-insights-monitoring/cloudwatch-namespace.yaml
   ```

1. Execute o comando a seguir para criar um ConfigMap chamado `cluster-info` com o nome do cluster e a região para enviar logs. Substitua *cluster-name* e *cluster-region* pelo nome e pela região de seu cluster.

   ```
   ClusterName=cluster-name
   RegionName=cluster-region
   FluentBitHttpPort='2020'
   FluentBitReadFromHead='Off'
   [[ ${FluentBitReadFromHead} = 'On' ]] && FluentBitReadFromTail='Off'|| FluentBitReadFromTail='On'
   [[ -z ${FluentBitHttpPort} ]] && FluentBitHttpServer='Off' || FluentBitHttpServer='On'
   kubectl create configmap fluent-bit-cluster-info \
   --from-literal=cluster.name=${ClusterName} \
   --from-literal=http.server=${FluentBitHttpServer} \
   --from-literal=http.port=${FluentBitHttpPort} \
   --from-literal=read.head=${FluentBitReadFromHead} \
   --from-literal=read.tail=${FluentBitReadFromTail} \
   --from-literal=logs.region=${RegionName} -n amazon-cloudwatch
   ```

   Neste comando, o `FluentBitHttpServer` para monitorar métricas de plugin é ativado por padrão. Para desativá-lo, altere a terceira linha no comando para `FluentBitHttpPort=''` (string vazia) no comando.

   Também por padrão, o Fluent Bit lê arquivos de log a partir do final e capturará somente novos logs depois de implantado. Caso queira o oposto, defina `FluentBitReadFromHead='On'`, e ele coletará todos os logs no sistema de arquivos.

1. Baixe e implante o DaemonSet do Fluent Bit no cluster executando os comandos a seguir.
   + Se você quiser obter a configuração otimizada do Fluent Bit para computadores com o sistema Linux, execute o comando apresentado a seguir.

     ```
     kubectl apply -f https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/daemonset/container-insights-monitoring/fluent-bit/fluent-bit.yaml
     ```
   + Se você quiser obter a configuração otimizada do Fluent Bit para computadores com o sistema Windows, execute o comando apresentado a seguir.

     ```
     kubectl apply -f https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/daemonset/container-insights-monitoring/fluent-bit/fluent-bit-windows.yaml
     ```
   + Se você estiver usando computadores com o sistema Linux e desejar uma configuração do Fluent Bit mais semelhante ao Fluentd, execute o comando apresentado a seguir.

     ```
     kubectl apply -f https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/daemonset/container-insights-monitoring/fluent-bit/fluent-bit-compatible.yaml
     ```
**Importante**  
Por padrão, a configuração do daemonset do Fluent Bit define o nível de log como INFO, o que pode resultar em maiores custos de ingestão do CloudWatch Logs. Se você quiser reduzir o volume e os custos de ingestão de logs, altere o nível de log para ERROR.  
Para obter mais informações sobre como reduzir o volume de log, consulte [(Opcional) Reduzir o volume de log do Fluent Bit](#ContainerInsights-fluentbit-volume).

1. Valide a implantação inserindo o comando a seguir. Cada nó deve ter um pod chamado **fluent-bit-\$1**.

   ```
   kubectl get pods -n amazon-cloudwatch
   ```

As etapas acima criarão os seguintes recursos no cluster:
+ Uma conta de serviço chamada `Fluent-Bit` no namespace `amazon-cloudwatch`. Essa conta de serviço é usada para executar o DaemonSet do Fluent Bit. Para obter mais informações, consulte [Gerenciar contas de serviço](https://kubernetes.io/docs/reference/access-authn-authz/service-accounts-admin/) (em inglês) na Referência do Kubernetes.
+ Uma função do cluster chamada `Fluent-Bit-role` no namespace `amazon-cloudwatch`. Essa função do cluster concede permissões `get`, `list` e `watch` em logs de pod para a conta de serviço `Fluent-Bit`. Para obter mais informações, consulte [Visão geral da API](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#api-overview/) (em inglês) na Referência do Kubernetes.
+ Um ConfigMap chamado `Fluent-Bit-config` no namespace `amazon-cloudwatch`. Esse ConfigMap contém a configuração a ser usada pelo Fluent Bit. Para obter mais informações, consulte [Configurar um pod para usar um ConfigMap](https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/) na documentação do Kubernetes Tasks.

Se pretende verificar a configuração do Fluent Bit, siga estas etapas.

**Verifique a configuração do Fluent Bit**

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

1. No painel de navegação, escolha **Grupos de logs**.

1. Certifique-se de que você está na região na qual implantou o Fluent Bit.

1. Confira a lista de grupos de logs na região. Você deve ver o seguinte:
   + `/aws/containerinsights/Cluster_Name/application`
   + `/aws/containerinsights/Cluster_Name/host`
   + `/aws/containerinsights/Cluster_Name/dataplane`

1. Navegue até um desses grupos de log e marque **Last Event Time** (Hora do último evento) para os fluxos de log. Se for recente em relação à implantação do Fluent Bit, a instalação será verificada.

   Pode haver um pequeno atraso na criação do grupo de logs `/dataplane`. Isso é normal, pois esses grupos de log só são criados quando o Fluent Bit começa a enviar logs a esse grupo de logs.

## Suporte a logs de várias linhas
<a name="ContainerInsights-fluentbit-multiline"></a>

Para obter informações sobre como usar o Fluent Bit com logs de várias linhas, consulte as seções a seguir da documentação do Fluent Bit:
+ [Análise de várias linhas](https://docs.fluentbit.io/manual/administration/configuring-fluent-bit/multiline-parsing)
+ [Várias linhas e contêineres (v1.8)](https://docs.fluentbit.io/manual/pipeline/inputs/tail#multiline-and-containers-v1.8)
+ [Núcleo de várias linhas (v1.8)](https://docs.fluentbit.io/manual/pipeline/inputs/tail#multiline-core-v1.8)
+ [Sempre use várias linhas multilinha na entrada final](https://github.com/aws/aws-for-fluent-bit/blob/mainline/troubleshooting/debugging.md#always-use-multiline-the-tail-input)

## (Opcional) Reduzir o volume de log do Fluent Bit
<a name="ContainerInsights-fluentbit-volume"></a>

Por padrão, enviamos logs de aplicação do Fluent Bit e metadados do Kubernetes ao CloudWatch. Para reduzir o volume de dados que estão sendo enviados ao CloudWatch, você pode impedir que uma ou ambas as fontes de dados sejam enviadas ao CloudWatch. Se você seguiu as etapas desta página para configurar o Fluent Bit, faça o download do arquivo YAML do manifesto do Kubernetes do comando `apply` de kubectl que você executou anteriormente e modifique-o com suas alterações, que você poderá então reaplicar ao seu cluster. Como alternativa, se você estiver usando o complemento de observabilidade do EKS do Amazon Cloudwatch ou o chart do Helm, consulte [(Opcional) Configuração adicional](install-CloudWatch-Observability-EKS-addon.md#install-CloudWatch-Observability-EKS-addon-configuration) para obter informações sobre como gerenciar a configuração do Fluent Bit usando a configuração avançada do complemento ou o chart do Helm.

Para interromper os logs de aplicação do Fluent Bit, remova a seção a seguir do arquivo `Fluent Bit configuration`.

```
[INPUT]
        Name                tail
        Tag                 application.*
        Path                /var/log/containers/fluent-bit*
        Parser              docker
        DB                  /fluent-bit/state/flb_log.db
        Mem_Buf_Limit       5MB
        Skip_Long_Lines     On
        Refresh_Interval    10
```

Para remover os metadados do Kubernetes, a fim de que não sejam anexados aos eventos de log que são enviados ao CloudWatch, adicione os filtros a seguir à seção `application-log.conf` na configuração do Fluent Bit. Substitua *<Metadata\$11>* e os campos semelhantes pelos identificadores de metadados reais.

```
application-log.conf: |
    [FILTER]
        Name                nest
        Match               application.*
        Operation           lift
        Nested_under        kubernetes
        Add_prefix          Kube.

    [FILTER]
        Name                modify
        Match               application.*
        Remove              Kube.<Metadata_1>
        Remove              Kube.<Metadata_2>
        Remove              Kube.<Metadata_3>
    
    [FILTER]
        Name                nest
        Match               application.*
        Operation           nest
        Wildcard            Kube.*
        Nested_under        kubernetes
        Remove_prefix       Kube.
```

## Solução de problemas
<a name="Container-Insights-FluentBit-troubleshoot"></a>

Caso não veja esses grupos de log e esteja procurando na região correta, confira os logs para os pods do daemonSet do Fluentd para procurar o erro.

Execute o comando a seguir para certificar-se de que o status seja `Running`.

```
kubectl get pods -n amazon-cloudwatch
```

Se os logs tiverem erros relacionados às permissões do IAM, verifique a função do IAM que está anexada aos nós do cluster. Para obter mais informações sobre as permissões necessárias para executar um cluster do Amazon EKS, consulte[Políticas, funções, e permissões do Amazon EKS IAM](https://docs.aws.amazon.com/eks/latest/userguide/IAM_policies.html) no *Manual do usuário do Amazon EKS*.

Se o status do pod for `CreateContainerConfigError`, obtenha o erro exato executando o comando a seguir.

```
kubectl describe pod pod_name -n amazon-cloudwatch
```

## Painel
<a name="Container-Insights-FluentBit-dashboard"></a>

É possível criar um painel para monitorar métricas de cada plugin em execução. Você pode visualizar dados para bytes de entrada e saída e para taxas de processamento de registros, bem como erros de saída e taxas de repetição/falha. Para visualizar essas métricas, será necessário instalar o atendente do CloudWatch com a coleção de métricas do Prometheus para clusters do Amazon EKS e do Kubernetes. Consulte para obter mais informações sobre como configurar o painel [Instalar o atendente do CloudWatch com a coleção de métricas do Prometheus em clusters do Amazon EKS e do KubernetesInstalar o atendente do CloudWatch com a coleção de métricas do Prometheus em clusters do Amazon EKS e do Kubernetes](ContainerInsights-Prometheus-Setup.md).

**nota**  
Antes de configurar este painel, é necessário configurar as métricas do Container Insights para o Prometheus. Para obter mais informações, consulte [Monitoramento de métricas do Container Insights Prometheus](ContainerInsights-Prometheus.md).

**Para criar um painel para métricas do Prometheus do Fluent Bits**

1. Crie variáveis de ambiente, substituindo os valores à direita nas linhas a seguir para corresponder a sua implantação.

   ```
   DASHBOARD_NAME=your_cw_dashboard_name
   REGION_NAME=your_metric_region_such_as_us-west-1
   CLUSTER_NAME=your_kubernetes_cluster_name
   ```

1. Crie o painel executando o comando a seguir.

   ```
   curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/sample_cloudwatch_dashboards/fluent-bit/cw_dashboard_fluent_bit.json \
   | sed "s/{{YOUR_AWS_REGION}}/${REGION_NAME}/g" \
   | sed "s/{{YOUR_CLUSTER_NAME}}/${CLUSTER_NAME}/g" \
   | xargs -0 aws cloudwatch put-dashboard --dashboard-name ${DASHBOARD_NAME} --dashboard-body
   ```

# (Opcional) Configurar o registro do ambiente de gerenciamento do Amazon EKS
<a name="Container-Insights-setup-control-plane-logging"></a>

Se estiver usando o Amazon EKS, opcionalmente, você poderá habilitar o registro do ambiente de gerenciamento do Amazon EKS para fornecer logs de diagnóstico e auditoria diretamente do ambiente de gerenciamento do Amazon EKS para o CloudWatch Logs. Para obter mais informações, consulte [Amazon EKS Control Plane Logging](https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html) (Registro em log do plano de controle do Amazon EKS).

# (Opcional) Habilite o recurso Use\$1Kubelet para clusters grandes
<a name="ContainerInsights-use-kubelet"></a>

Por padrão, o recurso Use\$1Kubelet está desabilitado no plugin FluentBit Kubernetes. A habilitação desse recurso pode reduzir o tráfego para o servidor de API e mitigar o problema de gargalo do servidor de API. Recomendamos a habilitação desse recurso para clusters grandes.

Para habilitar Use\$1Kubelet, primeiro adicione os nós e as permissões de nós/proxy à configuração clusterRole.

```
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: fluent-bit-role
rules:
  - nonResourceURLs:
      - /metrics
    verbs:
      - get
  - apiGroups: [""]
    resources:
      - namespaces
      - pods
      - pods/logs
      - nodes
      - nodes/proxy
    verbs: ["get", "list", "watch"]
```

Na configuração do DaemonSet, esse recurso precisa de acesso à rede host. A versão da imagem para `amazon/aws-for-fluent-bit` deve ser 2.12.0 ou posterior, ou a versão da imagem de bits fluentes deve ser 1.7.2 ou posterior.

```
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: fluent-bit
  namespace: amazon-cloudwatch
  labels:
    k8s-app: fluent-bit
    version: v1
    kubernetes.io/cluster-service: "true"
spec:
  selector:
    matchLabels:
      k8s-app: fluent-bit
  template:
    metadata:
      labels:
        k8s-app: fluent-bit
        version: v1
        kubernetes.io/cluster-service: "true"
    spec:
      containers:
      - name: fluent-bit
        image: amazon/aws-for-fluent-bit:2.19.0
        imagePullPolicy: Always
        env:
            - name: AWS_REGION
              valueFrom:
                configMapKeyRef:
                  name: fluent-bit-cluster-info
                  key: logs.region
            - name: CLUSTER_NAME
              valueFrom:
                configMapKeyRef:
                  name: fluent-bit-cluster-info
                  key: cluster.name
            - name: HTTP_SERVER
              valueFrom:
                configMapKeyRef:
                  name: fluent-bit-cluster-info
                  key: http.server
            - name: HTTP_PORT
              valueFrom:
                configMapKeyRef:
                  name: fluent-bit-cluster-info
                  key: http.port
            - name: READ_FROM_HEAD
              valueFrom:
                configMapKeyRef:
                  name: fluent-bit-cluster-info
                  key: read.head
            - name: READ_FROM_TAIL
              valueFrom:
                configMapKeyRef:
                  name: fluent-bit-cluster-info
                  key: read.tail
            - name: HOST_NAME
              valueFrom:
                fieldRef:
                  fieldPath: spec.nodeName
            - name: HOSTNAME
              valueFrom:
                fieldRef:
                  apiVersion: v1
                  fieldPath: metadata.name      
            - name: CI_VERSION
              value: "k8s/1.3.8"
        resources:
            limits:
              memory: 200Mi
            requests:
              cpu: 500m
              memory: 100Mi
        volumeMounts:
        # Please don't change below read-only permissions
        - name: fluentbitstate
          mountPath: /var/fluent-bit/state
        - name: varlog
          mountPath: /var/log
          readOnly: true
        - name: varlibdockercontainers
          mountPath: /var/lib/docker/containers
          readOnly: true
        - name: fluent-bit-config
          mountPath: /fluent-bit/etc/
        - name: runlogjournal
          mountPath: /run/log/journal
          readOnly: true
        - name: dmesg
          mountPath: /var/log/dmesg
          readOnly: true
      terminationGracePeriodSeconds: 10
      hostNetwork: true
      dnsPolicy: ClusterFirstWithHostNet
      volumes:
      - name: fluentbitstate
        hostPath:
          path: /var/fluent-bit/state
      - name: varlog
        hostPath:
          path: /var/log
      - name: varlibdockercontainers
        hostPath:
          path: /var/lib/docker/containers
      - name: fluent-bit-config
        configMap:
          name: fluent-bit-config
      - name: runlogjournal
        hostPath:
          path: /run/log/journal
      - name: dmesg
        hostPath:
          path: /var/log/dmesg
      serviceAccountName: fluent-bit
      tolerations:
      - key: node-role.kubernetes.io/master
        operator: Exists
        effect: NoSchedule
      - operator: "Exists"
        effect: "NoExecute"
      - operator: "Exists"
        effect: "NoSchedule"
```

A configuração do Kubernetes Plugin deve ser semelhante à seguinte:

```
[FILTER]
        Name                kubernetes
        Match               application.*
        Kube_URL            https://kubernetes.default.svc:443
        Kube_Tag_Prefix     application.var.log.containers.
        Merge_Log           On
        Merge_Log_Key       log_processed
        K8S-Logging.Parser  On
        K8S-Logging.Exclude Off
        Labels              Off
        Annotations         Off
        Use_Kubelet         On
        Kubelet_Port        10250 
        Buffer_Size         0
```

# Atualizar ou excluir o Container Insights no Amazon EKS e no Kubernetes
<a name="ContainerInsights-update-delete"></a>

Siga as etapas destas seções para atualizar a imagem de contêiner do atendente do CloudWatch ou para remover o Container Insights de um cluster do Amazon EKS ou do Kubernetes.

**Topics**
+ [Atualização para o Container Insights com observabilidade aprimorada para o Amazon EKS no CloudWatch](Container-Insights-upgrade-enhanced.md)
+ [Atualizar a imagem do contêiner do atendente do CloudWatch](ContainerInsights-update-image.md)
+ [Exclusão do agente do CloudWatch e do Fluent Bit para o Container Insights](ContainerInsights-delete-agent.md)

# Atualização para o Container Insights com observabilidade aprimorada para o Amazon EKS no CloudWatch
<a name="Container-Insights-upgrade-enhanced"></a>

**Importante**  
Se você estiver atualizando ou instalando o Container Insights em um cluster do Amazon EKS, recomendamos usar o complemento Observability do Amazon CloudWatch para o EKS para a instalação, em vez de usar as instruções apresentadas nesta seção. Além disso, para recuperar as métricas de computação acelerada, é necessário usar o complemento Observability do Amazon CloudWatch para o EKS. Para obter mais informações e instruções, consulte [Introdução ao complemento Amazon CloudWatch Observability do EKS](Container-Insights-setup-EKS-addon.md).

O Container Insights com observabilidade aprimorada para o Amazon EKS é a versão mais recente do Container Insights. Ele coleta métricas detalhadas de clusters que executam o Amazon EKS e oferece painéis de controle selecionados e imediatamente utilizáveis para detalhar a telemetria de aplicações e infraestrutura. Para obter mais informações sobre esta versão do Container Insights, consulte [Container Insights com observabilidade aprimorada para o Amazon EKS](container-insights-detailed-metrics.md).

Se você tiver instalado a versão original do Container Insights em um cluster do Amazon EKS e quiser atualizá-lo para a versão mais recente com observabilidade aprimorada, siga as instruções desta seção.

**Importante**  
Antes de executar as etapas desta seção, você deve ter verificado os pré-requisitos, incluindo o cert-manager. Para obter mais informações, consulte [Início rápido ao usar o operador do agente do CloudWatch e o Fluent Bit](Container-Insights-setup-EKS-quickstart.md#Container-Insights-setup-EKS-quickstart-FluentBit).

**Atualizar um cluster do Amazon EKS para o Container Insights com observabilidade aprimorada para o Amazon EKS**

1. Instale o operador do agente do CloudWatch ao inserir o comando apresentado a seguir. Substitua *my-cluster-name* pelo nome do cluster do Amazon EKS ou do Kubernetes e *my-cluster-region* pelo nome da região em que os logs são publicados. Recomendamos usar a mesma região em que o cluster está implantado para reduzir os custos de transferência de dados de saída da AWS.

   ```
   ClusterName=my-cluster-name
   RegionName=my-cluster-region
   curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/main/k8s-quickstart/cwagent-operator-rendered.yaml | sed 's/{{cluster_name}}/'${ClusterName}'/g;s/{{region_name}}/'${RegionName}'/g' | kubectl apply -f -
   ```

   Se você notar uma falha causada por recursos conflitantes, é provável que já tenha o agente do CloudWatch e o Fluent Bit com os componentes associados, como o ServiceAccount, o ClusterRole e o ClusterRoleBinding instalados no cluster. Quando o operador do agente do CloudWatch tenta instalar o agente do CloudWatch e os componentes associados, se detectar quaisquer alterações no conteúdo, por padrão, apresentará falhas na instalação ou na atualização para evitar a substituição do estado dos recursos no cluster. Recomendamos excluir qualquer agente do CloudWatch existente com a configuração para o Container Insights que tenha sido instalado anteriormente no cluster e, em seguida, instalar o operador do agente do CloudWatch.

1. (Opcional) Para aplicar uma configuração personalizada do Fluent Bit existente, é necessário atualizar o configmap associado ao daemonset do Fluent Bit. O operador do agente do CloudWatch fornece uma configuração padrão para o Fluent Bit, e é possível substituir ou modificar essa configuração conforme necessário. Para aplicar uma configuração personalizada, siga as etapas apresentadas a seguir.

   1. Abra a configuração existente ao inserir o comando apresentado a seguir.

      ```
      kubectl edit cm fluent-bit-config -n amazon-cloudwatch
      ```

   1. Faça as alterações no arquivo e, em seguida, insira `:wq` para salvar o arquivo e sair do modo de edição.

   1. Reinicie o Fluent Bit ao inserir o comando apresentado a seguir.

      ```
      kubectl rollout restart ds fluent-bit -n amazon-cloudwatch
      ```

# Atualizar a imagem do contêiner do atendente do CloudWatch
<a name="ContainerInsights-update-image"></a>

**Importante**  
Se você estiver atualizando ou instalando o Container Insights em um cluster do Amazon EKS, recomendamos usar o complemento Observability do Amazon CloudWatch para o EKS para a instalação, em vez de usar as instruções apresentadas nesta seção. Além disso, para recuperar métricas de computação acelerada, é necessário usar o complemento Observability do Amazon CloudWatch para o EKS ou o operador do agente do CloudWatch. Para obter mais informações e instruções, consulte [Introdução ao complemento Amazon CloudWatch Observability do EKS](Container-Insights-setup-EKS-addon.md).

Se você precisar atualizar a imagem do contêiner para a versão mais recente, use as etapas nesta seção.

**Para atualizar a imagem de contêiner**

1. Verifique se a Definição de Recursos do Cliente (CRD) `amazoncloudwatchagent` já existe ao inserir o comando apresentado a seguir.

   ```
   kubectl get crds amazoncloudwatchagents.cloudwatch.aws.amazon.com -n amazon-cloudwatch
   ```

   Se esse comando retornar um erro informando que o CRD está ausente, o cluster não tem o Container Insights com observabilidade aprimorada para o Amazon EKS configurado com o operador do agente do CloudWatch. Nesse caso, consulte [Atualização para o Container Insights com observabilidade aprimorada para o Amazon EKS no CloudWatch](Container-Insights-upgrade-enhanced.md).

1. Aplique o arquivo `cwagent-version.yaml` mais recente inserindo o comando a seguir.

   ```
   curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/main/k8s-quickstart/cwagent-version.yaml | kubectl apply -f -
   ```

# Exclusão do agente do CloudWatch e do Fluent Bit para o Container Insights
<a name="ContainerInsights-delete-agent"></a>

Se você instalou o Container Insights usando a instalação do complemento de observabilidade do EKS para o Amazon CloudWatch, você pode excluir o Container Insights e o agente do CloudWatch inserindo o seguinte comando:

**nota**  
Agora, o complemento do Amazon EKS é compatível com o Container Insights em nós de processamento do Windows. Se você excluir o complemento do Amazon EKS, o Container Insights para Windows também será excluído.

```
aws eks delete-addon —cluster-name my-cluster —addon-name amazon-cloudwatch-observability
```

Caso contrário, para excluir todos os recursos relacionados ao agente do CloudWatch e ao Fluent Bit, insira o comando apresentado a seguir. Neste comando, *My\$1Cluster\$1Name* corresponde ao nome do cluster do Amazon EKS ou do Kubernetes, e *My\$1Region* corresponde ao nome da região na qual os logs são publicados.

```
ClusterName=My_Cluster_Name
RegionName=My-Region
curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/main/k8s-quickstart/cwagent-operator-rendered.yaml | sed 's/{{cluster_name}}/'${ClusterName}'/g;s/{{region_name}}/'${RegionName}'/g' | kubectl delete -f -
curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/main/k8s-quickstart/cwagent-custom-resource-definitions.yaml | kubectl delete -f -
```

# Como configurar o Container Insights no RedHat OpenShift na AWS (ROSA)
<a name="deploy-container-insights-RedHatOpenShift"></a>

O CloudWatch Container Insights com observabilidade aprimorada é compatível com o RedHat OpenShift na AWS (ROSA). Essa versão oferece suporte à observabilidade aprimorada para clusters do ROSA. Depois de instalar o chart do Helm do operador do agente do CloudWatch, o Container Insights coleta automaticamente a telemetria detalhada da infraestrutura desde o nível do cluster até o nível do contêiner no seu ambiente. Em seguida, ele exibe esses dados de performance em painéis selecionados, eliminando o trabalho pesado na configuração de observabilidade. 

**nota**  
Para o RedHat OpenShift na AWS (ROSA), quando você instala o operador do agente do CloudWatch usando charts do Helm, por padrão, o agente do CloudWatch também é habilitado para receber métricas e rastreamentos das aplicações que são instrumentadas para o Application Signals. Se você desejar, opcionalmente, passar regras de configuração personalizadas, poderá fazê-lo passando uma configuração de agente personalizada usando o chart do Helm, conforme descrito em (Opcional) [Configuração adicional], como indicado em [(Opcional) Configuração adicional](install-CloudWatch-Observability-EKS-addon.md#install-CloudWatch-Observability-EKS-addon-configuration).

**Para instalar o Container Insights com observabilidade aprimorada em um cluster do RedHat OpenShift na AWS (ROSA)**

1. Se necessário, instale o Helm. Para obter mais informações, consulte [Guia de início rápido](https://helm.sh/docs/intro/quickstart/) na documentação do Helm.

1. Instale o operador do agente do CloudWatch ao inserir os comandos a seguir. Substitua *my-cluster-name* pelo nome do seu cluster e *my-cluster-region* pela região em que o cluster é executado.

   ```
   helm repo add aws-observability https://aws-observability.github.io/helm-charts
   helm repo update aws-observability
   helm install --wait --create-namespace \
       --namespace amazon-cloudwatch amazon-cloudwatch-observability \
       aws-observability/amazon-cloudwatch-observability \
       --set clusterName=my-cluster-name \
       --set region=my-cluster-region \
       --set k8sMode=ROSA
   ```

1. Configure a autorização para o operador do agente ao seguir as etapas na Opção 1, Opção 2 ou Opção 3 em [Instalação do agente do CloudWatch com o complemento de observabilidade do EKS do Amazon CloudWatch ou com o chart do Helm](install-CloudWatch-Observability-EKS-addon.md).

# Visualizar métricas do Container Insights
<a name="Container-Insights-view-metrics"></a>

Depois que o Container Insights for configurado e estiver coletando métricas, você poderá visualizar essas métricas no console do CloudWatch.

Para que as métricas do Container Insights sejam exibidas no seu painel, você deve concluir a configuração do Container Insights. Para obter mais informações, consulte [Configurar o Container Insights](deploy-container-insights.md).

Esse procedimento explica como visualizar as métricas que o Container Insights gera automaticamente a partir dos dados de log coletados. O restante desta seção explica como analisar seus dados mais profundamente e usar o CloudWatch Logs Insights para ver mais métricas em mais níveis de detalhamento.

**Para visualizar métricas do Container Insights**

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

1. No painel de navegação, escolha **Insights**, **Container Insights**.

1. Use as caixas suspensas perto do canto superior para selecionar o tipo de recurso a ser exibido, bem como o recurso específico.

Você pode definir um alarme do CloudWatch em qualquer métrica que o Container Insights coletar. Para obter mais informações, consulte . [Usar alarmes do Amazon CloudWatch](CloudWatch_Alarms.md)

**nota**  
Se você já configurou o CloudWatch Application Insights para monitorar suas aplicações em contêiner, o painel do Application Insights aparecerá abaixo do painel do Container Insights. Se você ainda não ativou o Application Insights, poderá fazê-lo escolhendo **Auto-configure Application Insights** (Configurar automaticamente o Application Insights abaixo da visualização de performance no painel Container Insights.  
Para obter mais informações sobre o Application Insights e aplicações em contêiner, consulte [Habilitar o Application Insights para monitoramento de recursos do Amazon ECS e do Amazon EKS](appinsights-setting-up-console.md#appinsights-container-insights).

## Visualizar os principais colaboradores
<a name="Container-Insights-view-metrics-topn"></a>

Para algumas das exibições no monitoramento de performance do Container Insights, também é possível ver os principais colaboradores por memória ou CPU, ou os recursos ativos mais recentes. Essa informação está disponível quando você seleciona, na caixa suspensa próxima ao alto da página, um dos seguintes painéis:
+ Serviços do ECS
+ Tarefas do ECS
+ Namespaces do EKS
+ Serviços do EKS
+ Pods do EKS

Quando você estiver visualizando um desses tipos de recursos, a parte inferior da página exibirá uma tabela classificada inicialmente por uso da CPU. É possível alterá-la para classificar por uso de memória ou atividade recente. Para ver mais sobre uma das linhas na tabela, é possível marcar a caixa de seleção ao lado dessa linha e escolher **Actions** (Ações) e uma das opções do menu **Actions**.

## Usar o CloudWatch Logs Insights para visualizar dados do Container Insights
<a name="Container-Insights-CloudWatch-Logs-Insights"></a>

O Container Insights coleta métricas com eventos de log de performance usando [formato de métrica incorporado](CloudWatch_Embedded_Metric_Format.md). Os logs são armazenados no CloudWatch Logs. O CloudWatch gera várias métricas automaticamente a partir dos logs. Você pode visualizá-las no console do CloudWatch. Também é possível fazer uma análise mais profunda dos dados de performance coletados usando consultas do CloudWatch Logs Insights.

Para obter mais informações sobre o CloudWatch Logs Insights, consulte [Analisar dados de log com o CloudWatch Logs Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html). Para obter mais informações sobre os campos de log que podem ser usados em consultas, consulte [Eventos do log de performance do Container Insights para Amazon EKS e Kubernetes](Container-Insights-reference-performance-logs-EKS.md).

**Para usar o CloudWatch Logs Insights para consultar os dados de métricas de contêiner**

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

1. No painel de navegação, escolha **Logs**, **Logs Insights**.

   Próximo da parte superior da tela está o editor de consultas. Quando você abre o CloudWatch Logs Insights pela primeira vez, essa caixa contém uma consulta padrão que retorna os 20 eventos de log mais recentes.

1. Na caixa acima do editor de consultas, selecione um dos grupos de log do Container Insights para consultar. Para o que o exemplo de consultas a seguir funcione, o nome do grupo de logs deve terminar com **performance**.

   Quando você seleciona um grupo de logs, o CloudWatch Logs Insights automaticamente detecta campos nos dados no grupo de logs e os exibe em **Discovered fields** (Campos detectados) no painel á direta. Ele também exibe um gráfico de barras de eventos de log neste grupo de logs com o passar do tempo. Esse gráfico de barras mostra a distribuição de eventos no grupo de logs correspondente à consulta e ao intervalo de tempo, e não apenas os eventos exibidos na tabela.

1. No editor de consultas, substitua a consulta padrão pela consulta a seguir e selecione **Run query (Executar consulta)**.

   ```
   STATS avg(node_cpu_utilization) as avg_node_cpu_utilization by NodeName
   | SORT avg_node_cpu_utilization DESC
   ```

   Essa consulta mostra uma lista de nós, classificados por utilização média da CPU do nó.

1. Para tentar outro exemplo, substitua essa consulta por outra consulta e selecione **Run query (Executar consulta)**. Mais consultas de exemplo são listadas posteriormente nesta página.

   ```
   STATS avg(number_of_container_restarts) as avg_number_of_container_restarts by PodName
   | SORT avg_number_of_container_restarts DESC
   ```

   Essa consulta exibe uma lista dos pods classificados pelo número médio de reinicializações do contêiner.

1. Se você quiser tentar outra consulta, poderá usar campos de inclusão na lista à direita da tela. Para obter mais informações sobre a sintaxe de consulta, leia [Sintaxe de consulta do CloudWatch Logs Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html).

**Como visualizar as listas de seus recursos**

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

1. No painel de navegação, escolha **Resources (Recursos)**.

1. A exibição padrão é uma lista dos recursos que estão sendo monitorados pelo Container Insights e os alarmes definidos nesses recursos. Para visualizar um mapa visual dos recursos, escolha **Map view (Visualização do mapa)**.

1. Na visualização do mapa, deixe o cursor sobre qualquer recurso no mapa para visualizar métricas básicas sobre esse recurso. Você pode escolher qualquer recurso para visualizar gráficos mais detalhados sobre o recurso.

## Caso de uso: visualizar métricas em nível de tarefa em contêineres do Amazon ECS
<a name="Container-Insights-CloudWatch-Logs-Insights-example"></a>

O exemplo a seguir ilustra como usar o CloudWatch Logs Insights para aprofundar os logs do Container Insights. Para obter mais exemplos, consulte o blog [Introducing Amazon CloudWatch Container Insights for Amazon ECS](https://aws.amazon.com/blogs/mt/introducing-container-insights-for-amazon-ecs/).

 O Container Insights não gera automaticamente métricas no nível de detalhamento da tarefa. A consulta a seguir exibe métricas no nível da tarefa para uso da CPU e da memória.

```
stats avg(CpuUtilized) as CPU, avg(MemoryUtilized) as Mem by TaskId, ContainerName
| sort Mem, CPU desc
```

## Outros exemplos de consultas do Container Insights
<a name="Container-Insights-sample-queries"></a>

**Lista de seus pods, classificados por número médio de reinicializações de contêiner**

```
STATS avg(number_of_container_restarts) as avg_number_of_container_restarts by PodName
| SORT avg_number_of_container_restarts DESC
```

**Pods solicitados versus pods em execução**

```
fields @timestamp, @message 
| sort @timestamp desc 
| filter Type="Pod" 
| stats min(pod_number_of_containers) as requested, min(pod_number_of_running_containers) as running, ceil(avg(pod_number_of_containers-pod_number_of_running_containers)) as pods_missing by kubernetes.pod_name 
| sort pods_missing desc
```

**Contagem de falhas no nó do cluster**

```
stats avg(cluster_failed_node_count) as CountOfNodeFailures 
| filter Type="Cluster" 
| sort @timestamp desc
```

**Erros de log do aplicativo por nome do contêiner**

```
stats count() as countoferrors by kubernetes.container_name 
| filter stream="stderr" 
| sort countoferrors desc
```

# Métricas coletadas pelo Container Insights
<a name="Container-Insights-metrics"></a>

O Container Insights coleta um conjunto de métricas para o Amazon ECS e para o AWS Fargate no Amazon ECS e outro conjunto para o Amazon EKS, para o AWS Fargate no Amazon EKS, para o RedHat OpenShift na AWS (ROSA) e para o Kubernetes.

As métricas não estarão visíveis até que as tarefas do contêiner estejam em execução por algum tempo.

**Topics**
+ [Métricas do Container Insights com observabilidade aprimorada para o Amazon ECS](Container-Insights-enhanced-observability-metrics-ECS.md)
+ [Métricas Amazon ECS Container Insights](Container-Insights-metrics-ECS.md)
+ [Métricas do Container Insights com observabilidade aprimorada para o Amazon EKS e o Kubernetes](Container-Insights-metrics-enhanced-EKS.md)
+ [Métricas do Container Insights do Amazon EKS e do Kubernetes](Container-Insights-metrics-EKS.md)
+ [Referência do log de performance do Container Insights](Container-Insights-reference.md)
+ [Monitoramento de métricas do Container Insights Prometheus](ContainerInsights-Prometheus.md)
+ [Integração ao Application Insights](container-insights-appinsights.md)
+ [Visualização dos eventos do ciclo de vida do Amazon ECS no Container Insights](container-insights-ECS-lifecycle-events.md)
+ [Solução de problemas do Container Insights](ContainerInsights-troubleshooting.md)
+ [Criar sua própria imagem do Docker do atendente do CloudWatch](ContainerInsights-build-docker-image.md)
+ [Implantar outros recursos do atendente do CloudWatch nos contêineres](ContainerInsights-other-agent-features.md)

# Métricas do Container Insights com observabilidade aprimorada para o Amazon ECS
<a name="Container-Insights-enhanced-observability-metrics-ECS"></a>

O Container Insights com observabilidade aprimorada fornece uma visibilidade mais profunda das workloads em contêineres, oferecendo:
+ Maior granularidade de métricas nos níveis de tarefa e contêiner
+ Recursos aprimorados de monitoramento e solução de problemas
+ Integração com o CloudWatch Logs para:
  + Correlacionar anomalias de métricas com entradas de logs
  + Realizar uma análise mais rápida da causa raiz
  + Reduzir o tempo de resolução de problemas complexos de contêineres

**Casos de uso**

O Container Insights com observabilidade aprimorada amplia os recursos do Container Insights padrão. Ele possibilita os seguintes casos de uso:
+ **Solução de problemas em nível de tarefa**: identifique gargalos de performance no nível de tarefa. Analise as métricas no nível de tarefa e compare-as com os recursos reservados para determinar se as tarefas têm capacidade de processamento suficiente 
+ **Otimização de recursos em nível de contêiner**: rastreie a utilização em relação aos níveis de reserva para identificar contêineres com restrição de recursos ou superprovisionados 
+ **Avaliação da integridade de contêineres**: monitore as contagens de reinicialização e as transições de estado para detectar contêineres instáveis que requerem intervenção 
+ **Monitoramento da performance de aplicações**: rastreie como as aplicações se comunicam entre si, monitore os padrões de uso de recursos e otimize a performance do armazenamento de dados
+ **Monitoramento operacional**: monitore implantações, rastreie conjuntos de tarefas para implantações azul/verde e mantenha a integridade da plataforma por meio de métricas de serviço

Para obter informações sobre as métricas do Amazon ECS, consulte [Casos de uso de métricas de utilização do serviço do Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service_utilization-metrics-explanation.html), e para obter informações sobre insights de contêineres com observabilidade aprimorada, consulte [Métricas do Container Insights com observabilidade aprimorada para o Amazon ECS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-enhanced-observability-metrics-ECS.html).

O Container Insights também mostra estatísticas do cluster, do serviço e de todo o daemon calculando a média dos dados em todas as tarefas. Isso fornece uma visão de alto nível da integridade do seu serviço e daemon, auxiliando no monitoramento do ambiente e no planejamento da capacidade.

**nota**  
As métricas do daemon gerenciado do Amazon ECS usam o mesmo namespace `ECS/ContainerInsights` e a mesma dimensão `ServiceName` das métricas de serviço. Para métricas do daemon, o valor da dimensão `ServiceName` usa o formato `daemon:daemon-name`. Por exemplo, um daemon denominado `my-daemon` tem um valor de dimensão `ServiceName` de `daemon:my-daemon`. Todas as métricas na tabela abaixo que incluem a dimensão `ServiceName` também se aplicam aos daemons gerenciados.

A tabela a seguir lista as métricas e as dimensões que o Container Insights com observabilidade aprimorada coleta para o Amazon ECS. Essas métricas estão no namespace `ECS/ContainerInsights`. Para obter mais informações, consulte [Métricas](cloudwatch_concepts.md#Metric).

Se você não vir as métricas do Container Insights no console, certifique-se de que você concluiu a configuração do Container Insights com observabilidade aprimorada. As métricas não serão exibidas até que o Container Insights com observabilidade aprimorada tenha sido configurado completamente. Para obter mais informações, consulte [Configurar o Container Insights com observabilidade aprimorada](deploy-container-insights-ECS-cluster.md#set-container-insights-ECS-cluster-enhanced).

As métricas a seguir estão disponíveis para todos os tipos de inicialização.


| Nome da métrica | Dimensões | Descrição | 
| --- | --- | --- | 
|  `ContainerInstanceCount`  |  `ClusterName`  |  O número de instâncias do EC2 que executam o atendente do Amazon ECS registrado com um cluster. Essa métrica é coletada apenas para instâncias de contêineres que estão executando tarefas do Amazon ECS no cluster. Ela não é coletada para instâncias de contêineres vazios que não têm nenhuma tarefa do Amazon ECS. Unidade: Contagem  | 
|  `ContainerCpuUtilized`  |  `ClusterName` `ContainerName`, `TaskId`, `ServiceName`, `ClusterName` `ContainerName`, `TaskDefinitionFamily`, `ClusterName`, `TaskId` `TaskDefinitionFamily`, `ClusterName`, `ContainerName` `ServiceName`, `ClusterName`, `ContainerName`  |  As unidades de CPU usadas por contêineres no recurso especificado pela definição de dimensão que você está usando. Também se aplica aos daemons gerenciados. Unidade: nenhuma  | 
|  `ContainerCpuReserved`  |  `ClusterName` `ContainerName`, `TaskId`, `ServiceName`, `ClusterName` `ContainerName`, `TaskDefinitionFamily`, `ClusterName`, `TaskId` `TaskDefinitionFamily`, `ClusterName`, `ContainerName` `ServiceName`, `ClusterName`, `ContainerName`  |  As unidades de CPU reservadas por contêineres no recurso especificado pelo conjunto de dimensões que você está usando. Essa métrica é coletada com base na reserva de CPU especificada na definição da tarefa, podendo ser aplicada, por exemplo, no nível da tarefa ou de todos os contêineres. Se isso não estiver especificado na definição da tarefa, a reserva de CPU da instância será usada. Também se aplica aos daemons gerenciados. Unidade: nenhuma  | 
|  `ContainerCpuUtilization`  |  `TaskDefinitionFamily`, `ClusterName` `ServiceName`, `ClusterName` `ClusterName` `ClusterName`, `ServiceName`, `TaskId` `ClusterName`, `TaskDefinitionFamily`, `TaskId`   | A porcentagem total de unidades de CPU usadas por contêineres no recurso especificado pela definição de dimensão que você está usando. Unidade: percentual | 
|  `ContainerMemoryUtilized`  |  `ClusterName` `ContainerName`, `TaskId`, `ServiceName`, `ClusterName` `ContainerName`, `TaskDefinitionFamily`, `ClusterName`, `TaskId` `TaskDefinitionFamily`, `ClusterName`, `ContainerName` `ServiceName`, `ClusterName`, `ContainerName`  |  A memória que está sendo usada por contêineres no recurso especificado pela definição de dimensões que você está usando. Também se aplica aos daemons gerenciados. Unidade: megabytes  | 
|  `ContainerMemoryReserved`  |  `ClusterName` `ContainerName`, `TaskId`, `ServiceName`, `ClusterName` `ContainerName`, `TaskDefinitionFamily`, `ClusterName`, `TaskId` `TaskDefinitionFamily`, `ClusterName`, `ContainerName` `ServiceName`, `ClusterName`, `ContainerName`  |  A memória reservada por contêineres no recurso especificado pelo conjunto de dimensões que você está usando.  Essa métrica é coletada com base na reserva de memória especificada na definição da tarefa, podendo ser aplicada, por exemplo, no nível da tarefa ou de todos os contêineres. Se isso não estiver especificado na definição da tarefa, a reserva de memória da instância será usada. Também se aplica aos daemons gerenciados. Unidade: megabytes  | 
|  `ContainerMemoryUtilization`  |  `ClusterName` `ContainerName`, `TaskId`, `ServiceName`, `ClusterName` `ContainerName`, `TaskDefinitionFamily`, `ClusterName`, `TaskId` `TaskDefinitionFamily`, `ClusterName`, `ContainerName` `ServiceName`, `ClusterName`, `ContainerName`  | A porcentagem total da memória que está sendo usada por contêineres no recurso especificado pela definição de dimensões que você está usando. Também se aplica aos daemons gerenciados. Unidade: percentual | 
|  `ContainerNetworkRxBytes`  |  `TaskDefinitionFamily`, `ClusterName` `ServiceName`, `ClusterName` `ClusterName` `ClusterName`, `ServiceName`, `TaskId` `ClusterName`, `TaskDefinitionFamily`, `TaskId`  |  O número de bytes recebidos pelo contêiner especificado pelas dimensões que você está usando. Essa métrica é obtida com o runtime do Docker. Essa métrica está disponível apenas para contêineres em tarefas que usam os modos de rede `awsvpc` ou `bridge`. Também se aplica aos daemons gerenciados. Unidade: bytes/segundo  | 
|  `ContainerNetworkTxBytes`  |  `TaskDefinitionFamily`, `ClusterName` `ServiceName`, `ClusterName` `ClusterName` `ClusterName`, `ServiceName`, `TaskId` `ClusterName`, `TaskDefinitionFamily`, `TaskId`  |  O número de bytes enviados pelo contêiner especificado pelas dimensões que você está usando. Essa métrica é obtida com o runtime do Docker. Essa métrica está disponível apenas para contêineres em tarefas que usam os modos de rede `awsvpc` ou `bridge`. Também se aplica aos daemons gerenciados. Unidade: bytes/segundo  | 
|  `ContainerStorageReadBytes`  |  `ClusterName` `ClusterName`, `ServiceName`, `ContainerName` `ClusterName`, `TaskDefinitionFamily`, `ContainerName` `ClusterName`, `ServiceName`, `TaskId`, `ContainerName` `ClusterName`, `TaskDefinitionFamily`, `TaskId`, `ContainerName`  |  O número de bytes lidos do armazenamento no contêiner do recurso que é especificado pelas dimensões que você está usando. Isso não inclui bytes de leitura para seus dispositivos de armazenamento. Essa métrica é obtida com o runtime do Docker. Também se aplica aos daemons gerenciados. Unidade: bytes  | 
|  `ContainerStorageWriteBytes`  |  `ClusterName` `ClusterName`, `ServiceName`, `ContainerName` `ClusterName`, `TaskDefinitionFamily`, `ContainerName` `ClusterName`, `ServiceName`, `TaskId`, `ContainerName` `ClusterName`, `TaskDefinitionFamily`, `TaskId`, `ContainerName`  |  O número de bytes gravados para armazenamento no contêiner especificado pelas dimensões que você está usando. Essa métrica é obtida com o runtime do Docker. Também se aplica aos daemons gerenciados. Unidade: bytes  | 
|  `CpuUtilized`  |  `TaskDefinitionFamily`, `ClusterName` `ServiceName`, `ClusterName` `ClusterName` `ClusterName`, `ServiceName`, `TaskId` `ClusterName`, `TaskDefinitionFamily`, `TaskId`   |  As unidades de CPU utilizadas por tarefas no recurso especificado pela definição de dimensão que você está usando. Também se aplica aos daemons gerenciados. Unidade: nenhuma  | 
|  `CpuReserved`  |  `TaskDefinitionFamily`, `ClusterName` `ServiceName`, `ClusterName` `ClusterName` `ClusterName`, `ServiceName`, `TaskId` `ClusterName`, `TaskDefinitionFamily`, `TaskId`  |  As unidades de CPU reservadas por tarefas no recurso especificado pelo conjunto de dimensões que você está usando. Essa métrica é coletada com base na reserva de CPU especificada na definição da tarefa, podendo ser aplicada, por exemplo, no nível da tarefa ou de todos os contêineres. Se isso não estiver especificado na definição da tarefa, a reserva de CPU da instância será usada. Também se aplica aos daemons gerenciados. Unidade: nenhuma  | 
|  `DeploymentCount`  |  `ServiceName`, `ClusterName`  |  O número de implantações em um serviço do Amazon ECS. Unidade: Contagem  | 
|  `DesiredTaskCount`  |  `ServiceName`, `ClusterName`  |  O número de tarefas desejadas para um serviço do Amazon ECS. Unidade: Contagem  | 
|  `EBSFilesystemSize`  |  `ClusterName` ,`TaskDefinitionFamily`, `VolumeName` `TaskDefinitionFamily`, `ClusterName` `ServiceName`, `ClusterName`  |  A quantidade total, em gigabytes (GB), do armazenamento do sistema de arquivos do Amazon EBS alocada aos recursos especificados pelas dimensões que você está usando. Esta métrica só está disponível para tarefas executadas na infraestrutura do Amazon ECS executadas no Fargate usando a versão da plataforma `1.4.0` ou instâncias do Amazon EC2 usando a versão do agente de contêiner `1.79.0` ou posterior. Também se aplica aos daemons gerenciados. Unidade: gigabytes (GB)  | 
|  `EBSFilesystemUtilized`  |  `ClusterName` ,`TaskDefinitionFamily`, `VolumeName` `TaskDefinitionFamily`, `ClusterName` `ServiceName`, `ClusterName`  |  A quantidade total, em gigabytes (GB), do armazenamento do sistema de arquivos do Amazon EBS usada pelos recursos especificados pelas dimensões que você está usando. Esta métrica só está disponível para tarefas executadas na infraestrutura do Amazon ECS executadas no Fargate usando a versão da plataforma `1.4.0` ou instâncias do Amazon EC2 usando a versão do agente de contêiner `1.79.0` ou posterior. Para tarefas executadas no Fargate, o Fargate reserva espaço no disco que é usado somente pelo Fargate. Não há custo associado ao espaço que Fargate usa, mas você verá esse armazenamento adicional usando ferramentas como `df`. Também se aplica aos daemons gerenciados. Unidade: gigabytes (GB)  | 
|  `TaskEBSFilesystemUtilization`  |  `TaskDefinitionFamily`, `ClusterName` `ClusterName`, `ServiceName` `ClusterName` `ClusterName`, `ServiceName`, `TaskId` `TaskDefinitionFamily`, `ClusterName`, `TaskId`  |  A porcentagem do armazenamento do sistema de arquivos do Amazon EBS que está sendo usada pela tarefa especificada pelas dimensões que você está usando. Esta métrica só está disponível para tarefas executadas na infraestrutura do Amazon ECS executadas no Fargate usando a versão da plataforma `1.4.0` ou instâncias do Amazon EC2 usando a versão do agente de contêiner `1.79.0` ou posterior. Também se aplica aos daemons gerenciados. Unidade: percentual  | 
|  EphemeralStorageReserved [1](#ci-enhanced-metrics-ecs-storage-fargate-note)  |  `TaskDefinitionFamily`, `ClusterName` `ServiceName`, `ClusterName` `ClusterName` `ClusterName`, `ServiceName`, `TaskId` `ClusterName`, `TaskDefinitionFamily`, `TaskId`  |  O número de bytes reservados no armazenamento efêmero do recurso, especificado pelas dimensões que você está usando. O armazenamento efêmero é usado para o sistema de arquivos raiz do contêiner e para qualquer volume de host de montagem por associação definido na imagem do contêiner e na definição da tarefa. A quantidade de armazenamento efêmero não pode ser alterada em uma tarefa em execução. Essa métrica só está disponível para tarefas executadas na plataforma Fargate Linux versão 1.4.0 ou posterior. Também se aplica aos daemons gerenciados. Unidade: gigabytes (GB)  | 
|  EphemeralStorageUtilized [1](Container-Insights-metrics-ECS.md#ci-metrics-ecs-storage-fargate-note)  |  `ClusterName` `ClusterName`, `TaskDefinitionFamily` `ClusterName`, `ServiceName` `ClusterName`, `ServiceName`, `TaskId` `ClusterName`, `TaskDefinitionFamily`, `TaskId`  |  O número de bytes usados no armazenamento efêmero do recurso, especificado pelas dimensões que você está usando. O armazenamento efêmero é usado para o sistema de arquivos raiz do contêiner e para qualquer volume de host de montagem por associação definido na imagem do contêiner e na definição da tarefa. A quantidade de armazenamento efêmero não pode ser alterada em uma tarefa em execução. Essa métrica só está disponível para tarefas executadas na plataforma Fargate Linux versão 1.4.0 ou posterior. Também se aplica aos daemons gerenciados. Unidade: gigabytes (GB)  | 
|  `MemoryUtilized`  |  `TaskDefinitionFamily`, `ClusterName` `ServiceName`, `ClusterName` `ClusterName` `ClusterName`, `ServiceName`, `TaskId` `ClusterName`, `TaskDefinitionFamily`, `TaskId`  |  A memória que está sendo usada pelas tarefas no recurso especificado pela definição de dimensões que você está usando. Também se aplica aos daemons gerenciados. Unidade: megabytes  | 
|  `MemoryReserved`  |  `TaskDefinitionFamily`, `ClusterName` `ServiceName`, `ClusterName` `ClusterName` `ClusterName`, `ServiceName`, `TaskId` `ClusterName`, `TaskDefinitionFamily`, `TaskId`  |  A memória reservada por tarefas no recurso especificado pelo conjunto de dimensões que você está usando.  Essa métrica é coletada com base na reserva de memória especificada na definição da tarefa, podendo ser aplicada, por exemplo, no nível da tarefa ou de todos os contêineres. Se isso não estiver especificado na definição da tarefa, a reserva de memória da instância será usada. Também se aplica aos daemons gerenciados. Unidade: megabytes  | 
|  `NetworkRxBytes`  |  `TaskDefinitionFamily`, `ClusterName` `ServiceName`, `ClusterName` `ClusterName` `ClusterName`, `ServiceName`, `TaskId` `ClusterName`, `TaskDefinitionFamily`, `TaskId`  |  O número de bytes recebidos pelo recurso especificado por dimensões que você está usando. Essa métrica é obtida com o runtime do Docker. Essa métrica está disponível apenas para contêineres em tarefas que usam os modos de rede `awsvpc` ou `bridge`. Também se aplica aos daemons gerenciados. Unidade: bytes/segundo  | 
|  `NetworkTxBytes`  |  `TaskDefinitionFamily`, `ClusterName` `ServiceName`, `ClusterName` `ClusterName` `ClusterName`, `ServiceName`, `TaskId` `ClusterName`, `TaskDefinitionFamily`, `TaskId`  |  O número de bytes enviados pelo recurso especificado pelas dimensões que você está usando. Essa métrica é obtida com o runtime do Docker. Essa métrica está disponível apenas para contêineres em tarefas que usam os modos de rede `awsvpc` ou `bridge`. Também se aplica aos daemons gerenciados. Unidade: bytes/segundo  | 
|  `PendingTaskCount`  |  `ServiceName`, `ClusterName`  |  O número de tarefas que estão atualmente no estado `PENDING`. Unidade: Contagem  | 
|  `RunningTaskCount`  |  `ServiceName`, `ClusterName`  |  O número de tarefas que estão atualmente no estado `RUNNING`. Unidade: Contagem  | 
|  `RestartCount`  |  `ClusterName` `ClusterName`, `ServiceName` `ClusterName`, `TaskDefinitionFamily` `ClusterName`, `ServiceName`, `TaskId` `ClusterName`, `TaskDefinitionFamily`, `TaskId` `ClusterName`, `ServiceName`, `ContainerName` `ClusterName`, `ServiceName`, `TaskId`, `ContainerName` `TaskDefinitionFamily`, `ClusterName`, `ContainerName` `TaskDefinitionFamily`, `ClusterName`, `TaskId`, `ContainerName`  |  O número de vezes que um contêiner em uma tarefa do Amazon ECS foi reiniciado. Essa métrica é coletada apenas para contêineres com política de reinicialização habilitada. Também se aplica aos daemons gerenciados. Unidade: Contagem  | 
|  `UnHealthyContainerHealthStatus`  |  `ClusterName` `ClusterName`, `ServiceName`, `ContainerName` `ClusterName`, `TaskDefinitionFamily`, `ContainerName` `ClusterName`, `ServiceName`, `TaskId`, `ContainerName` `ClusterName`, `TaskDefinitionFamily`, `TaskId`, `ContainerName`  |  O número de contêineres não íntegros com base no status da verificação de integridade do contêiner. Um contêiner é considerado não íntegro quando sua verificação de integridade retorna um status não íntegro. Essa métrica é coletada apenas para contêineres que tenham uma verificação de integridade configurada na definição da tarefa. O valor da métrica é 1 quando o status de integridade do contêiner é `UNHEALTHY`, e 0 quando o status de integridade é `HEALTHY`. Unidade: Contagem  | 
|  `ServiceCount`  |  `ClusterName`  |  O número de serviços no cluster. Unidade: Contagem  | 
|  `StorageReadBytes`  |  `TaskDefinitionFamily`, `ClusterName` `ServiceName`, `ClusterName` `ClusterName` `ClusterName`, `ServiceName`, `TaskId` `ClusterName`, `TaskDefinitionFamily`, `TaskId`  |  O número de bytes lidos do armazenamento na instância do recurso que é especificado pelas dimensões que você está usando. Isso não inclui bytes de leitura para seus dispositivos de armazenamento. Essa métrica é obtida com o runtime do Docker. Também se aplica aos daemons gerenciados. Unidade: bytes  | 
|  `StorageWriteBytes`  |  `TaskDefinitionFamily`, `ClusterName` `ServiceName`, `ClusterName` `ClusterName` `ClusterName`, `ServiceName`, `TaskId` `ClusterName`, `TaskDefinitionFamily`, `TaskId`  |  O número de bytes gravados para armazenamento no recurso especificado pelas dimensões que você está usando. Essa métrica é obtida com o runtime do Docker. Também se aplica aos daemons gerenciados. Unidade: bytes  | 
|  `TaskCount`  |  `ClusterName`  |  O número de tarefas em execução no cluster. Unidade: Contagem  | 
|  `TaskCpuUtilization`  |  `TaskDefinitionFamily`, `ClusterName` `ServiceName`, `ClusterName` `ClusterName` `ClusterName`, `ServiceName`, `TaskId` `ClusterName`, `TaskDefinitionFamily`, `TaskId`   |  A porcentagem total de unidades de CPU que estão sendo usadas pela tarefa.  Também se aplica aos daemons gerenciados. Unidade: percentual  | 
|  `TaskEphemeralStorageUtilization`  |  `TaskDefinitionFamily`, `ClusterName` `ServiceName`, `ClusterName` `ClusterName` `ClusterName`, `ServiceName`, `TaskId` `ClusterName`, `TaskDefinitionFamily`, `TaskId`   |  A porcentagem total de armazenamento temporário utilizado por uma tarefa.  Também se aplica aos daemons gerenciados. Unidade: percentual  | 
|  `TaskMemoryUtilization`  |  `TaskDefinitionFamily`, `ClusterName` `ServiceName`, `ClusterName` `ClusterName` `ClusterName`, `ServiceName`, `TaskId` `ClusterName`, `TaskDefinitionFamily`, `TaskId`   |  A porcentagem total de memória sendo utilizada por uma tarefa.  Também se aplica aos daemons gerenciados. Unidade: percentual  | 
|  `TaskSetCount`  |  `ServiceName`, `ClusterName`  |  O número de conjuntos de tarefas no serviço. Unidade: Contagem  | 

**nota**  
As métricas `EphemeralStorageReserved` e `EphemeralStorageUtilized` só estão disponíveis para tarefas que são executadas na plataforma Fargate Linux versão 1.4.0 ou posterior.  
O Fargate reserva espaço no disco. Esse espaço é usado apenas pelo Fargate. Você não é cobrado por isso. Ele não é mostrado nessas métricas. Porém, você pode ver esse armazenamento adicional em outras ferramentas, como o `df`.

As métricas a seguir estarão disponíveis após concluir as etapas em [Implantar o atendente do CloudWatch para coletar métricas no nível de instância do EC2 no Amazon ECS](deploy-container-insights-ECS-instancelevel.md) e usar o tipo de inicialização do EC2.


| Nome da métrica | Dimensões | Descrição | 
| --- | --- | --- | 
|  `instance_cpu_limit`  |  `ClusterName`  |  O número máximo de unidades de CPU que podem ser atribuídas a uma única instância do EC2 no cluster. Unidade: nenhuma  | 
|  `instance_cpu_reserved_capacity`  |  `ClusterName` `InstanceId`, `ContainerInstanceId`, `ClusterName`  |  A porcentagem de CPU que está sendo reservada em uma única instância do EC2 no cluster. Unidade: percentual  | 
|  `instance_cpu_usage_total`  |  `ClusterName`  |  O número de unidades de CPU que está sendo usada em uma única instância do EC2 no cluster. Unidade: nenhuma  | 
|  `instance_cpu_utilization`  |  `ClusterName` `InstanceId`, `ContainerInstanceId`, `ClusterName`  |  A porcentagem total de unidades de CPU que estão sendo usadas em uma única instância do EC2 no cluster.  Unidade: percentual  | 
|  `instance_filesystem_utilization`  |  `ClusterName` `InstanceId`, `ContainerInstanceId`, `ClusterName`  |  A porcentagem total da capacidade do sistema de arquivos de que está sendo usada em uma única instância do EC2 no cluster.  Unidade: percentual  | 
|  `instance_memory_limit`  |  `ClusterName`  |  A quantidade máxima de memória, em bytes, que pode ser atribuída a uma única instância do EC2 no cluster.  Unidade: bytes  | 
|  `instance_memory_reserved_capacity`  |  `ClusterName` `InstanceId`, `ContainerInstanceId`, `ClusterName`  |  A porcentagem de memória que está atualmente sendo reservada em uma única instância do EC2 no cluster. Unidade: percentual  | 
|  `instance_memory_utilization`  |  `ClusterName` `InstanceId`, `ContainerInstanceId`, `ClusterName`  |  A porcentagem total de memória que está sendo usada em uma única instância do EC2 no cluster.  Se você estiver usando o coletor de resíduos Java ZGC para sua aplicação, essa métrica poderá ser imprecisa.  Unidade: percentual  | 
|  `instance_memory_working_set`  |  `ClusterName`  |  A quantidade de memória, em bytes, que está sendo usada em uma única instância do EC2 no cluster.  Se você estiver usando o coletor de resíduos Java ZGC para sua aplicação, essa métrica poderá ser imprecisa.  Unidade: bytes  | 
|  `instance_network_total_bytes`  |  `ClusterName`  |  O número total de bytes por segundo transmitidos e recebidos pela rede um uma única instância do EC2 no cluster. Unidade: bytes/segundo  | 
|  `instance_number_of_running_tasks`  |  `ClusterName`  |  O número de tarefas em execução em uma única instância do EC2 no cluster. Unidade: Contagem  | 

# Métricas Amazon ECS Container Insights
<a name="Container-Insights-metrics-ECS"></a>

As métricas do Container Insights fornecem métricas adicionais de rede, armazenamento e armazenamento temporário. Essas métricas fornecem mais informações do que as métricas padrão do Amazon ECS. O Container Insights se integra ao CloudWatch Logs. Você pode correlacionar as alterações de métricas com as entradas de logs para facilitar a solução de problemas. O Container Insights também mostra estatísticas do cluster, do serviço e de todo o daemon calculando a média dos dados em todas as tarefas. Isso fornece uma visão de alto nível da integridade do seu serviço e daemon, auxiliando no monitoramento do ambiente e no planejamento da capacidade.

**Casos de uso**
+ **Identificação e solução de problemas**: rastreie as implantações com falha analisando os padrões de transição do estado da tarefa, o que possibilita a identificação rápida dos pontos de falha. Diagnostique problemas de configuração por meio de um exame abrangente das sequências de inicialização de tarefas e dos comportamentos de inicialização
+ **Avaliação da integridade de clusters e do nível de serviço**: mostra a performance média das tarefas em todo o cluster. Essa abordagem modera as discrepâncias para oferecer uma visão mais estável da integridade do cluster e do serviço. Use esses insights para monitoramento geral de serviços, em que valores extremos podem ser enganosos 
+ **Problemas de disponibilidade de serviço**: detecte falhas de implantação monitorando as métricas de contagem de tarefas em execução. Correlacione logs de eventos de serviço com métricas de performance para entender os impactos na infraestrutura. Rastreie os padrões de reinicialização de tarefas para identificar serviços instáveis ou problemas de infraestrutura
+ **Planejamento de capacidade para carga média**: ajuda a determinar os requisitos de recursos com base em padrões típicos de comportamento de tarefas, fornece métricas consistentes que apoiam um planejamento eficaz de longo prazo e reduz o impacto de picos de curta duração nas decisões de capacidade
+ **Fornece métricas adicionais**: coleta métricas adicionais de rede, armazenamento e armazenamento efêmero não disponíveis nas métricas fornecidas

Para obter informações sobre as métricas do Amazon ECS, consulte [Casos de uso de métricas de utilização do serviço do Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service_utilization-metrics-explanation.html), e para obter informações sobre insights de contêineres com observabilidade aprimorada, consulte [Métricas do Container Insights com observabilidade aprimorada para o Amazon ECS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-enhanced-observability-metrics-ECS.html).

**nota**  
As métricas do daemon gerenciado do Amazon ECS usam o mesmo namespace `ECS/ContainerInsights` e a mesma dimensão `ServiceName` das métricas de serviço. Para métricas do daemon, o valor da dimensão `ServiceName` usa o formato `daemon:daemon-name`. Por exemplo, um daemon denominado `my-daemon` tem um valor de dimensão `ServiceName` de `daemon:my-daemon`. Todas as métricas na tabela abaixo que incluem a dimensão `ServiceName` também se aplicam aos daemons gerenciados.

A tabela a seguir lista as métricas e as dimensões que o Container Insights coleta para Amazon ECS. Essas métricas estão no namespace `ECS/ContainerInsights`. Para obter mais informações, consulte [Métricas](cloudwatch_concepts.md#Metric).

Se você não vir as métricas do Container Insights no seu console, certifique-se de que você tenha concluído a configuração do Container Insights. As métricas não serão exibidas até que o Container Insights tenha sido configurado completamente. Para obter mais informações, consulte [Configurar o Container Insights](deploy-container-insights.md).

As métricas a seguir estarão disponíveis após a conclusão das etapas em [Configurar o Container Insights no Amazon ECS](deploy-container-insights-ECS-cluster.md).


| Nome da métrica | Dimensões | Descrição | 
| --- | --- | --- | 
|  `ContainerInstanceCount`  |  `ClusterName`  |  O número de instâncias do EC2 que executam o atendente do Amazon ECS registrado com um cluster. Essa métrica é coletada apenas para instâncias de contêineres que estão executando tarefas do Amazon ECS no cluster. Ela não é coletada para instâncias de contêineres vazios que não têm nenhuma tarefa do Amazon ECS. Unidade: Contagem  | 
|  `CpuUtilized`  |  `TaskDefinitionFamily`, `ClusterName` `ServiceName`, `ClusterName` `ClusterName`  |  As unidades de CPU utilizadas por tarefas no recurso especificado pela definição de dimensão que você está usando. Também se aplica aos daemons gerenciados. Unidade: nenhuma  | 
|  `CpuReserved`  |  `TaskDefinitionFamily`, `ClusterName` `ServiceName`, `ClusterName` `ClusterName`  |  As unidades de CPU reservadas por tarefas no recurso especificado pelo conjunto de dimensões que você está usando. Essa métrica é coletada com base na reserva de CPU especificada na definição da tarefa, podendo ser aplicada, por exemplo, no nível da tarefa ou de todos os contêineres. Se isso não estiver especificado na definição da tarefa, a reserva de CPU da instância será usada. Também se aplica aos daemons gerenciados. Unidade: nenhuma  | 
|  `DeploymentCount`  |  `ServiceName`, `ClusterName`  |  O número de implantações em um serviço do Amazon ECS. Unidade: Contagem  | 
|  `DesiredTaskCount`  |  `ServiceName`, `ClusterName`  |  O número de tarefas desejadas para um serviço do Amazon ECS. Unidade: Contagem  | 
|  `EBSFilesystemSize`  |  `VolumeName`, `TaskDefinitionFamily`, `ClusterName` `TaskDefinitionFamily`, `ClusterName` `ServiceName`, `ClusterName`  |  A quantidade total, em gigabytes (GB), do armazenamento do sistema de arquivos do Amazon EBS alocada aos recursos especificados pelas dimensões que você está usando. Esta métrica só está disponível para tarefas executadas na infraestrutura do Amazon ECS executadas no Fargate usando a versão da plataforma `1.4.0` ou instâncias do Amazon EC2 usando a versão do agente de contêiner `1.79.0` ou posterior. Também se aplica aos daemons gerenciados. Unidade: gigabytes (GB)  | 
|  `EBSFilesystemUtilized`  |  `VolumeName`, `TaskDefinitionFamily`, `ClusterName` `TaskDefinitionFamily`, `ClusterName` `ServiceName`, `ClusterName`  |  A quantidade total, em gigabytes (GB), do armazenamento do sistema de arquivos do Amazon EBS usada pelos recursos especificados pelas dimensões que você está usando. Esta métrica só está disponível para tarefas executadas na infraestrutura do Amazon ECS executadas no Fargate usando a versão da plataforma `1.4.0` ou instâncias do Amazon EC2 usando a versão do agente de contêiner `1.79.0` ou posterior. Para tarefas executadas no Fargate, o Fargate reserva espaço no disco que é usado somente pelo Fargate. Não há custo associado ao espaço que Fargate usa, mas você verá esse armazenamento adicional usando ferramentas como `df`. Também se aplica aos daemons gerenciados. Unidade: gigabytes (GB)  | 
|  EphemeralStorageReserved [1](#ci-metrics-ecs-storage-fargate-note)  |  `TaskDefinitionFamily`, `ClusterName` `ServiceName`, `ClusterName` `ClusterName`  |  O número de bytes reservados no armazenamento efêmero do recurso, especificado pelas dimensões que você está usando. O armazenamento efêmero é usado para o sistema de arquivos raiz do contêiner e para qualquer volume de host de montagem por associação definido na imagem do contêiner e na definição da tarefa. A quantidade de armazenamento efêmero não pode ser alterada em uma tarefa em execução. Essa métrica só está disponível para tarefas executadas na plataforma Fargate Linux versão 1.4.0 ou posterior. Também se aplica aos daemons gerenciados. Unidade: gigabytes (GB)  | 
|  EphemeralStorageUtilized [1](#ci-metrics-ecs-storage-fargate-note)  |  `TaskDefinitionFamily`, `ClusterName` `ServiceName`, `ClusterName` `ClusterName`  |  O número de bytes usados no armazenamento efêmero do recurso, especificado pelas dimensões que você está usando. O armazenamento efêmero é usado para o sistema de arquivos raiz do contêiner e para qualquer volume de host de montagem por associação definido na imagem do contêiner e na definição da tarefa. A quantidade de armazenamento efêmero não pode ser alterada em uma tarefa em execução. Essa métrica só está disponível para tarefas executadas na plataforma Fargate Linux versão 1.4.0 ou posterior. Também se aplica aos daemons gerenciados. Unidade: gigabytes (GB)  | 
|  `InstanceOSFilesystemUtilization`  |  `CapacityProviderName`, `ClusterName`, `ContainerInstanceId`, `EC2InstanceId` `ClusterName`  |  A porcentagem do total de espaço em disco que é usado para volume do sistema operacional.  | 
|  `InstanceDataFilesystemUtilization`  |  `CapacityProviderName`, `ClusterName`, `ContainerInstanceId`, `EC2InstanceId` `ClusterName`  |  A porcentagem do total de espaço em disco que é usado para volume de dados.  | 
|  `MemoryUtilized`  |  `TaskDefinitionFamily`, `ClusterName` `ServiceName`, `ClusterName` `ClusterName`  |  A memória que está sendo usada pelas tarefas no recurso especificado pela definição de dimensões que você está usando.  Se você estiver usando o coletor de resíduos Java ZGC para sua aplicação, essa métrica poderá ser imprecisa. Apesar de `MemoryUtilized` e `MemoryReserved` estarem com marcações de “Megabytes”, as unidades usadas são, na verdade, MiB (Mebibytes).  Também se aplica aos daemons gerenciados. Unidade: megabytes  | 
|  `MemoryReserved`  |  `TaskDefinitionFamily`, `ClusterName` `ServiceName`, `ClusterName` `ClusterName`  |  A memória reservada por tarefas no recurso especificado pelo conjunto de dimensões que você está usando. Essa métrica é coletada com base na reserva de memória especificada na definição da tarefa, podendo ser aplicada, por exemplo, no nível da tarefa ou de todos os contêineres. Se isso não estiver especificado na definição da tarefa, a reserva de memória da instância será usada. Também se aplica aos daemons gerenciados. Unidade: megabytes  Apesar de `MemoryUtilized` e `MemoryReserved` estarem com marcações de “Megabytes”, as unidades usadas são, na verdade, MiB (Mebibytes).   | 
|  `NetworkRxBytes`  |  `TaskDefinitionFamily`, `ClusterName` `ServiceName`, `ClusterName` `ClusterName`  |  O número de bytes recebidos pelo recurso especificado por dimensões que você está usando. Essa métrica é obtida com o runtime do Docker. Essa métrica está disponível apenas para contêineres em tarefas que usam os modos de rede `awsvpc` ou `bridge`. Também se aplica aos daemons gerenciados. Unidade: bytes/segundo  | 
|  `NetworkTxBytes`  |  `TaskDefinitionFamily`, `ClusterName` `ServiceName`, `ClusterName` `ClusterName`  |  O número de bytes enviados pelo recurso especificado pelas dimensões que você está usando. Essa métrica é obtida com o runtime do Docker. Essa métrica está disponível apenas para contêineres em tarefas que usam os modos de rede `awsvpc` ou `bridge`. Também se aplica aos daemons gerenciados. Unidade: bytes/segundo  | 
|  `PendingTaskCount`  |  `ServiceName`, `ClusterName`  |  O número de tarefas que estão atualmente no estado `PENDING`. Unidade: Contagem  | 
|  `RunningTaskCount`  |  `ServiceName`, `ClusterName`  |  O número de tarefas que estão atualmente no estado `RUNNING`. Unidade: Contagem  | 
|  `RestartCount`  |  `ClusterName` `ClusterName`, `ServiceName` `ClusterName`, `TaskDefinitionFamily`  |  O número de vezes que um contêiner em uma tarefa do Amazon ECS foi reiniciado. Essa métrica é coletada apenas para contêineres com política de reinicialização habilitada. Também se aplica aos daemons gerenciados. Unidade: Contagem  | 
|  `ServiceCount`  |  `ClusterName`  |  O número de serviços no cluster. Unidade: Contagem  | 
|  `StorageReadBytes`  |  `TaskDefinitionFamily`, `ClusterName` `ServiceName`, `ClusterName` `ClusterName`  |  O número de bytes lidos do armazenamento na instância do recurso que é especificado pelas dimensões que você está usando. Isso não inclui bytes de leitura para seus dispositivos de armazenamento. Essa métrica é obtida com o runtime do Docker. Também se aplica aos daemons gerenciados. Unidade: bytes  | 
|  `StorageWriteBytes`  |  `TaskDefinitionFamily`, `ClusterName` `ServiceName`, `ClusterName` `ClusterName`  |  O número de bytes gravados para armazenamento no recurso especificado pelas dimensões que você está usando. Essa métrica é obtida com o runtime do Docker. Também se aplica aos daemons gerenciados. Unidade: bytes  | 
|  `TaskCount`  |  `ClusterName`  |  O número de tarefas em execução no cluster. Unidade: Contagem  | 
|  `TaskSetCount`  |  `ServiceName`, `ClusterName`  |  O número de conjuntos de tarefas no serviço. Unidade: Contagem  | 

**nota**  
As métricas `EphemeralStorageReserved` e `EphemeralStorageUtilized` só estão disponíveis para tarefas que são executadas na plataforma Fargate Linux versão 1.4.0 ou posterior.  
O Fargate reserva espaço no disco. Esse espaço é usado apenas pelo Fargate. Você não é cobrado por isso. Ele não é mostrado nessas métricas. Porém, você pode ver esse armazenamento adicional em outras ferramentas, como o `df`.

As métricas a seguir estarão disponíveis após a conclusão das etapas em [Implantar o atendente do CloudWatch para coletar métricas no nível de instância do EC2 no Amazon ECS](deploy-container-insights-ECS-instancelevel.md)


| Nome da métrica | Dimensões | Descrição | 
| --- | --- | --- | 
|  `instance_cpu_limit`  |  `ClusterName`  |  O número máximo de unidades de CPU que podem ser atribuídas a uma única instância do EC2 no cluster. Unidade: nenhuma  | 
|  `instance_cpu_reserved_capacity`  |  `ClusterName` `InstanceId`, `ContainerInstanceId`, `ClusterName`  |  A porcentagem de CPU que está sendo reservada em uma única instância do EC2 no cluster. Unidade: percentual  | 
|  `instance_cpu_usage_total`  |  `ClusterName`  |  O número de unidades de CPU que está sendo usada em uma única instância do EC2 no cluster. Unidade: nenhuma  | 
|  `instance_cpu_utilization`  |  `ClusterName` `InstanceId`, `ContainerInstanceId`, `ClusterName`  |  A porcentagem total de unidades de CPU que estão sendo usadas em uma única instância do EC2 no cluster.  Unidade: percentual  | 
|  `instance_filesystem_utilization`  |  `ClusterName` `InstanceId`, `ContainerInstanceId`, `ClusterName`  |  A porcentagem total da capacidade do sistema de arquivos de que está sendo usada em uma única instância do EC2 no cluster.  Unidade: percentual  | 
|  `instance_memory_limit`  |  `ClusterName`  |  A quantidade máxima de memória, em bytes, que pode ser atribuída a uma única instância do EC2 nesse cluster.  Unidade: bytes  | 
|  `instance_memory_reserved_capacity`  |  `ClusterName` `InstanceId`, `ContainerInstanceId`, `ClusterName`  |  A porcentagem de memória que está sendo reservada em uma única instância do EC2 no cluster. Unidade: percentual  | 
|  `instance_memory_utilization`  |  `ClusterName` `InstanceId`, `ContainerInstanceId`, `ClusterName`  |  A porcentagem total de memória que está sendo usada em uma única instância do EC2 no cluster.  Se você estiver usando o coletor de resíduos Java ZGC para sua aplicação, essa métrica poderá ser imprecisa.  Unidade: percentual  | 
|  `instance_memory_working_set`  |  `ClusterName`  |  A quantidade de memória, em bytes, que está sendo usada em uma única instância do EC2 no cluster.  Se você estiver usando o coletor de resíduos Java ZGC para sua aplicação, essa métrica poderá ser imprecisa.  Unidade: bytes  | 
|  `instance_network_total_bytes`  |  `ClusterName`  |  O número total de bytes por segundo transmitidos e recebidos pela rede um uma única instância do EC2 no cluster. Unidade: bytes/segundo  | 
|  `instance_number_of_running_tasks`  |  `ClusterName`  |  O número de tarefas em execução em uma única instância do EC2 no cluster. Unidade: Contagem  | 

# Métricas do Container Insights com observabilidade aprimorada para o Amazon EKS e o Kubernetes
<a name="Container-Insights-metrics-enhanced-EKS"></a>

As tabelas a seguir listam as métricas e as dimensões que o Container Insights com observabilidade aprimorada coleta para o Amazon EKS e o Kubernetes. Essas métricas estão no namespace `ContainerInsights`. Para obter mais informações, consulte [Métricas](cloudwatch_concepts.md#Metric).

Se você não vir as métricas do Container Insights com observabilidade aprimorada no console, certifique-se de que você concluiu a configuração do Container Insights com observabilidade aprimorada. As métricas não serão exibidas até que o Container Insights com observabilidade aprimorada tenha sido configurado completamente. Para obter mais informações, consulte [Configurar o Container Insights](deploy-container-insights.md).

Se você estiver usando a versão 1.5.0 ou versões posteriores do complemento do Amazon EKS ou a versão 1.300035.0 do agente do CloudWatch, a maioria das métricas listadas na tabela a seguir será coletada para nós nos sistemas Linux e Windows. Consulte a coluna **Nome da métrica** da tabela para visualizar quais métricas não são coletadas para o Windows.

Com a versão anterior do Container Insights, que fornece métricas agregadas no nível de cluster e de serviço, as métricas são cobradas como métricas personalizadas. Com o Container Insights com capacidade de observabilidade aprimorada para o Amazon EKS, as métricas do Container Insights são cobradas por observação, em vez de serem cobradas por métrica armazenada ou log ingerido. Para obter mais informações sobre os preços do CloudWatch, consulte [Preço do Amazon CloudWatch](https://aws.amazon.com/cloudwatch/pricing/). 

**nota**  
No Windows, métricas de rede, como `pod_network_rx_bytes` e `pod_network_tx_bytes`, não são coletadas para a hospedagem de contêineres de processos.  
Em clusters do RedHat OpenShift na AWS (ROSA), métricas de diskio, como `node_diskio_io_serviced_total` e `node_diskio_io_service_bytes_total`, não são coletadas.


| Nome da métrica | Dimensões | Descrição | 
| --- | --- | --- | 
|  `cluster_failed_node_count`  |  `ClusterName`  |  O número de nós do operador com falha no cluster. Um nó é considerado com falha quando apresenta qualquer *condição de nó*. Para obter mais informações, consulte [Condições](https://kubernetes.io/docs/concepts/architecture/nodes/#condition) na documentação do Kubernetes.  | 
|  `cluster_node_count`  |  `ClusterName`  |  O número total de nós do operador no cluster.  | 
|  `namespace_number_of_running_pods`  |  `Namespace` `ClusterName` `ClusterName`  |  O número de pods em execução por namespace no recurso especificado pelas dimensões que você está usando.  | 
|  `node_cpu_limit`  |  `ClusterName`  `ClusterName`, `InstanceId`, `NodeName`   |  O número máximo de unidades de CPU que pode ser atribuído a um único nó neste cluster.  | 
|  `node_cpu_reserved_capacity`  |  `NodeName`, `ClusterName`, `InstanceId` `ClusterName`  |  A porcentagem de unidades de CPU reservadas para componentes do nó, como kubelet, kube-proxy e Docker. Fórmula: `node_cpu_request / node_cpu_limit`  `node_cpu_request` não é relatado diretamente como uma métrica, mas é um campo em eventos de log de performance. Para obter mais informações, consulte [Campos relevantes nos eventos de log de performance para Amazon EKS e Kubernetes](Container-Insights-reference-performance-entries-EKS.md).    | 
|  `node_cpu_usage_total`  |  `ClusterName` `ClusterName`, `InstanceId`, `NodeName`  |  O número de unidades da CPU que está sendo usado nos nós do cluster.  | 
|  `node_cpu_utilization`  |  `NodeName`, `ClusterName`, `InstanceId` `ClusterName`  |  A porcentagem total de unidades de CPU que está sendo usada nos nós do cluster. Fórmula: `node_cpu_usage_total / node_cpu_limit`  | 
|  `node_filesystem_utilization`  |  `NodeName`, `ClusterName`, `InstanceId` `ClusterName`  |  A porcentagem total da capacidade do sistema de arquivos que está sendo usado nos nós do cluster. Fórmula: `node_filesystem_usage / node_filesystem_capacity`  `node_filesystem_usage` e `node_filesystem_capacity` não são relatados diretamente como métricas, mas são campos em eventos de log de performance. Para obter mais informações, consulte [Campos relevantes nos eventos de log de performance para Amazon EKS e Kubernetes](Container-Insights-reference-performance-entries-EKS.md).    | 
|  `node_memory_limit`  |  `ClusterName` `ClusterName`, `InstanceId`, `NodeName`   |  A quantidade máxima de memória, em bytes, que pode ser atribuída a um único nó neste cluster.  | 
|  `node_filesystem_inodes`  Não está disponível no Windows.  |  `ClusterName` `ClusterName`, `InstanceId`, `NodeName`   |  O número total de inodes (usados e não usados) em um nó.  | 
|  `node_filesystem_inodes_free` Não está disponível no Windows.  |  `ClusterName` `ClusterName`, `InstanceId`, `NodeName`   |  O número de inodes não utilizados em um nó.  | 
|  `node_gpu_limit` |  `ClusterName` `ClusterName`, `InstanceId`, `NodeName`  |  O número total de GPUs disponíveis no nó.  | 
|  `node_gpu_usage_total` |  `ClusterName` `ClusterName`, `InstanceId`, `NodeName`  |  O número de GPUs em uso pelos pods em execução no nó.  | 
|  `node_gpu_reserved_capacity` |  `ClusterName` `ClusterName`, `InstanceId`, `NodeName`  | 
|  `node_memory_reserved_capacity`  |  `NodeName`, `ClusterName`, `InstanceId` `ClusterName`  |  A porcentagem de memória que está sendo usada no momento nos nós do cluster. Fórmula: `node_memory_request / node_memory_limit`  `node_memory_request` não é relatado diretamente como uma métrica, mas é um campo em eventos de log de performance. Para obter mais informações, consulte [Campos relevantes nos eventos de log de performance para Amazon EKS e Kubernetes](Container-Insights-reference-performance-entries-EKS.md).    | 
|  `node_memory_utilization`  |  `NodeName`, `ClusterName`, `InstanceId` `ClusterName`  |  A porcentagem de memória que está sendo usada no momento pelo nó ou nós. É o percentual de uso de memória de nó dividido pela limitação de memória de nó. Fórmula: `node_memory_working_set / node_memory_limit`.   | 
|  `node_memory_working_set`  |  `ClusterName`  `ClusterName`, `InstanceId`, `NodeName`   |  A quantidade de memória, em bytes, sendo usada no conjunto de trabalho dos nós no cluster.  | 
|  `node_network_total_bytes`  |  `NodeName`, `ClusterName`, `InstanceId` `ClusterName`  |  O número total de bytes transmitidos e recebidos por segundo pela rede por nó em um cluster. Fórmula: `node_network_rx_bytes + node_network_tx_bytes`  `node_network_rx_bytes` e `node_network_tx_bytes` não são relatados diretamente como métricas, mas são campos em eventos de log de performance. Para obter mais informações, consulte [Campos relevantes nos eventos de log de performance para Amazon EKS e Kubernetes](Container-Insights-reference-performance-entries-EKS.md).    | 
|  `node_number_of_running_containers`  |  `NodeName`, `ClusterName`, `InstanceId` `ClusterName`  |  O número de contêineres em execução por nó em um cluster.  | 
|  `node_number_of_running_pods`  |  `NodeName`, `ClusterName`, `InstanceId` `ClusterName`  |  O número de pods em execução por nó em um cluster.  | 
|  `node_status_allocatable_pods`   |  `ClusterName` `ClusterName`, `InstanceId`, `NodeName`   |  O número de pods que podem ser atribuídos a um nó com base em seus recursos alocáveis, que é definido como o restante da capacidade de um nó depois de contabilizar as reservas de daemons do sistema e os limites de remoção rígidos.  | 
|  `node_status_capacity_pods`  |  `ClusterName` `ClusterName`, `InstanceId`, `NodeName`   |  O número de pods que podem ser atribuídos a um nó com base em sua capacidade.  | 
|  `node_status_condition_ready`   |  `ClusterName` `ClusterName`, `InstanceId`, `NodeName`   |  Indica se a condição de status do nó `Ready` é verdadeira para nós do Amazon EC2.  | 
|  `node_status_condition_memory_pressure`   |  `ClusterName` `ClusterName`, `InstanceId`, `NodeName`   |  Indica se a condição de status do nó `MemoryPressure` é verdadeira.  | 
|  `node_status_condition_pid_pressure`   |  `ClusterName` `ClusterName`, `InstanceId`, `NodeName`   |  Indica se a condição de status do nó `PIDPressure` é verdadeira.  | 
|  `node_status_condition_disk_pressure`   |  `ClusterName` `ClusterName`, `InstanceId`, `NodeName`   |  Indica se a condição de status do nó `OutOfDisk` é verdadeira.  | 
|  `node_status_condition_unknown`   |  `ClusterName` `ClusterName`, `InstanceId`, `NodeName`   |  Indica se alguma das condições de status do nó é Desconhecida.  | 
|  `node_interface_network_rx_dropped`  |  `ClusterName` `ClusterName`, `InstanceId`, `NodeName`   |  O número de pacotes que foram recebidos e posteriormente descartados por uma interface de rede no nó.  | 
|  `node_interface_network_tx_dropped`  |  `ClusterName` `ClusterName`, `InstanceId`, `NodeName`   |  O número de pacotes que deveriam ser transmitidos, mas foram descartados por uma interface de rede no nó.  | 
|  `node_diskio_io_service_bytes_total`  Não está disponível em clusters do Windows nem do ROSA.  |  `ClusterName` `ClusterName`, `InstanceId`, `NodeName`   |  O número total de bytes transferidos por todas as operações de E/S no nó.  | 
|  `node_diskio_io_serviced_total` Não está disponível em clusters do Windows nem do ROSA.  |  `ClusterName` `ClusterName`, `InstanceId`, `NodeName`   |  O número total de operações de E/S no nó.  | 
|  `pod_cpu_reserved_capacity`  |  `PodName`, `Namespace`, `ClusterName` `ClusterName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`  `ClusterName`, `Namespace`, `Service`   |  A capacidade da CPU reservada por pod em um cluster. Fórmula: `pod_cpu_request / node_cpu_limit`  `pod_cpu_request` não é relatado diretamente como uma métrica, mas é um campo em eventos de log de performance. Para obter mais informações, consulte [Campos relevantes nos eventos de log de performance para Amazon EKS e Kubernetes](Container-Insights-reference-performance-entries-EKS.md).    | 
|  `pod_cpu_utilization`  |  `PodName`, `Namespace`, `ClusterName` `Namespace`, `ClusterName` `Service`, `Namespace`, `ClusterName` `ClusterName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`   |  A porcentagem de unidades de CPU que estão sendo usadas por pods. Fórmula: `pod_cpu_usage_total / node_cpu_limit`  | 
|  `pod_cpu_utilization_over_pod_limit`  |  `PodName`, `Namespace`, `ClusterName` `Namespace`, `ClusterName` `Service`, `Namespace`, `ClusterName` `ClusterName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`   |  O percentual das unidades de CPU que estão sendo usadas por pods com relação ao limite de pods. Fórmula: `pod_cpu_usage_total / pod_cpu_limit`  | 
|  `pod_memory_reserved_capacity`  |  `PodName`, `Namespace`, `ClusterName` `ClusterName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`  `ClusterName`, `Namespace`, `Service`   |  A porcentagem de memória reservada para pods. Fórmula: `pod_memory_request / node_memory_limit`  `pod_memory_request` não é relatado diretamente como uma métrica, mas é um campo em eventos de log de performance. Para obter mais informações, consulte [Campos relevantes nos eventos de log de performance para Amazon EKS e Kubernetes](Container-Insights-reference-performance-entries-EKS.md).    | 
|  `pod_memory_utilization`  |  `PodName`, `Namespace`, `ClusterName` `Namespace`, `ClusterName` `Service`, `Namespace`, `ClusterName` `ClusterName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`   |  A porcentagem de memória que está sendo usada atualmente pelo pod ou pods. Fórmula: `pod_memory_working_set / node_memory_limit`  | 
|  `pod_memory_utilization_over_pod_limit`  |  `PodName`, `Namespace`, `ClusterName` `Namespace`, `ClusterName` `Service`, `Namespace`, `ClusterName` `ClusterName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`   |  O percentual de memória que está sendo usada por pods com relação ao limite de pods. Se qualquer contêiner no pod não tiver um limite de memória definido, essa métrica não aparecerá. Fórmula: `pod_memory_working_set / pod_memory_limit`  | 
|  `pod_network_rx_bytes`  |  `PodName`, `Namespace`, `ClusterName` `Namespace`, `ClusterName` `Service`, `Namespace`, `ClusterName` `ClusterName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`   |  O número de bytes que estão sendo recebidos por segundo na rede pelo pod. Fórmula: `sum(pod_interface_network_rx_bytes)`  `pod_interface_network_rx_bytes` não é relatado diretamente como uma métrica, mas é um campo em eventos de log de performance. Para obter mais informações, consulte [Campos relevantes nos eventos de log de performance para Amazon EKS e Kubernetes](Container-Insights-reference-performance-entries-EKS.md).    | 
|  `pod_network_tx_bytes`  |  `PodName`, `Namespace`, `ClusterName` `Namespace,` `ClusterName` `Service`, `Namespace`, `ClusterName` `ClusterName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`   |  O número de bytes que estão sendo transmitidos por segundo na rede pelo pod. Fórmula: `sum(pod_interface_network_tx_bytes)`  `pod_interface_network_tx_bytes` não é relatado diretamente como uma métrica, mas é um campo em eventos de log de performance. Para obter mais informações, consulte [Campos relevantes nos eventos de log de performance para Amazon EKS e Kubernetes](Container-Insights-reference-performance-entries-EKS.md).    | 
|  `pod_cpu_request`   |  `ClusterName` `PodName`, `Namespace`, `ClusterName` `Namespace`, `ClusterName`, `Service` `ClusterName`, `Namespace`, `PodName`, `FullPodName`  |  As solicitações da CPU para o pod. Fórmula: `sum(container_cpu_request)`  `pod_cpu_request` não é relatado diretamente como uma métrica, mas é um campo em eventos de log de performance. Para obter mais informações, consulte [Campos relevantes nos eventos de log de performance para Amazon EKS e Kubernetes](Container-Insights-reference-performance-entries-EKS.md).    | 
|  `pod_memory_request`  |  `ClusterName` `PodName`, `Namespace`, `ClusterName` `Namespace`, `ClusterName`, `Service` `ClusterName`, `Namespace`, `PodName`, `FullPodName`  |  As solicitações de memória para o pod. Fórmula: `sum(container_memory_request)`  `pod_memory_request` não é relatado diretamente como uma métrica, mas é um campo em eventos de log de performance. Para obter mais informações, consulte [Campos relevantes nos eventos de log de performance para Amazon EKS e Kubernetes](Container-Insights-reference-performance-entries-EKS.md).    | 
|  `pod_cpu_limit`  |  `ClusterName` `PodName`, `Namespace`, `ClusterName` `Namespace`, `ClusterName`, `Service` `ClusterName`, `Namespace`, `PodName`, `FullPodName`  |  O limite de CPU definido para os contêineres no pod. Se algum contêiner no pod não tiver um limite de CPU definido, essa métrica não será exibida.  Fórmula: `sum(container_cpu_limit)`  `pod_cpu_limit` não é relatado diretamente como uma métrica, mas é um campo em eventos de log de performance. Para obter mais informações, consulte [Campos relevantes nos eventos de log de performance para Amazon EKS e Kubernetes](Container-Insights-reference-performance-entries-EKS.md).    | 
|  `pod_memory_limit`   |  `ClusterName` `PodName`, `Namespace`, `ClusterName` `Namespace`, `ClusterName`, `Service` `ClusterName`, `Namespace`, `PodName`, `FullPodName`  |  O limite de memória definido para os contêineres no pod. Se qualquer contêiner no pod não tiver um limite de memória definido, essa métrica não aparecerá.  Fórmula: `sum(container_memory_limit)`  `pod_cpu_limit` não é relatado diretamente como uma métrica, mas é um campo em eventos de log de performance. Para obter mais informações, consulte [Campos relevantes nos eventos de log de performance para Amazon EKS e Kubernetes](Container-Insights-reference-performance-entries-EKS.md).    | 
|  `pod_status_failed`   |  `ClusterName` `PodName`, `Namespace`, `ClusterName` `Namespace`, `ClusterName`, `Service` `ClusterName`, `Namespace`, `PodName`, `FullPodName`  |  Indica que todos os contêineres no pod foram encerrados, e pelo menos um contêiner foi encerrado com um status diferente de zero ou foi encerrado pelo sistema.   | 
|  `pod_status_ready`  |  `ClusterName` `PodName`, `Namespace`, `ClusterName` `Namespace`, `ClusterName`, `Service` `ClusterName`, `Namespace`, `PodName`, `FullPodName`  |  Indica que todos os contêineres no pod estão prontos, tendo atingido a condição `ContainerReady`.   | 
|  `pod_status_running`  |  `ClusterName` `PodName`, `Namespace`, `ClusterName` `Namespace`, `ClusterName`, `Service` `ClusterName`, `Namespace`, `PodName`, `FullPodName`  |  Indica que todos os contêineres no pod estão em execução.   | 
|  `pod_status_scheduled`  |  `ClusterName` `PodName`, `Namespace`, `ClusterName` `Namespace`, `ClusterName`, `Service` `ClusterName`, `Namespace`, `PodName`, `FullPodName`  |  Indica que o pod foi agendado para um nó.   | 
|  `pod_status_unknown`  |  `ClusterName` `PodName`, `Namespace`, `ClusterName` `Namespace`, `ClusterName`, `Service` `ClusterName`, `Namespace`, `PodName`, `FullPodName`  |  Indica que o status do pod não pode ser obtido.   | 
|  `pod_status_pending`  |  `ClusterName` `PodName`, `Namespace`, `ClusterName` `Namespace`, `ClusterName`, `Service` `ClusterName`, `Namespace`, `PodName`, `FullPodName`  |  Indica que o pod foi aceito pelo cluster, mas um ou mais contêineres ainda não estão prontos.   | 
|  `pod_status_succeeded`   |  `ClusterName` `PodName`, `Namespace`, `ClusterName` `Namespace`, `ClusterName`, `Service` `ClusterName`, `Namespace`, `PodName`, `FullPodName`  |  Indica que todos os contêineres no pod foram encerrados com êxito e não serão reiniciados.   | 
|  `pod_number_of_containers`   |  `ClusterName` `PodName`, `Namespace`, `ClusterName` `Namespace`, `ClusterName`, `Service` `ClusterName`, `Namespace`, `PodName`, `FullPodName`  |  Relata o número de contêineres definidos na especificação do pod.   | 
|  `pod_number_of_running_containers`  |  `ClusterName` `PodName`, `Namespace`, `ClusterName` `Namespace`, `ClusterName`, `Service` `ClusterName`, `Namespace`, `PodName`, `FullPodName`  |  Relata o número de contêineres no pod que estão atualmente no estado `Running`.   | 
|  `pod_container_status_terminated`  |  `ClusterName` `PodName`, `Namespace`, `ClusterName` `Namespace`, `ClusterName`, `Service` `ClusterName`, `Namespace`, `PodName`, `FullPodName`  |  Relata o número de contêineres no pod que estão no estado `Terminated`.   | 
|  `pod_container_status_running`   |  `ClusterName` `PodName`, `Namespace`, `ClusterName` `Namespace`, `ClusterName`, `Service` `ClusterName`, `Namespace`, `PodName`, `FullPodName`  |  Relata o número de contêineres no pod que estão no estado `Running`.   | 
|  `pod_container_status_waiting`  |  `ClusterName` `PodName`, `Namespace`, `ClusterName` `Namespace`, `ClusterName`, `Service` `ClusterName`, `Namespace`, `PodName`, `FullPodName`  |  Relata o número de contêineres no pod que estão no estado `Waiting`.   | 
|  `pod_container_status_waiting_reason_crash_loop_back_off`  |  `ClusterName` `PodName`, `Namespace`, `ClusterName` `Namespace`, `ClusterName`, `Service` `ClusterName`, `Namespace`, `PodName`, `FullPodName`  |  Relata o número de contêineres no pod que estão pendentes devido a um erro `CrashLoopBackOff`, em que um contêiner falha repetidamente ao iniciar.  | 
|  `pod_container_status_waiting_reason_create_container_config_error`  |  `ClusterName` `PodName`, `Namespace`, `ClusterName` `Namespace`, `ClusterName`, `Service` `ClusterName`, `Namespace`, `PodName`, `FullPodName`  |  Relata o número de contêineres no pod que estão pendentes com o motivo `CreateContainerConfigError`. Isso ocorre devido a um erro ao criar a configuração do contêiner.  | 
|  `pod_container_status_waiting_reason_create_container_error`  |  `ClusterName` `PodName`, `Namespace`, `ClusterName` `Namespace`, `ClusterName`, `Service` `ClusterName`, `Namespace`, `PodName`, `FullPodName`  |  Relata o número de contêineres no pod que estão pendentes com o motivo `CreateContainerError` devido a um erro ao criar o contêiner.  | 
|  `pod_container_status_waiting_reason_image_pull_error`  |  `ClusterName` `PodName`, `Namespace`, `ClusterName` `Namespace`, `ClusterName`, `Service` `ClusterName`, `Namespace`, `PodName`, `FullPodName`  |  Relata o número de contêineres no pod que estão pendentes devido a `ErrImagePull`, `ImagePullBackOff` ou `InvalidImageName`. Essas situações ocorrem devido a um erro ao extrair a imagem do contêiner.  | 
|  `pod_container_status_waiting_reason_start_error`  |  `ClusterName` `PodName`, `Namespace`, `ClusterName` `Namespace`, `ClusterName`, `Service` `ClusterName`, `Namespace`, `PodName`, `FullPodName`  |  Relata o número de contêineres no pod que estão pendentes com o motivo `StartError` devido a um erro ao iniciar o contêiner.  | 
|  `pod_container_status_terminated_reason_oom_killed`   |  `ContainerName`, `FullPodName`, `PodName`, `Namespace`, `ClusterName` `ContainerName`, `PodName`, `Namespace`, `ClusterName` `ClusterName`  |  Indica que um pod foi encerrado porque excede o limite de memória. Essa métrica apenas é exibida quando esse problema ocorre.  | 
|  `pod_interface_network_rx_dropped`  |  `ClusterName` `PodName`, `Namespace`, `ClusterName` `Namespace`, `ClusterName`, `Service` `ClusterName`, `Namespace`, `PodName`, `FullPodName`  |  O número de pacotes que foram recebidos e posteriormente descartados em uma interface de rede para o pod.   | 
|  `pod_interface_network_tx_dropped`  |  `ClusterName` `PodName`, `Namespace`, `ClusterName` `Namespace`, `ClusterName`, `Service` `ClusterName`, `Namespace`, `PodName`, `FullPodName`  |  O número de pacotes que deveriam ser transmitidos, mas foram descartados para o pod.   | 
| `pod_memory_working_set` |  `ClusterName` `ClusterName`, `Namespace`, `PodName` `ClusterName`, `Namespace`, `Service` `ClusterName`, `Namespace`, `PodName`, `FullPodName`  | A memória em bytes que está sendo usada por um pod. | 
| `pod_cpu_usage_total` |  `ClusterName` `ClusterName`, `Namespace`, `PodName` `ClusterName`, `Namespace`, `Service` `ClusterName`, `Namespace`, `PodName`, `FullPodName`  | O número de unidades de CPU usadas por um pod. | 
|  `container_cpu_utilization`  |  `ClusterName` `PodName`, `Namespace`, `ClusterName`, `ContainerName` `PodName`, `Namespace`, `ClusterName`, `ContainerName`, `FullPodName`  |  A porcentagem de unidades de CPU que estão sendo usadas pelo contêiner. Fórmula: `container_cpu_usage_total / node_cpu_limit`  `container_cpu_utilization` não é relatado diretamente como uma métrica, mas é um campo em eventos de log de performance. Para obter mais informações, consulte [Campos relevantes nos eventos de log de performance para Amazon EKS e Kubernetes](Container-Insights-reference-performance-entries-EKS.md).    | 
|  `container_cpu_utilization_over_container_limit`   |  `ClusterName` `PodName`, `Namespace`, `ClusterName`, `ContainerName` `PodName`, `Namespace`, `ClusterName`, `ContainerName`, `FullPodName`  |  A porcentagem de unidades de CPU que estão sendo usadas pelo contêiner em relação ao limite do contêiner. Se o contêiner não tiver um limite de CPU definido, essa métrica não será exibida. Fórmula: `container_cpu_usage_total / container_cpu_limit`  `container_cpu_utilization_over_container_limit` não é relatado diretamente como uma métrica, mas é um campo em eventos de log de performance. Para obter mais informações, consulte [Campos relevantes nos eventos de log de performance para Amazon EKS e Kubernetes](Container-Insights-reference-performance-entries-EKS.md).    | 
|  `container_memory_utilization`  |  `ClusterName` `PodName`, `Namespace`, `ClusterName`, `ContainerName` `PodName`, `Namespace`, `ClusterName`, `ContainerName`, `FullPodName`  |  A porcentagem de unidades de memória que está sendo usada pelo contêiner. Fórmula: `container_memory_working_set / node_memory_limit`  `container_memory_utilization` não é relatado diretamente como uma métrica, mas é um campo em eventos de log de performance. Para obter mais informações, consulte [Campos relevantes nos eventos de log de performance para Amazon EKS e Kubernetes](Container-Insights-reference-performance-entries-EKS.md).    | 
|  `container_memory_utilization_over_container_limit`    |  `ClusterName` `PodName`, `Namespace`, `ClusterName`, `ContainerName` `PodName`, `Namespace`, `ClusterName`, `ContainerName`, `FullPodName`  |  A porcentagem de unidades de memória que está sendo usada pelo contêiner em relação ao limite do contêiner. Se o contêiner não tiver um limite de memória definido, essa métrica não será exibida. Fórmula: `container_memory_working_set / container_memory_limit`  `container_memory_utilization_over_container_limit` não é relatado diretamente como uma métrica, mas é um campo em eventos de log de performance. Para obter mais informações, consulte [Campos relevantes nos eventos de log de performance para Amazon EKS e Kubernetes](Container-Insights-reference-performance-entries-EKS.md).    | 
|  `container_memory_failures_total`  Não está disponível no Windows.  |  `ClusterName` `PodName`, `Namespace`, `ClusterName`, `ContainerName` `PodName`, `Namespace`, `ClusterName`, `ContainerName`, `FullPodName`  |  O número de falhas de alocação de memória que ocorreram no contêiner.  | 
|  `pod_number_of_container_restarts`  |  PodName, `Namespace`, `ClusterName`  |  O número total de reinicializações de contêineres em um pod.  | 
|  `service_number_of_running_pods`  |  Serviço, `Namespace`, `ClusterName` `ClusterName`  |  O número de pods que executam o serviço ou os serviços no cluster.  | 
|  `replicas_desired`   |  `ClusterName` `PodName`, `Namespace`, `ClusterName`  |  O número de pods desejados para uma workload, conforme definido na especificação da workload.  | 
|  `replicas_ready`   |  `ClusterName` `PodName`, `Namespace`, `ClusterName`  |  O número de pods de uma workload que atingiram o status de “prontos”.  | 
|  `status_replicas_available`  |  `ClusterName` `PodName`, `Namespace`, `ClusterName`  |  O número de pods para uma workload que estão disponíveis. Um pod está disponível quando estiver pronto para o `minReadySeconds` definido na especificação da workload.  | 
|  `status_replicas_unavailable`  |  `ClusterName` `PodName`, `Namespace`, `ClusterName`  |  O número de pods para uma workload que não estão disponíveis. Um pod está disponível quando estiver pronto para o `minReadySeconds` definido na especificação da workload. Os pods não estarão disponíveis se não atenderem a esse critério.  | 
|  `apiserver_storage_objects`  |  `ClusterName` `ClusterName`, `resource`  |  O número de objetos armazenados no etcd no momento da última verificação.  | 
|  `apiserver_storage_db_total_size_in_bytes`  |  `ClusterName` `ClusterName`, `endpoint`  |  Tamanho total do arquivo de banco de dados de armazenamento alocado fisicamente em bytes. Essa métrica é experimental e pode mudar em versões futuras do Kubernetes. Unidade: bytes Estatísticas significativas: Soma, Média, Mínimo, Máximo  | 
|  `apiserver_request_total`  |  `ClusterName` `ClusterName`, `code`, `verb`  |  O número total de solicitações de API para o servidor de API do Kubernetes.  | 
|  `apiserver_request_duration_seconds`  |  `ClusterName` `ClusterName`, `verb`  |  Latência de resposta para solicitações de API para o servidor de API do Kubernetes.  | 
|  `apiserver_admission_controller_admission_duration_seconds`  |  `ClusterName` `ClusterName`, `operation`  |  Latência do controlador de admissão em segundos. Um controlador de admissão é um código que intercepta solicitações para o servidor de API do Kubernetes.  | 
|  `rest_client_request_duration_seconds`   |  `ClusterName` `ClusterName`, `operation`  |  Latência de resposta observada pelos clientes que chamam o servidor da API do Kubernetes. Essa métrica é experimental e pode mudar em versões futuras do Kubernetes.  | 
|  `rest_client_requests_total`   |  `ClusterName` `ClusterName`, `code`, `method`  |  O número total de solicitações de API para o servidor de API do Kubernetes feitas por clientes. Essa métrica é experimental e pode mudar em versões futuras do Kubernetes.  | 
|  `etcd_request_duration_seconds`   |  `ClusterName` `ClusterName`, `operation`  |  Latência de resposta das chamadas de API para o Etcd. Essa métrica é experimental e pode mudar em versões futuras do Kubernetes.  | 
|  `apiserver_storage_size_bytes`   |  `ClusterName` `ClusterName`, `endpoint`  |  Tamanho do arquivo de banco de dados de armazenamento alocado fisicamente em bytes. Essa métrica é experimental e pode mudar em versões futuras do Kubernetes.  | 
|  `apiserver_longrunning_requests`  |  `ClusterName` `ClusterName`, `resource`  |  O número de solicitações ativas de longa duração para o servidor de API do Kubernetes.  | 
|  `apiserver_current_inflight_requests`  |  `ClusterName` `ClusterName`, `request_kind`  |  O número de solicitações que estão sendo processadas pelo servidor de API do Kubernetes.  | 
|  `apiserver_admission_webhook_admission_duration_seconds`  |  `ClusterName` `ClusterName`, `name`  |  Latência do webhook de admissão em segundos. Os webhooks de admissão são retornos de chamada HTTP que recebem solicitações de admissão e realizam alguma ação com elas.  | 
|  `apiserver_admission_step_admission_duration_seconds`   |  `ClusterName` `ClusterName`, `operation`  |  Latência da subetapa de admissão em segundos.  | 
|  `apiserver_requested_deprecated_apis`   |  `ClusterName` `ClusterName`, `group`  |  Número de solicitações para APIs obsoletas no servidor de API do Kubernetes.  | 
|  `apiserver_request_total_5xx`  |  `ClusterName` `ClusterName`, `code`, `verb`  |  Número de solicitações ao servidor de API do Kubernetes que foram respondidas com um código de resposta HTTP 5XX.  | 
|  `apiserver_storage_list_duration_seconds`   |  `ClusterName` `ClusterName`, `resource`  |  Latência de resposta da listagem de objetos do Etc. Essa métrica é experimental e pode mudar em versões futuras do Kubernetes.  | 
|  `apiserver_flowcontrol_request_concurrency_limit`   |  `ClusterName` `ClusterName`, `priority_level`  |  O número de threads usados pelas solicitações em execução no subsistema de Prioridade e equidade de APIs.  | 
|  `apiserver_flowcontrol_rejected_requests_total`   |  `ClusterName` `ClusterName`, `reason`  |  Número de solicitações rejeitadas pelo subsistema API Priority and Fairness. Essa métrica é experimental e pode mudar em versões futuras do Kubernetes.  | 
|  `apiserver_current_inqueue_requests`   |  `ClusterName` `ClusterName`, `request_kind`  |  O número de solicitações em fila enfileiradas pelo servidor de API do Kubernetes. Essa métrica é experimental e pode mudar em versões futuras do Kubernetes.  | 

## Métricas da GPU NVIDIA
<a name="Container-Insights-metrics-EKS-GPU"></a>

A partir da versão `1.300034.0` do agente do CloudWatch, o Container Insights com observabilidade aprimorada para o Amazon EKS coleta métricas da GPU NVIDIA de workloads do EKS por padrão. O agente do CloudWatch deve ser instalado usando o complemento Observability do CloudWatch para o EKS na versão `v1.3.0-eksbuild.1` ou em versões posteriores. Para obter mais informações, consulte [Instalação do agente do CloudWatch com o complemento de observabilidade do EKS do Amazon CloudWatch ou com o chart do Helm](install-CloudWatch-Observability-EKS-addon.md). Essas métricas de GPU NVIDIA coletadas estão listadas na tabela desta seção. 

Para que o Container Insights colete métricas de GPU NVIDIA, você deve atender aos seguintes pré-requisitos:
+ Você deve usar o Container Insights com observabilidade aprimorada para o Amazon EKS, com o complemento Observability do Amazon CloudWatch para o EKS na versão `v1.3.0-eksbuild.1` ou em versões posteriores.
+ [O plug-in de dispositivo NVIDIA para Kubernetes](https://github.com/NVIDIA/k8s-device-plugin) deve estar instalado no cluster.
+ [O kit de ferramentas de contêiner NVIDIA](https://github.com/NVIDIA/nvidia-container-toolkit) deve ser instalado nos nós do cluster. Por exemplo, as AMIs aceleradas otimizadas do Amazon EKS são criadas com os componentes necessários.

Você pode optar por não coletar métricas de GPU NVIDIA definindo a opção `accelerated_compute_metrics` no arquivo de configuração do agente CloudWatch como `false`. Para obter mais informações e um exemplo de configuração de exclusão, consulte [(Opcional) Configuração adicional](install-CloudWatch-Observability-EKS-addon.md#install-CloudWatch-Observability-EKS-addon-configuration).


| Nome da métrica | Dimensões | Descrição | 
| --- | --- | --- | 
|  `container_gpu_memory_total` |  `ClusterName` `ClusterName`, `Namespace`, `PodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName`, `GpuDevice`  |  O tamanho total do buffer de quadros, em bytes, nas GPUs alocadas ao contêiner.  | 
|  `container_gpu_memory_used` |  `ClusterName` `ClusterName`, `Namespace`, `PodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName`, `GpuDevice`  |  O bytes do buffer de quadros usados nas GPUs alocadas ao contêiner.  | 
|  `container_gpu_memory_utilization` |  `ClusterName` `ClusterName`, `Namespace`, `PodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName`, `GpuDevice`  |  A porcentagem do buffer de quadros usada das GPUs alocadas ao contêiner.  | 
|  `container_gpu_power_draw` |  `ClusterName` `ClusterName`, `Namespace`, `PodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName`, `GpuDevice`  |  O uso de energia em watts das GPUs alocadas ao contêiner.  | 
|  `container_gpu_temperature` |  `ClusterName` `ClusterName`, `Namespace`, `PodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName`, `GpuDevice`  |  A temperatura em graus Celsius das GPUs alocadas ao contêiner.  | 
|  `container_gpu_utilization` |  `ClusterName` `ClusterName`, `Namespace`, `PodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName`, `GpuDevice`  |  A porcentagem de utilização das GPUs alocadas ao contêiner.  | 
|  `container_gpu_tensor_core_utilization` |  `ClusterName` `ClusterName`, `Namespace`, `PodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName`, `GpuDevice`  |  A porcentagem de utilização de núcleos tensoriais das GPUs alocadas ao contêiner.  | 
|  `node_gpu_memory_total` |  `ClusterName` `ClusterName`, `InstanceId`, `NodeName` `ClusterName`, `InstanceId`, `InstanceType`, `NodeName`, `GpuDevice`  |  O tamanho total do buffer de quadros, em bytes, nas GPUs alocadas ao nó.  | 
|  `node_gpu_memory_used` |  `ClusterName` `ClusterName`, `InstanceId`, `NodeName` `ClusterName`, `InstanceId`, `InstanceType`, `NodeName`, `GpuDevice`  |  Os bytes do buffer de quadros usados nas GPUs alocadas ao nó.  | 
|  `node_gpu_memory_utilization` |  `ClusterName` `ClusterName`, `InstanceId`, `NodeName` `ClusterName`, `InstanceId`, `InstanceType`, `NodeName`, `GpuDevice`  |  A porcentagem de buffer de quadros usado nas GPUs alocadas ao nó.  | 
|  `node_gpu_power_draw` |  `ClusterName` `ClusterName`, `InstanceId`, `NodeName` `ClusterName`, `InstanceId`, `InstanceType`, `NodeName`, `GpuDevice`  |  O uso de energia em watts das GPUs alocadas ao nó.  | 
|  `node_gpu_temperature` |  `ClusterName` `ClusterName`, `InstanceId`, `NodeName` `ClusterName`, `InstanceId`, `InstanceType`, `NodeName`, `GpuDevice`  |  A temperatura em graus Celsius das GPUs alocadas ao nó.  | 
|  `node_gpu_utilization` |  `ClusterName` `ClusterName`, `InstanceId`, `NodeName` `ClusterName`, `InstanceId`, `InstanceType`, `NodeName`, `GpuDevice`  |  A porcentagem de utilização das GPUs alocadas ao nó.  | 
|  `node_gpu_tensor_core_utilization` |  `ClusterName` `ClusterName`, `InstanceId`, `NodeName` `ClusterName`, `InstanceId`, `InstanceType`, `NodeName`, `GpuDevice`  |  A porcentagem de utilização de núcleos tensoriais das GPUs alocadas ao nó.  | 
|  `pod_gpu_memory_total` |  `ClusterName` `ClusterName`, `Namespace` `ClusterName`, `Namespace`, `Service` `ClusterName`, `Namespace`, `PodName` `ClusterName`, `Namespace`, `PodName`, `FullPodName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`. `GpuDevice`  |  O tamanho total do buffer de quadros, em bytes, nas GPUs alocadas ao pod.  | 
|  `pod_gpu_memory_used` |  `ClusterName` `ClusterName`, `Namespace` `ClusterName`, `Namespace`, `Service` `ClusterName`, `Namespace`, `PodName` `ClusterName`, `Namespace`, `PodName`, `FullPodName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`. `GpuDevice`  |  Os bytes do buffer de quadros usados nas GPUs alocadas ao pod.  | 
|  `pod_gpu_memory_utilization` |  `ClusterName` `ClusterName`, `Namespace` `ClusterName`, `Namespace`, `Service` `ClusterName`, `Namespace`, `PodName` `ClusterName`, `Namespace`, `PodName`, `FullPodName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`. `GpuDevice`  |  A porcentagem de buffer de quadros usada das GPUs alocadas ao pod.  | 
|  `pod_gpu_power_draw` |  `ClusterName` `ClusterName`, `Namespace` `ClusterName`, `Namespace`, `Service` `ClusterName`, `Namespace`, `PodName` `ClusterName`, `Namespace`, `PodName`, `FullPodName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`. `GpuDevice`  |  O uso de energia em watts das GPUs alocadas ao pod.  | 
|  `pod_gpu_temperature` |  `ClusterName` `ClusterName`, `Namespace` `ClusterName`, `Namespace`, `Service` `ClusterName`, `Namespace`, `PodName` `ClusterName`, `Namespace`, `PodName`, `FullPodName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`. `GpuDevice`  |  A temperatura em graus Celsius das GPUs alocadas ao pod.  | 
|  `pod_gpu_utilization` |  `ClusterName` `ClusterName`, `Namespace`, `PodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName`, `GpuDevice`  |  A porcentagem de utilização das GPUs alocadas ao pod.  | 
|  `pod_gpu_tensor_core_utilization` |  `ClusterName` `ClusterName`, `Namespace`, `PodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName`, `GpuDevice`  |  A porcentagem de utilização de núcleos tensoriais das GPUs alocadas ao pod.  | 

### Monitoramento detalhado da GPU
<a name="Container-Insights-detailed-GPU-monitoring"></a>

A partir da versão `1.300062.0` do agente CloudWatch, o Container Insights com observabilidade aprimorada para o Amazon EKS é compatível com o monitoramento detalhado da GPU com intervalos de coleta de menos de um minuto. Isso resolve as lacunas de monitoramento para workloads de inferência de machine learning de curta duração que podem ser completamente ignoradas pelos intervalos de coleta padrão. O agente do CloudWatch deve ser instalado usando o complemento Observability do CloudWatch para o EKS na versão `v4.7.0-eksbuild.1` ou em versões posteriores. Para obter mais informações, consulte [Instalação do agente do CloudWatch com o complemento de observabilidade do EKS do Amazon CloudWatch ou com o chart do Helm](install-CloudWatch-Observability-EKS-addon.md).

Por padrão, as métricas da GPU são coletadas e ingeridas a intervalos de 60 segundos. Com o monitoramento detalhado habilitado, o agente do CloudWatch coleta métricas da GPU a intervalos de menos de um minuto (mínimo de 1 segundo), mas as métricas ainda são ingeridas no CloudWatch a intervalos de 1 minuto. Porém, você pode consultar agregações estatísticas (como mínimo, máximo e percentis, como p90) dos pontos de dados coletados a intervalos abaixo de 1 minuto dentro um período de 1 minuto, fornecendo dados precisos de utilização da GPU e melhor otimização de recursos.

#### Configuração
<a name="Container-Insights-detailed-GPU-monitoring-configuration"></a>

Para habilitar o monitoramento detalhado da GPU, atualize a configuração do agente do CloudWatch para incluir o parâmetro `accelerated_compute_gpu_metrics_collection_interval`na seção `kubernetes`, como no exemplo a seguir.

```
{  
    "logs": {  
        "metrics_collected": {  
            "kubernetes": {  
                "cluster_name": "MyCluster",  
                "enhanced_container_insights": true,  
                "accelerated_compute_metrics": true,  
                "accelerated_compute_gpu_metrics_collection_interval": 1  
            }  
        }  
    }  
}
```

O parâmetro `accelerated_compute_gpu_metrics_collection_interval` aceita valores em segundos, com um valor mínimo de 1 segundo. Configurá-lo como `1` habilita intervalos de coleta de 1 segundo. Se esse parâmetro não for especificado, será usado o intervalo padrão de 60 segundos.

Para obter instruções de configuração, consulte [Configuração do agente do CloudWatch para a coleta de métricas do cluster](Container-Insights-setup-metrics.md).

## Métricas do AWS Neuron para o AWS Trainium e para o AWS Inferentia
<a name="Container-Insights-metrics-EKS-Neuron"></a>

A partir da versão `1.300036.0` do agente do CloudWatch, o Container Insights com observabilidade aprimorada para o Amazon EKS coleta métricas de computação acelerada dos aceleradores AWS Trainium e AWS Inferentia por padrão. O agente do CloudWatch deve ser instalado usando o complemento Observability do CloudWatch para o EKS na versão `v1.5.0-eksbuild.1` ou em versões posteriores. Para obter mais informações sobre o complemento, consulte [Instalação do agente do CloudWatch com o complemento de observabilidade do EKS do Amazon CloudWatch ou com o chart do Helm](install-CloudWatch-Observability-EKS-addon.md). Para obter mais informações sobre o AWS Trainium, consulte [AWS Trainium](https://aws.amazon.com/machine-learning/trainium/). Para obter mais informações sobre o AWS Inferentia, consulte [AWS Inferentia](https://aws.amazon.com/machine-learning/inferentia/).

Para que o Container Insights colete métricas do AWS Neuron, você deve atender aos seguintes pré-requisitos:
+ Você deve usar o Container Insights com observabilidade aprimorada para o Amazon EKS, com o complemento Observability do Amazon CloudWatch para o EKS na versão `v1.5.0-eksbuild.1` ou em versões posteriores.
+ O [driver Neuron](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/general/setup/neuron-setup/pytorch/neuronx/ubuntu/torch-neuronx-ubuntu22.html#setup-torch-neuronx-ubuntu22) deve estar instalado nos nós do cluster.
+ O [plug-in do dispositivo Neuron](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/containers/kubernetes-getting-started.html) deve estar instalado no cluster. Por exemplo, as AMIs aceleradas otimizadas do Amazon EKS são criadas com os componentes necessários.

As métricas que são coletadas estão listadas na tabela desta seção. As métricas são coletadas para o AWS Trainium, o AWS Inferentia e o AWS Inferentia2.

O agente do CloudWatch coleta essas métricas do [monitor do Neuron](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/tools/neuron-sys-tools/neuron-monitor-user-guide.html) e realiza a correlação necessária de recursos do Kubernetes para fornecer métricas nos níveis de pod e de contêiner


| Nome da métrica | Dimensões | Descrição | 
| --- | --- | --- | 
|  `container_neuroncore_utilization` |  `ClusterName` `ClusterName`, `Namespace`, `PodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName`, `NeuronDevice`, `NeuronCore`  |  Utilização do NeuronCore, durante o período de captura do NeuronCore que está alocado para o contêiner. Unidade: percentual  | 
|  `container_neuroncore_memory_usage_constants` |  `ClusterName` `ClusterName`, `Namespace`, `PodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName`, `NeuronDevice`, `NeuronCore`  |  A quantidade de memória do dispositivo usada para constantes durante o treinamento pelo NeuronCore que está alocado para o contêiner (ou ponderações durante a inferência). Unidade: bytes  | 
|  `container_neuroncore_memory_usage_model_code` |  `ClusterName` `ClusterName`, `Namespace`, `PodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName`, `NeuronDevice`, `NeuronCore`  |  A quantidade de memória do dispositivo usada para o código executável dos modelos pelo NeuronCore que está alocado para o contêiner. Unidade: bytes  | 
|  `container_neuroncore_memory_usage_model_shared_scratchpad` |  `ClusterName` `ClusterName`, `Namespace`, `PodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName`, `NeuronDevice`, `NeuronCore`  |  A quantidade de memória do dispositivo usada para o rascunho compartilhado dos modelos pelo NeuronCore que está alocado para o contêiner. Esta região de memória está reservada para os modelos. Unidade: bytes  | 
|  `container_neuroncore_memory_usage_runtime_memory` |  `ClusterName` `ClusterName`, `Namespace`, `PodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName`, `NeuronDevice`, `NeuronCore`  |  A quantidade de memória do dispositivo usada para o runtime do Neuron pelo NeuronCore que está alocado para o contêiner. Unidade: bytes  | 
|  `container_neuroncore_memory_usage_tensors` |  `ClusterName` `ClusterName`, `Namespace`, `PodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName`, `NeuronDevice`, `NeuronCore`  |  A quantidade de memória do dispositivo usada para tensores pelo NeuronCore que está alocado para o contêiner. Unidade: bytes  | 
|  `container_neuroncore_memory_usage_total` |  `ClusterName` `ClusterName`, `Namespace`, `PodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName`, `NeuronDevice`, `NeuronCore`  |  A quantidade total de memória usada pelo NeuronCore que está alocado para o contêiner. Unidade: bytes  | 
|  `container_neurondevice_hw_ecc_events_total` |  `ClusterName` `ClusterName`, `Namespace`, `PodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName`, `NeuronDevice`  |  O número de eventos do sistema ECC corrigidos e não corrigidos para a SRAM no chip e para a memória do dispositivo Neuron no nó. Unidade: Contagem  | 
|  `pod_neuroncore_utilization` |  `ClusterName` `ClusterName`, `Namespace` `ClusterName`, `Namespace`, `Service` `ClusterName`, `Namespace`, `PodName`, `FullPodName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `NeuronDevice`, `NeuronCore`  |  A utilização do NeuronCore durante o período capturado do NeuronCore que está alocado para o pod. Unidade: percentual  | 
|  `pod_neuroncore_memory_usage_constants` |  `ClusterName` `ClusterName`, `Namespace` `ClusterName`, `Namespace`, `Service` `ClusterName`, `Namespace`, `PodName`, `FullPodName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `NeuronDevice`, `NeuronCore`  |  A quantidade de memória do dispositivo usada para constantes durante o treinamento pelo NeuronCore que está alocado para o pod (ou ponderações durante a inferência). Unidade: bytes  | 
|  `pod_neuroncore_memory_usage_model_code` |  `ClusterName` `ClusterName`, `Namespace` `ClusterName`, `Namespace`, `Service` `ClusterName`, `Namespace`, `PodName`, `FullPodName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `NeuronDevice`, `NeuronCore`  |  A quantidade de memória do dispositivo usada para o código executável dos modelos pelo NeuronCore que está alocado para o pod. Unidade: bytes  | 
|  `pod_neuroncore_memory_usage_model_shared_scratchpad` |  `ClusterName` `ClusterName`, `Namespace` `ClusterName`, `Namespace`, `Service` `ClusterName`, `Namespace`, `PodName`, `FullPodName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `NeuronDevice`, `NeuronCore`  |  A quantidade de memória do dispositivo usada para o rascunho compartilhado dos modelos pelo NeuronCore que está alocado para o pod. Esta região de memória está reservada para os modelos. Unidade: bytes  | 
|  `pod_neuroncore_memory_usage_runtime_memory` |  `ClusterName` `ClusterName`, `Namespace` `ClusterName`, `Namespace`, `Service` `ClusterName`, `Namespace`, `PodName`, `FullPodName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `NeuronDevice`, `NeuronCore`  |  A quantidade de memória do dispositivo usada para o runtime do Neuron pelo NeuronCore que está alocado para o pod. Unidade: bytes  | 
|  `pod_neuroncore_memory_usage_tensors` |  `ClusterName` `ClusterName`, `Namespace` `ClusterName`, `Namespace`, `Service` `ClusterName`, `Namespace`, `PodName`, `FullPodName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `NeuronDevice`, `NeuronCore`  |  A quantidade de memória do dispositivo usada para tensores pelo NeuronCore que está alocado para o pod. Unidade: bytes  | 
|  `pod_neuroncore_memory_usage_total` |  `ClusterName` `ClusterName`, `Namespace` `ClusterName`, `Namespace`, `Service` `ClusterName`, `Namespace`, `PodName`, `FullPodName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `NeuronDevice`, `NeuronCore`  |  A quantidade total de memória usada pelo NeuronCore que está alocado para o pod. Unidade: bytes  | 
|  `pod_neurondevice_hw_ecc_events_total` |  `ClusterName` `ClusterName`, `Namespace` `ClusterName`, `Namespace`, `Service` `ClusterName`, `Namespace`, `PodName` `ClusterName`, `Namespace`, `PodName`, `FullPodName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `NeuronDevice`  |  O número de eventos do sistema ECC corrigidos e não corrigidos para a SRAM no chip e para a memória do dispositivo Neuron que está alocado para um pod. Unidade: bytes  | 
|  `node_neuroncore_utilization` |  `ClusterName` `ClusterName`, `UltraServer` `ClusterName`, `InstanceId`, `NodeName` `ClusterName`, `InstanceType`, `InstanceId`, `NodeName`, `NeuronDevice`, `NeuronCore`  |  A utilização do NeuronCore durante o período capturado do NeuronCore que está alocado para o nó. Unidade: percentual  | 
|  `node_neuroncore_memory_usage_constants` |  `ClusterName` `ClusterName`, `UltraServer` `ClusterName`, `InstanceId`, `NodeName` `ClusterName`, `InstanceType`, `InstanceId`, `NodeName`, `NeuronDevice`, `NeuronCore`  |  A quantidade de memória do dispositivo usada para constantes durante o treinamento pelo NeuronCore que está alocado para o nó (ou ponderações durante a inferência). Unidade: bytes  | 
|  `node_neuroncore_memory_usage_model_code` |  `ClusterName` `ClusterName`, `UltraServer` `ClusterName`, `InstanceId`, `NodeName` `ClusterName`, `InstanceType`, `InstanceId`, `NodeName`, `NeuronDevice`, `NeuronCore`  |  A quantidade de memória do dispositivo usada para o código executável dos modelos pelo NeuronCore que está alocado para o nó. Unidade: bytes  | 
|  `node_neuroncore_memory_usage_model_shared_scratchpad` |  `ClusterName` `ClusterName`, `UltraServer` `ClusterName`, `InstanceId`, `NodeName` `ClusterName`, `InstanceType`, `InstanceId`, `NodeName`, `NeuronDevice`, `NeuronCore`  |  A quantidade de memória do dispositivo usada para o rascunho compartilhado dos modelos pelo NeuronCore que está alocado para o nó. Esta é uma região de memória reservada para os modelos. Unidade: bytes  | 
|  `node_neuroncore_memory_usage_runtime_memory` |  `ClusterName` `ClusterName`, `UltraServer` `ClusterName`, `InstanceId`, `NodeName` `ClusterName`, `InstanceType`, `InstanceId`, `NodeName`, `NeuronDevice`, `NeuronCore`  |  A quantidade de memória do dispositivo usada para o runtime do Neuron pelo NeuronCore que está alocado para o nó. Unidade: bytes  | 
|  `node_neuroncore_memory_usage_tensors` |  `ClusterName` `ClusterName`, `UltraServer` `ClusterName`, `InstanceId`, `NodeName` `ClusterName`, `InstanceType`, `InstanceId`, `NodeName`, `NeuronDevice`, `NeuronCore`  |  A quantidade de memória do dispositivo usada para tensores pelo NeuronCore que está alocado para o nó. Unidade: bytes  | 
|  `node_neuroncore_memory_usage_total` |  `ClusterName` `ClusterName`, `UltraServer` `ClusterName`, `InstanceId`, `NodeName` `ClusterName`, `InstanceType`, `InstanceId`, `NodeName`, `NeuronDevice`, `NeuronCore`  |  A quantidade total de memória usada pelo NeuronCore que está alocado para o nó. Unidade: bytes  | 
|  `node_neuron_execution_errors_total` |  `ClusterName` `ClusterName`, `UltraServer` `ClusterName`, `InstanceId`, `NodeName`  |  O número total de erros de execução no nó. Isso é calculado pelo agente do CloudWatch ao agregar os erros dos seguintes tipos: `generic`, `numerical`, `transient`, `model`, `runtime` e `hardware`. Unidade: Contagem  | 
|  `node_neurondevice_runtime_memory_used_bytes` |  `ClusterName` `ClusterName`, `UltraServer` `ClusterName`, `InstanceId`, `NodeName`  |  O uso total de memória do dispositivo Neuron em bytes no nó. Unidade: bytes  | 
| `node_neuron_execution_latency` |  `ClusterName` `ClusterName`, `UltraServer` `ClusterName`, `InstanceId`, `NodeName`  |  Em segundos, a latência para uma execução no nó medida pelo runtime do Neuron. Unidade: segundos  | 
| `node_neurondevice_hw_ecc_events_total` |  `ClusterName` `ClusterName`, `UltraServer` `ClusterName`, `InstanceId`, `NodeName` `ClusterName`, `InstanceId`, `NodeName`, `NeuronDevice`  |  O número de eventos do sistema ECC corrigidos e não corrigidos para a SRAM no chip e para a memória do dispositivo Neuron no nó. Unidade: Contagem  | 

## Métricas do AWS Elastic Fabric Adapter (EFA)
<a name="Container-Insights-metrics-EFA"></a>

A partir da versão `1.300037.0` do agente do CloudWatch, o Container Insights com observabilidade aprimorada para o Amazon EKS coleta métricas do AWS Elastic Fabric Adapter (EFA) de clusters do Amazon EKS em instâncias do Linux. O agente do CloudWatch deve ser instalado usando o complemento Observability do CloudWatch para o EKS na versão `v1.5.2-eksbuild.1` ou em versões posteriores. Para obter mais informações sobre o complemento, consulte [Instalação do agente do CloudWatch com o complemento de observabilidade do EKS do Amazon CloudWatch ou com o chart do Helm](install-CloudWatch-Observability-EKS-addon.md). Para obter mais informações sobre o AWS Elastic Fabric Adapter, consulte [Elastic Fabric Adapter](https://aws.amazon.com/hpc/efa/).

Para que o Container Insights colete métricas do AWS Elastic Fabric Adapter, você deve atender aos seguintes pré-requisitos:
+ Você deve usar o Container Insights com observabilidade aprimorada para o Amazon EKS, com o complemento Observability do Amazon CloudWatch para o EKS na versão `v1.5.2-eksbuild.1` ou em versões posteriores.
+ O plug-in do dispositivo EFA deve estar instalado no cluster. Para obter mais informações, consulte [aws-efa-k8s-device-plugin](https://github.com/aws/eks-charts/tree/master/stable/aws-efa-k8s-device-plugin) no GitHub.

As métricas que são coletadas estão listadas na tabela apresentada a seguir. 


| Nome da métrica | Dimensões | Descrição | 
| --- | --- | --- | 
|  `container_efa_rx_bytes` |  `ClusterName` `ClusterName`, `Namespace`, `PodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName`, `NetworkInterfaceId`   |  O número de bytes por segundo que são recebidos pelos dispositivos EFA que estão alocados para o contêiner. Unidade: bytes/segundo  | 
|  `container_efa_tx_bytes` |  `ClusterName` `ClusterName`, `Namespace`, `PodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName`, `NetworkInterfaceId`   |  O número de bytes por segundo que são transmitidos pelos dispositivos EFA que estão alocados para o contêiner. Unidade: bytes/segundo  | 
|  `container_efa_rx_dropped` |  `ClusterName` `ClusterName`, `Namespace`, `PodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName`, `NetworkInterfaceId`   |  O número de pacotes que foram recebidos e, em seguida, descartados pelos dispositivos EFA que estão alocados para o contêiner. Unidade: contagem/segundo  | 
|  `container_efa_rdma_read_bytes` |  `ClusterName` `ClusterName`, `Namespace`, `PodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName`, `NetworkInterfaceId`   |  O número de bytes por segundo recebidos usando operações de leitura de acesso remoto direto à memória pelos dispositivos EFA que estão alocados para o contêiner. Unidade: bytes/segundo  | 
|  `container_efa_rdma_write_bytes` |  `ClusterName` `ClusterName`, `Namespace`, `PodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName`, `NetworkInterfaceId`   |  O número de bytes por segundo transmitidos usando operações de leitura de acesso remoto direto à memória pelos dispositivos EFA que estão alocados para o contêiner. Unidade: bytes/segundo  | 
|  `container_efa_rdma_write_recv_bytes` |  `ClusterName` `ClusterName`, `Namespace`, `PodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `ContainerName`, `NetworkInterfaceId`   |  O número de bytes por segundo recebidos durante operações de gravação de acesso remoto direto à memória pelos dispositivos EFA que estão alocados para o contêiner. Unidade: bytes/segundo  | 
|  `pod_efa_rx_bytes` |  `ClusterName` `ClusterName`, `Namespace` `ClusterName`, `Namespace`, `Service` `ClusterName`, `Namespace`, `PodName` `ClusterName`, `Namespace`, `PodName`, `FullPodName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `NetworkInterfaceId`  |  O número de bytes por segundo que são recebidos pelos dispositivos EFA que estão alocados para o pod. Unidade: bytes/segundo  | 
|  `pod_efa_tx_bytes` |  `ClusterName` `ClusterName`, `Namespace` `ClusterName`, `Namespace`, `Service` `ClusterName`, `Namespace`, `PodName` `ClusterName`, `Namespace`, `PodName`, `FullPodName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `NetworkInterfaceId`  |  O número de bytes por segundo que são transmitidos pelos dispositivos EFA que estão alocados para o pod. Unidade: bytes/segundo  | 
|  `pod_efa_rx_dropped` |  `ClusterName` `ClusterName`, `Namespace` `ClusterName`, `Namespace`, `Service` `ClusterName`, `Namespace`, `PodName` `ClusterName`, `Namespace`, `PodName`, `FullPodName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `NetworkInterfaceId`  |  O número de pacotes que foram recebidos e, em seguida, descartados pelos dispositivos EFA alocados para o pod. Unidade: contagem/segundo  | 
|  `pod_efa_rdma_read_bytes` |  `ClusterName` `ClusterName`, `Namespace` `ClusterName`, `Namespace`, `Service` `ClusterName`, `Namespace`, `PodName` `ClusterName`, `Namespace`, `PodName`, `FullPodName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `NetworkInterfaceId`  |  O número de bytes por segundo recebidos usando operações de leitura de acesso remoto direto à memória pelos dispositivos EFA que estão alocados para o pod. Unidade: bytes/segundo  | 
|  `pod_efa_rdma_write_bytes` |  `ClusterName` `ClusterName`, `Namespace` `ClusterName`, `Namespace`, `Service` `ClusterName`, `Namespace`, `PodName` `ClusterName`, `Namespace`, `PodName`, `FullPodName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `NetworkInterfaceId`  |  O número de bytes por segundo transmitidos usando operações de leitura de acesso remoto direto à memória pelos dispositivos EFA que estão alocados para o pod. Unidade: bytes/segundo  | 
|  `pod_efa_rdma_write_recv_bytes` |  `ClusterName` `ClusterName`, `Namespace` `ClusterName`, `Namespace`, `Service` `ClusterName`, `Namespace`, `PodName` `ClusterName`, `Namespace`, `PodName`, `FullPodName` `ClusterName`, `Namespace`, `PodName`, `FullPodName`, `NetworkInterfaceId`  |  O número de bytes por segundo recebidos durante operações de gravação de acesso remoto direto à memória pelos dispositivos EFA que estão alocados para o pod. Unidade: bytes/segundo  | 
|  `node_efa_rx_bytes` |  `ClusterName` `ClusterName`, `InstanceId`, `NodeName` `ClusterName`, `InstanceId`, `InstanceType`, `NodeName`, `NetworkInterfaceId`  |  O número de bytes por segundo que são recebidos pelos dispositivos EFA que estão alocados para o nó. Unidade: bytes/segundo  | 
|  `node_efa_tx_bytes` |  `ClusterName` `ClusterName`, `InstanceId`, `NodeName` `ClusterName`, `InstanceId`, `InstanceType`, `NodeName`, `NetworkInterfaceId`  |  O número de bytes por segundo que são transmitidos pelos dispositivos EFA que estão alocados para o nó. Unidade: bytes/segundo  | 
|  `node_efa_rx_dropped` |  `ClusterName` `ClusterName`, `InstanceId`, `NodeName` `ClusterName`, `InstanceId`, `InstanceType`, `NodeName`, `NetworkInterfaceId`  |  O número de pacotes que foram recebidos e, em seguida, descartados pelos dispositivos EFA que estão alocados para o nó. Unidade: contagem/segundo  | 
|  `node_efa_rdma_read_bytes` |  `ClusterName` `ClusterName`, `InstanceId`, `NodeName` `ClusterName`, `InstanceId`, `InstanceType`, `NodeName`, `NetworkInterfaceId`  |  O número de bytes por segundo recebidos usando operações de leitura de acesso remoto direto à memória pelos dispositivos EFA que estão alocados para o nó. Unidade: bytes/segundo  | 
|  `node_efa_rdma_write_bytes` |  `ClusterName` `ClusterName`, `InstanceId`, `NodeName` `ClusterName`, `InstanceId`, `InstanceType`, `NodeName`, `NetworkInterfaceId`  |  O número de bytes por segundo transmitidos usando operações de leitura de acesso remoto direto à memória pelos dispositivos EFA que estão alocados para o pod. Unidade: bytes/segundo  | 
|  `node_efa_rdma_write_recv_bytes` |  `ClusterName` `ClusterName`, `InstanceId`, `NodeName` `ClusterName`, `InstanceId`, `InstanceType`, `NodeName`, `NetworkInterfaceId`  |  O número de bytes por segundo recebidos durante operações de gravação de acesso remoto direto à memória pelos dispositivos EFA que estão alocados para o nó. Unidade: bytes/segundo  | 

## Métricas do Amazon SageMaker AI HyperPod
<a name="Container-Insights-metrics-Sagemaker-HyperPod"></a>

A partir da versão `v2.0.1-eksbuild.1` do complemento CloudWatch Observability do EKS, o Container Insights com observabilidade aprimorada para o Amazon EKS coleta automaticamente as métricas do Amazon SageMaker AI HyperPod de clusters do Amazon EKS. Para obter mais informações sobre o complemento, consulte [Instalação do agente do CloudWatch com o complemento de observabilidade do EKS do Amazon CloudWatch ou com o chart do Helm](install-CloudWatch-Observability-EKS-addon.md). Para obter mais informações sobre o Amazon SageMaker AI HyperPod, consulte [Amazon SageMaker AI HyperPod](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks.html).

As métricas que são coletadas estão listadas na tabela apresentada a seguir. 


| Nome da métrica | Dimensões | Descrição | 
| --- | --- | --- | 
|  `hyperpod_node_health_status_unschedulable` |  `ClusterName` `ClusterName`, `InstanceId`, `NodeName`  |  Indica se um nó está rotulado como `Unschedulable` pelo Amazon SageMaker AI HyperPod. Isso significa que o nó está executando verificações de integridade aprofundadas e não está disponível para executar workloads. Unidade: Contagem  | 
|  `hyperpod_node_health_status_schedulable` |  `ClusterName` `ClusterName`, `InstanceId`, `NodeName`  |  Indica se um nó está rotulado como `Schedulable` pelo Amazon SageMaker AI HyperPod. Isso significa que o nó foi aprovado em verificações de integridade básicas ou em verificações de integridade aprofundadas e está disponível para executar workloads. Unidade: Contagem  | 
|  `hyperpod_node_health_status_unschedulable_pending_replacement` |  `ClusterName` `ClusterName`, `InstanceId`, `NodeName`  |  Indica se um nó está rotulado como `UnschedulablePendingReplacement` pelo HyperPod. Isso significa que o nó não foi aprovado em verificações de integridade aprofundadas ou em verificações do agente de monitoramento de integridade e precisa ser substituído. Se a recuperação automática de nó estiver habilitada, o nó será automaticamente substituído pelo Amazon SageMaker AI HyperPod. Unidade: Contagem  | 
|  `hyperpod_node_health_status_unschedulable_pending_reboot` |  `ClusterName` `ClusterName`, `InstanceId`, `NodeName`  |  Indica se um nó está rotulado como `UnschedulablePendingReboot` pelo Amazon SageMaker AI HyperPod. Isso significa que o nó está passando por verificações de integridade aprofundadas e precisa ser reiniciado. Se a recuperação automática de nó estiver habilitada, o nó será automaticamente reinicializado pelo Amazon SageMaker AI HyperPod. Unidade: Contagem  | 

## Métricas do driver do Amazon EBS NVMe
<a name="Container-Insights-metrics-EBS"></a>

A partir da versão ` 1.300056.0` do agente do CloudWatch, o Container Insights com observabilidade aprimorada para o Amazon EKS coleta automaticamente métricas do driver do Amazon EBS NVMe de clusters do Amazon EKS em instâncias do Linux. O agente do CloudWatch deve ser instalado por meio do complemento CloudWatch Observability para Amazon EKS na versão `4.1.0` ou em versões posteriores. Para obter mais informações sobre o complemento, consulte [Instalação do agente do CloudWatch com o complemento de observabilidade do EKS do Amazon CloudWatch ou com o chart do Helm](install-CloudWatch-Observability-EKS-addon.md). Para obter mais informações sobre o Amazon EBS, consulte [Estatísticas de performance detalhadas do Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/nvme-detailed-performance-stats.html).

Para que o Container Insights colete métricas do driver do Amazon EBS NVMe, é necessário atender aos seguintes pré-requisitos:
+ Você deve usar o Container Insights com observabilidade aprimorada para o Amazon EKS e o complemento CloudWatch Observability para Amazon EKS na versão `4.1.0` ou posterior.
+ O complemento `1.42.0` do driver do EBS CSI ou o chart do Helm devem ser instalados no cluster com as métricas habilitadas.
  + Para habilitar as métricas ao usar o complemento do driver do Amazon EBS CSI, use a opção a seguir ao criar ou atualizar o complemento. `--configuration-values '{ "node": { "enableMetrics": true } }'`
  + Para habilitar as métricas, caso esteja usando o chart do Helm, use a opção a seguir ao criar ou atualizar o complemento. `--set node.enableMetrics=true`

As métricas que são coletadas estão listadas na tabela apresentada a seguir. 


| Nome da métrica | Dimensões | Descrição | 
| --- | --- | --- | 
|  `node_diskio_ebs_total_read_ops` |  `ClusterName` `ClusterName`, `NodeName`, `InstanceId` `ClusterName`, `NodeName`, `InstanceId` `VolumeId`  | O número total de operações de leitura concluídas. | 
|  `node_diskio_ebs_total_write_ops` |  `ClusterName` `ClusterName`, `NodeName`, `InstanceId` `ClusterName`, `NodeName`, `InstanceId` `VolumeId`  | O número total de operações de gravação concluídas. | 
|  `node_diskio_ebs_total_read_bytes` |  `ClusterName` `ClusterName`, `NodeName`, `InstanceId` `ClusterName`, `NodeName`, `InstanceId` `VolumeId`  | O número total de bytes de leitura transferidos. | 
|  `node_diskio_ebs_total_write_bytes` |  `ClusterName` `ClusterName`, `NodeName`, `InstanceId` `ClusterName`, `NodeName`, `InstanceId` `VolumeId`  | O número total de bytes de gravação transferidos. | 
|  `node_diskio_ebs_total_read_time` |  `ClusterName` `ClusterName`, `NodeName`, `InstanceId` `ClusterName`, `NodeName`, `InstanceId` `VolumeId`  | O tempo total gasto, em microssegundos, por todas as operações de leitura concluídas. | 
|  `node_diskio_ebs_total_write_time` |  `ClusterName` `ClusterName`, `NodeName`, `InstanceId` `ClusterName`, `NodeName`, `InstanceId` `VolumeId`  | O tempo total gasto, em microssegundos, por todas as operações de gravação concluídas. | 
|  `node_diskio_ebs_volume_performance_exceeded_iops` |  `ClusterName` `ClusterName`, `NodeName`, `InstanceId` `ClusterName`, `NodeName`, `InstanceId` `VolumeId`  | O tempo total, em microssegundos, em que a demanda de IOPS excedeu a performance das IOPS provisionadas do volume. | 
|  `node_diskio_ebs_volume_performance_exceeded_tp` |  `ClusterName` `ClusterName`, `NodeName`, `InstanceId` `ClusterName`, `NodeName`, `InstanceId` `VolumeId`  | O tempo total, em microssegundos, em que a demanda de throughput excedeu a performance do throughput provisionado. | 
|  `node_diskio_ebs_ec2_instance_performance_exceeded_iops` |  `ClusterName` `ClusterName`, `NodeName`, `InstanceId` `ClusterName`, `NodeName`, `InstanceId` `VolumeId`  | O tempo total, em microssegundos, em que o volume do EBS excedeu a performance máxima de IOPS da instância do Amazon EC2 conectada. | 
|  `node_diskio_ebs_ec2_instance_performance_exceeded_tp` |  `ClusterName` `ClusterName`, `NodeName`, `InstanceId` `ClusterName`, `NodeName`, `InstanceId` `VolumeId`  | O tempo total, em microssegundos, em que o volume do EBS excedeu a performance máxima de throughput da instância do Amazon EC2 conectada. | 
|  `node_diskio_ebs_volume_queue_length` |  `ClusterName` `ClusterName`, `NodeName`, `InstanceId` `ClusterName`, `NodeName`, `InstanceId` `VolumeId`  | O número de solicitações de operação de leitura e gravação aguardando conclusão. | 

# Métricas do Container Insights do Amazon EKS e do Kubernetes
<a name="Container-Insights-metrics-EKS"></a>

As tabelas a seguir listam as métricas e as dimensões que o Container Insights coleta para o Amazon EKS e Kubernetes. Essas métricas estão no namespace `ContainerInsights`. Para obter mais informações, consulte [Métricas](cloudwatch_concepts.md#Metric).

Se você não vir as métricas do Container Insights no seu console, certifique-se de que você tenha concluído a configuração do Container Insights. As métricas não serão exibidas até que o Container Insights tenha sido configurado completamente. Para obter mais informações, consulte [Configurar o Container Insights](deploy-container-insights.md).


| Nome da métrica | Dimensões | Descrição | 
| --- | --- | --- | 
|  `cluster_failed_node_count`  |  `ClusterName`  |  O número de nós do operador com falha no cluster. Um nó é considerado com falha quando apresenta qualquer *condição de nó*. Para obter mais informações, consulte [Condições](https://kubernetes.io/docs/concepts/architecture/nodes/#condition) na documentação do Kubernetes.  | 
|  `cluster_node_count`  |  `ClusterName`  |  O número total de nós do operador no cluster.  | 
|  `namespace_number_of_running_pods`  |  `Namespace` `ClusterName` `ClusterName`  |  O número de pods em execução por namespace no recurso especificado pelas dimensões que você está usando.  | 
|  `node_cpu_limit`  |  `ClusterName`   |  O número máximo de unidades de CPU que pode ser atribuído a um único nó neste cluster.  | 
|  `node_cpu_reserved_capacity`  |  `NodeName`, `ClusterName`, `InstanceId` `ClusterName`  |  A porcentagem de unidades de CPU reservadas para componentes do nó, como kubelet, kube-proxy e Docker. Fórmula: `node_cpu_request / node_cpu_limit`  `node_cpu_request` não é relatado diretamente como uma métrica, mas é um campo em eventos de log de performance. Para obter mais informações, consulte [Campos relevantes nos eventos de log de performance para Amazon EKS e Kubernetes](Container-Insights-reference-performance-entries-EKS.md).    | 
|  `node_cpu_usage_total`  |  `ClusterName`  |  O número de unidades da CPU que está sendo usado nos nós do cluster.  | 
|  `node_cpu_utilization`  |  `NodeName`, `ClusterName`, `InstanceId` `ClusterName`  |  A porcentagem total de unidades de CPU que está sendo usada nos nós do cluster. Fórmula: `node_cpu_usage_total / node_cpu_limit`  | 
|  `node_gpu_limit` |  `ClusterName` `ClusterName`, `InstanceId`, `NodeName`  |  O número total de GPUs disponíveis no nó.  | 
|  `node_gpu_usage_total` |  `ClusterName` `ClusterName`, `InstanceId`, `NodeName`  |  O número de GPUs em uso pelos pods em execução no nó.  | 
|  `node_gpu_reserved_capacity` |  `ClusterName` `ClusterName`, `InstanceId`, `NodeName`  |  A porcentagem de GPU atualmente em reserva no nó. A fórmula é `node_gpu_request / node_gpu_limit`.  `node_gpu_request` não é relatado diretamente como uma métrica, mas é um campo em eventos de log de performance. Para obter mais informações, consulte [Campos relevantes nos eventos de log de performance para Amazon EKS e Kubernetes](Container-Insights-reference-performance-entries-EKS.md).   | 
|  `node_filesystem_utilization`  |  `NodeName`, `ClusterName`, `InstanceId` `ClusterName`  |  A porcentagem total da capacidade do sistema de arquivos que está sendo usado nos nós do cluster. Fórmula: `node_filesystem_usage / node_filesystem_capacity`  `node_filesystem_usage` e `node_filesystem_capacity` não são relatados diretamente como métricas, mas são campos em eventos de log de performance. Para obter mais informações, consulte [Campos relevantes nos eventos de log de performance para Amazon EKS e Kubernetes](Container-Insights-reference-performance-entries-EKS.md).    | 
|  `node_memory_limit`  |  `ClusterName`  |  A quantidade máxima de memória, em bytes, que pode ser atribuída a um único nó neste cluster.  | 
|  `node_memory_reserved_capacity`  |  `NodeName`, `ClusterName`, `InstanceId` `ClusterName`  |  A porcentagem de memória que está sendo usada no momento nos nós do cluster. Fórmula: `node_memory_request / node_memory_limit`  `node_memory_request` não é relatado diretamente como uma métrica, mas é um campo em eventos de log de performance. Para obter mais informações, consulte [Campos relevantes nos eventos de log de performance para Amazon EKS e Kubernetes](Container-Insights-reference-performance-entries-EKS.md).    | 
|  `node_memory_utilization`  |  `NodeName`, `ClusterName`, `InstanceId` `ClusterName`  |  A porcentagem de memória que está sendo usada no momento pelo nó ou nós. É o percentual de uso de memória de nó dividido pela limitação de memória de nó. Fórmula: `node_memory_working_set / node_memory_limit`.   | 
|  `node_memory_working_set`  |  `ClusterName`   |  A quantidade de memória, em bytes, sendo usada no conjunto de trabalho dos nós no cluster.  | 
|  `node_network_total_bytes`  |  `NodeName`, `ClusterName`, `InstanceId` `ClusterName`  |  O número total de bytes transmitidos e recebidos por segundo pela rede por nó em um cluster. Fórmula: `node_network_rx_bytes + node_network_tx_bytes`  `node_network_rx_bytes` e `node_network_tx_bytes` não são relatados diretamente como métricas, mas são campos em eventos de log de performance. Para obter mais informações, consulte [Campos relevantes nos eventos de log de performance para Amazon EKS e Kubernetes](Container-Insights-reference-performance-entries-EKS.md).    | 
|  `node_number_of_running_containers`  |  `NodeName`, `ClusterName`, `InstanceId` `ClusterName`  |  O número de contêineres em execução por nó em um cluster.  | 
|  `node_number_of_running_pods`  |  `NodeName`, `ClusterName`, `InstanceId` `ClusterName`  |  O número de pods em execução por nó em um cluster.  | 
|  `pod_cpu_reserved_capacity`  |  `PodName`, `Namespace`, `ClusterName` `ClusterName`  |  A capacidade da CPU reservada por pod em um cluster. Fórmula: `pod_cpu_request / node_cpu_limit`  `pod_cpu_request` não é relatado diretamente como uma métrica, mas é um campo em eventos de log de performance. Para obter mais informações, consulte [Campos relevantes nos eventos de log de performance para Amazon EKS e Kubernetes](Container-Insights-reference-performance-entries-EKS.md).    | 
|  `pod_cpu_utilization`  |  `PodName`, `Namespace`, `ClusterName` `Namespace`, `ClusterName` `Service`, `Namespace`, `ClusterName` `ClusterName`  |  A porcentagem de unidades de CPU que estão sendo usadas por pods. Fórmula: `pod_cpu_usage_total / node_cpu_limit`  | 
|  `pod_cpu_utilization_over_pod_limit`  |  `PodName`, `Namespace`, `ClusterName` `Namespace`, `ClusterName` `Service`, `Namespace`, `ClusterName` `ClusterName`  |  O percentual das unidades de CPU que estão sendo usadas por pods com relação ao limite de pods. Fórmula: `pod_cpu_usage_total / pod_cpu_limit`  | 
|  `pod_gpu_request` |  `ClusterName` `ClusterName`, `Namespace`, `PodName` `ClusterName`, `FullPodName`, `Namespace`, `PodName`  |  As solicitações de GPU para o pod. Esse valor deve ser sempre igual a `pod_gpu_limit`.  | 
|  `pod_gpu_limit` |  `ClusterName` `ClusterName`, `Namespace`, `PodName` `ClusterName`, `FullPodName`, `Namespace`, `PodName`  |  O número máximo de GPUs que podem ser atribuídas ao pod em um nó.  | 
|  `pod_gpu_usage_total` |  `ClusterName` `ClusterName`, `Namespace`, `PodName` `ClusterName`, `FullPodName`, `Namespace`, `PodName`  |  O número de GPUs que estão sendo alocadas no pod.  | 
|  `pod_gpu_reserved_capacity` |  `ClusterName` `ClusterName`, `Namespace`, `PodName` `ClusterName`, `FullPodName`, `Namespace`, `PodName`  |  A porcentagem de GPU atualmente em reserva para o pod. A fórmula é - pod\$1gpu\$1request / node\$1gpu\$1reserved\$1capacity.  | 
|  `pod_memory_reserved_capacity`  |  `PodName`, `Namespace`, `ClusterName` `ClusterName`  |  A porcentagem de memória reservada para pods. Fórmula: `pod_memory_request / node_memory_limit`  `pod_memory_request` não é relatado diretamente como uma métrica, mas é um campo em eventos de log de performance. Para obter mais informações, consulte [Campos relevantes nos eventos de log de performance para Amazon EKS e Kubernetes](Container-Insights-reference-performance-entries-EKS.md).    | 
|  `pod_memory_utilization`  |  `PodName`, `Namespace`, `ClusterName` `Namespace`, `ClusterName` `Service`, `Namespace`, `ClusterName` `ClusterName`  |  A porcentagem de memória que está sendo usada atualmente pelo pod ou pods. Fórmula: `pod_memory_working_set / node_memory_limit`  | 
|  `pod_memory_utilization_over_pod_limit`  |  `PodName`, `Namespace`, `ClusterName` `Namespace`, `ClusterName` `Service`, `Namespace`, `ClusterName` `ClusterName`  |  O percentual de memória que está sendo usada por pods com relação ao limite de pods. Se qualquer contêiner no pod não tiver um limite de memória definido, essa métrica não aparecerá. Fórmula: `pod_memory_working_set / pod_memory_limit`  | 
|  `pod_network_rx_bytes`  |  `PodName`, `Namespace`, `ClusterName` `Namespace`, `ClusterName` `Service`, `Namespace`, `ClusterName` `ClusterName`  |  O número de bytes que estão sendo recebidos por segundo na rede pelo pod. Fórmula: `sum(pod_interface_network_rx_bytes)`  `pod_interface_network_rx_bytes` não é relatado diretamente como uma métrica, mas é um campo em eventos de log de performance. Para obter mais informações, consulte [Campos relevantes nos eventos de log de performance para Amazon EKS e Kubernetes](Container-Insights-reference-performance-entries-EKS.md).    | 
|  `pod_network_tx_bytes`  |  `PodName`, `Namespace`, `ClusterName` `Namespace`, `ClusterName` `Service`, `Namespace`, `ClusterName` `ClusterName`  |  O número de bytes que estão sendo transmitidos por segundo na rede pelo pod. Fórmula: `sum(pod_interface_network_tx_bytes)`  `pod_interface_network_tx_bytes` não é relatado diretamente como uma métrica, mas é um campo em eventos de log de performance. Para obter mais informações, consulte [Campos relevantes nos eventos de log de performance para Amazon EKS e Kubernetes](Container-Insights-reference-performance-entries-EKS.md).    | 
|  `pod_number_of_container_restarts`  |  `PodName`, `Namespace`, `ClusterName`  |  O número total de reinicializações de contêineres em um pod.  | 
|  `service_number_of_running_pods`  |  `Service`, `Namespace`, `ClusterName` `ClusterName`  |  O número de pods que executam o serviço ou os serviços no cluster.  | 

## Métricas do Kueue
<a name="Container-Insights-metrics-Kueue"></a>

A partir da versão `v2.4.0-eksbuild.1` do complemento CloudWatch Observability EKS, o Container Insights para Amazon EKS coleta automaticamente as métricas do Kueue de clusters do Amazon EKS. Para obter mais informações sobre o complemento, consulte [Instalação do agente do CloudWatch com o complemento de observabilidade do EKS do Amazon CloudWatch ou com o chart do Helm](install-CloudWatch-Observability-EKS-addon.md).

Para obter informações sobre como habilitar as métricas, consulte [Habilitar métricas do Kueue](install-CloudWatch-Observability-EKS-addon.md#enable-Kueue-metrics) para habilitá-las.

As métricas do Kueue que são coletadas estão listadas na tabela apresentada a seguir. Essas métricas são publicadas no namespace `ContainerInsights/Prometheus` do CloudWatch. Para filtrar essas métricas, use as seguintes dimensões:
+ `ClusterQueue` é o nome do ClusterQueue
+ Os valores possíveis de `Status` são `active` e `inadmissible`
+ Os valores possíveis de `Reason` são `Preempted`, `PodsReadyTimeout`, `AdmissionCheck`, `ClusterQueueStopped` e `InactiveWorkload`
+ `Flavor` é o qualificador referenciado.
+ `Resource` refere-se aos recursos do computador do cluster, como `cpu`, `memory`, `gpu` etc. 


| Nome da métrica | Dimensões | Descrição | 
| --- | --- | --- | 
|  `kueue_pending_workloads` |  `ClusterName`, `ClusterQueue`, `Status` `ClusterName`, `ClusterQueue` `ClusterName`, `Status` `ClusterName`  |  O número de workloads pendentes.  | 
|  `kueue_evicted_workloads_total` |  `ClusterName`, `ClusterQueue`, `Reason` `ClusterName`, `ClusterQueue` `ClusterName`, `Reason` `ClusterName`  |  O número total de workloads removidas.  | 
|  `kueue_admitted_active_workloads` |  `ClusterName`, `ClusterQueue` `ClusterName`  |  O número de workloads admitidas que estão ativas (não suspensas e não concluídas).  | 
|  `kueue_cluster_queue_resource_usage` |  `ClusterName`, `ClusterQueue`, `Resource`, `Flavor` `ClusterName`, `ClusterQueue`, `Resource` `ClusterName`, `ClusterQueue`, `Flavor` `ClusterName`, `ClusterQueue` `ClusterName`  |  Relata o uso total de recursos do ClusterQueue.  | 
|  `kueue_cluster_queue_nominal_quota` |  `ClusterName`, `ClusterQueue`, `Resource`, `Flavor` `ClusterName`, `ClusterQueue`, `Resource` `ClusterName`, `ClusterQueue`, `Flavor` `ClusterName`, `ClusterQueue` `ClusterName`  |  Relata a cota de recursos do ClusterQueue.  | 

# Referência do log de performance do Container Insights
<a name="Container-Insights-reference"></a>

Esta seção contém informações de referência sobre como o Container Insights usa eventos de log de performance para coletar métricas. Quando você implanta o Container Insights, ele cria automaticamente um grupo de logs para os eventos do log de performance. Você não precisa criar esse grupo de logs sozinho.

**Topics**
+ [Eventos de log de performance do Container Insights para Amazon ECS](Container-Insights-reference-performance-logs-ECS.md)
+ [Eventos do log de performance do Container Insights para Amazon EKS e Kubernetes](Container-Insights-reference-performance-logs-EKS.md)
+ [Campos relevantes nos eventos de log de performance para Amazon EKS e Kubernetes](Container-Insights-reference-performance-entries-EKS.md)

# Eventos de log de performance do Container Insights para Amazon ECS
<a name="Container-Insights-reference-performance-logs-ECS"></a>

Veja a seguir exemplos dos eventos de log de performance que o Container Insights coleta do Amazon ECS.

Esses logs estão no CloudWatch Logs, em um grupo de logs chamado `/aws/ecs/containerinsights/CLUSTER_NAME/performance`. Dentro desse grupo de logs, cada instância de contêiner terá um fluxo de logs chamado `AgentTelemetry-CONTAINER_INSTANCE_ID`.

É possível consultar esses logs usando consultas como `{ $.Type = "Container" }` para visualizar todos os eventos do log de contêiner. 

**Tipo: Container**

```
{
	"Version":"0",
	"Type":"Container",
	"ContainerName":"sleep",
	"TaskId":"7ac4dfba69214411b4783a3b8189c9ba",
	"TaskDefinitionFamily":"sleep360",
	"TaskDefinitionRevision":"1",
	"ContainerInstanceId":"0d7650e6dec34c1a9200f72098071e8f",
	"EC2InstanceId":"i-0c470579dbcdbd2f3",
	"ClusterName":"MyCluster",
	"Image":"busybox",
	"ContainerKnownStatus":"RUNNING",
	"Timestamp":1623963900000,
	"CpuUtilized":0.0,
	"CpuReserved":10.0,
	"MemoryUtilized":0,
	"MemoryReserved":10,
	"StorageReadBytes":0,
	"StorageWriteBytes":0,
	"NetworkRxBytes":0,
	"NetworkRxDropped":0,
	"NetworkRxErrors":0,
	"NetworkRxPackets":14,
	"NetworkTxBytes":0,
	"NetworkTxDropped":0,
	"NetworkTxErrors":0,
	"NetworkTxPackets":0
}
```

**Tipo: tarefa**

Embora as unidades para `StorageReadBytes` e `StorageWriteBytes` sejam expressas em Bytes por segundo, os valores representam, respectivamente, o valor total acumulado de bytes lidos e gravados no armazenamento. 

```
{
    "Version": "0",
    "Type": "Task",
    "TaskId": "7ac4dfba69214411b4783a3b8189c9ba",
    "TaskDefinitionFamily": "sleep360",
    "TaskDefinitionRevision": "1",
    "ContainerInstanceId": "0d7650e6dec34c1a9200f72098071e8f",
    "EC2InstanceId": "i-0c470579dbcdbd2f3",
    "ClusterName": "MyCluster",
    "AccountID": "637146863587",
    "Region": "us-west-2",
    "AvailabilityZone": "us-west-2b",
    "KnownStatus": "RUNNING",
    "LaunchType": "EC2",
    "PullStartedAt": 1623963608201,
    "PullStoppedAt": 1623963610065,
    "CreatedAt": 1623963607094,
    "StartedAt": 1623963610382,
    "Timestamp": 1623963900000,
    "CpuUtilized": 0.0,
    "CpuReserved": 10.0,
    "MemoryUtilized": 0,
    "MemoryReserved": 10,
    "StorageReadBytes": 0,
    "StorageWriteBytes": 0,
    "NetworkRxBytes": 0,
    "NetworkRxDropped": 0,
    "NetworkRxErrors": 0,
    "NetworkRxPackets": 14,
    "NetworkTxBytes": 0,
    "NetworkTxDropped": 0,
    "NetworkTxErrors": 0,
    "NetworkTxPackets": 0,
    "EBSFilesystemUtilized": 10,
    "EBSFilesystemSize": 20,
    "CloudWatchMetrics": [
        {
            "Namespace": "ECS/ContainerInsights",
            "Metrics": [
                {
                    "Name": "CpuUtilized",
                    "Unit": "None"
                },
                {
                    "Name": "CpuReserved",
                    "Unit": "None"
                },
                {
                    "Name": "MemoryUtilized",
                    "Unit": "Megabytes"
                },
                {
                    "Name": "MemoryReserved",
                    "Unit": "Megabytes"
                },
                {
                    "Name": "StorageReadBytes",
                    "Unit": "Bytes/Second"
                },
                {
                    "Name": "StorageWriteBytes",
                    "Unit": "Bytes/Second"
                },
                {
                    "Name": "NetworkRxBytes",
                    "Unit": "Bytes/Second"
                },
                {
                    "Name": "NetworkTxBytes",
                    "Unit": "Bytes/Second"
                },
                {
                    "Name": "EBSFilesystemSize",
                    "Unit": "Gigabytes"
                },
                {
                    "Name": "EBSFilesystemUtilzed",
                    "Unit": "Gigabytes"
                }
            ],
            "Dimensions": [
                ["ClusterName"],
                [
                    "ClusterName",
                    "TaskDefinitionFamily"
                ]
            ]
        }
    ]
}
```

**Tipo: Service**

```
{   
    "Version": "0",
    "Type": "Service",
    "ServiceName": "myCIService",
    "ClusterName": "myCICluster",
    "Timestamp": 1561586460000,
    "DesiredTaskCount": 2,
    "RunningTaskCount": 2,
    "PendingTaskCount": 0,
    "DeploymentCount": 1,
    "TaskSetCount": 0,
    "CloudWatchMetrics": [
        {
            "Namespace": "ECS/ContainerInsights",
            "Metrics": [
                {
                    "Name": "DesiredTaskCount",
                    "Unit": "Count"
                },
                {
                    "Name": "RunningTaskCount",
                    "Unit": "Count"
                },
                {
                    "Name": "PendingTaskCount",
                    "Unit": "Count"
                },
                {
                    "Name": "DeploymentCount",
                    "Unit": "Count"
                },
                {
                    "Name": "TaskSetCount",
                    "Unit": "Count"
                }
            ],
            "Dimensions": [
                [
                    "ServiceName",
                    "ClusterName"
                ]
            ]
        }
    ]
}
```

**Tipo: volume**

```
{
    "Version": "0",
    "Type": "Volume",
    "TaskDefinitionFamily": "myCITaskDef",
    "TaskId": "7ac4dfba69214411b4783a3b8189c9ba",
    "ClusterName": "myCICluster",
    "ServiceName": "myCIService",
    "VolumeId": "vol-1233436545ff708cb",
    "InstanceId": "i-0c470579dbcdbd2f3",
    "LaunchType": "EC2",
    "VolumeName": "MyVolumeName",
    "EBSFilesystemUtilized": 10,
    "EBSFilesystemSize": 20,
    "CloudWatchMetrics": [
        {
            "Namespace": "ECS/ContainerInsights",
            "Metrics": [
                {
                    "Name": "EBSFilesystemSize",
                    "Unit": "Gigabytes"
                },
                {
                    "Name": "EBSFilesystemUtilzed",
                    "Unit": "Gigabytes"
                }
            ],
            "Dimensions": [
                ["ClusterName"],
                [
                    "VolumeName",
                    "TaskDefinitionFamily",
                    "ClusterName"
                ],
                [
                    "ServiceName",
                    "ClusterName"
                ]
            ]
        }
    ]
}
```

**Tipo: Cluster**

```
{
    "Version": "0",
    "Type": "Cluster",
    "ClusterName": "myCICluster",
    "Timestamp": 1561587300000,
    "TaskCount": 5,
    "ContainerInstanceCount": 5,
    "ServiceCount": 2,
    "CloudWatchMetrics": [
        {
            "Namespace": "ECS/ContainerInsights",
            "Metrics": [
                {
                    "Name": "TaskCount",
                    "Unit": "Count"
                },
                {
                    "Name": "ContainerInstanceCount",
                    "Unit": "Count"
                },
                {
                    "Name": "ServiceCount",
                    "Unit": "Count"
                }
            ],
            "Dimensions": [
                [
                    "ClusterName"
                ]
            ]
        }
    ]
}
```

# Eventos do log de performance do Container Insights para Amazon EKS e Kubernetes
<a name="Container-Insights-reference-performance-logs-EKS"></a>

Veja a seguir exemplos dos eventos de log de performance que o Container Insights coleta dos clusters do Amazon EKS e do Kubernetes.

**Tipo: Node**

```
{
  "AutoScalingGroupName": "eksctl-myCICluster-nodegroup-standard-workers-NodeGroup-1174PV2WHZAYU",
  "CloudWatchMetrics": [
    {
      "Metrics": [
        {
          "Unit": "Percent",
          "Name": "node_cpu_utilization"
        },
        {
          "Unit": "Percent",
          "Name": "node_memory_utilization"
        },
        {
          "Unit": "Bytes/Second",
          "Name": "node_network_total_bytes"
        },
        {
          "Unit": "Percent",
          "Name": "node_cpu_reserved_capacity"
        },
        {
          "Unit": "Percent",
          "Name": "node_memory_reserved_capacity"
        },
        {
          "Unit": "Count",
          "Name": "node_number_of_running_pods"
        },
        {
          "Unit": "Count",
          "Name": "node_number_of_running_containers"
        }
      ],
      "Dimensions": [
        [
          "NodeName",
          "InstanceId",
          "ClusterName"
        ]
      ],
      "Namespace": "ContainerInsights"
    },
    {
      "Metrics": [
        {
          "Unit": "Percent",
          "Name": "node_cpu_utilization"
        },
        {
          "Unit": "Percent",
          "Name": "node_memory_utilization"
        },
        {
          "Unit": "Bytes/Second",
          "Name": "node_network_total_bytes"
        },
        {
          "Unit": "Percent",
          "Name": "node_cpu_reserved_capacity"
        },
        {
          "Unit": "Percent",
          "Name": "node_memory_reserved_capacity"
        },
        {
          "Unit": "Count",
          "Name": "node_number_of_running_pods"
        },
        {
          "Unit": "Count",
          "Name": "node_number_of_running_containers"
        },
        {
          "Name": "node_cpu_usage_total"
        },
        {
          "Name": "node_cpu_limit"
        },
        {
          "Unit": "Bytes",
          "Name": "node_memory_working_set"
        },
        {
          "Unit": "Bytes",
          "Name": "node_memory_limit"
        }
      ],
      "Dimensions": [
        [
          "ClusterName"
        ]
      ],
      "Namespace": "ContainerInsights"
    }
  ],
  "ClusterName": "myCICluster",
  "InstanceId": "i-1234567890123456",
  "InstanceType": "t3.xlarge",
  "NodeName": "ip-192-0-2-0.us-west-2.compute.internal",
  "Sources": [
    "cadvisor",
    "/proc",
    "pod",
    "calculated"
  ],
  "Timestamp": "1567096682364",
  "Type": "Node",
  "Version": "0",
  "kubernetes": {
    "host": "ip-192-168-75-26.us-west-2.compute.internal"
  },
  "node_cpu_limit": 4000,
  "node_cpu_request": 1130,
  "node_cpu_reserved_capacity": 28.249999999999996,
  "node_cpu_usage_system": 33.794636630852764,
  "node_cpu_usage_total": 136.47852169244098,
  "node_cpu_usage_user": 71.67075111567326,
  "node_cpu_utilization": 3.4119630423110245,
  "node_memory_cache": 3103297536,
  "node_memory_failcnt": 0,
  "node_memory_hierarchical_pgfault": 0,
  "node_memory_hierarchical_pgmajfault": 0,
  "node_memory_limit": 16624865280,
  "node_memory_mapped_file": 406646784,
  "node_memory_max_usage": 4230746112,
  "node_memory_pgfault": 0,
  "node_memory_pgmajfault": 0,
  "node_memory_request": 1115684864,
  "node_memory_reserved_capacity": 6.7109407818311055,
  "node_memory_rss": 798146560,
  "node_memory_swap": 0,
  "node_memory_usage": 3901444096,
  "node_memory_utilization": 6.601302600149552,
  "node_memory_working_set": 1097457664,
  "node_network_rx_bytes": 35918.392817386324,
  "node_network_rx_dropped": 0,
  "node_network_rx_errors": 0,
  "node_network_rx_packets": 157.67565245448117,
  "node_network_total_bytes": 68264.20276554905,
  "node_network_tx_bytes": 32345.80994816272,
  "node_network_tx_dropped": 0,
  "node_network_tx_errors": 0,
  "node_network_tx_packets": 154.21455923431654,
  "node_number_of_running_containers": 16,
  "node_number_of_running_pods": 13
}
```

**Tipo: NodeFS**

```
{
  "AutoScalingGroupName": "eksctl-myCICluster-nodegroup-standard-workers-NodeGroup-1174PV2WHZAYU",
  "CloudWatchMetrics": [
    {
      "Metrics": [
        {
          "Unit": "Percent",
          "Name": "node_filesystem_utilization"
        }
      ],
      "Dimensions": [
        [
          "NodeName",
          "InstanceId",
          "ClusterName"
        ],
        [
          "ClusterName"
        ]
      ],
      "Namespace": "ContainerInsights"
    }
  ],
  "ClusterName": "myCICluster",
  "EBSVolumeId": "aws://us-west-2b/vol-0a53108976d4a2fda",
  "InstanceId": "i-1234567890123456",
  "InstanceType": "t3.xlarge",
  "NodeName": "ip-192-0-2-0.us-west-2.compute.internal",
  "Sources": [
    "cadvisor",
    "calculated"
  ],
  "Timestamp": "1567097939726",
  "Type": "NodeFS",
  "Version": "0",
  "device": "/dev/nvme0n1p1",
  "fstype": "vfs",
  "kubernetes": {
    "host": "ip-192-168-75-26.us-west-2.compute.internal"
  },
  "node_filesystem_available": 17298395136,
  "node_filesystem_capacity": 21462233088,
  "node_filesystem_inodes": 10484720,
  "node_filesystem_inodes_free": 10367158,
  "node_filesystem_usage": 4163837952,
  "node_filesystem_utilization": 19.400767547940255
}
```

**Tipo: NodeDiskIO**

```
{
  "AutoScalingGroupName": "eksctl-myCICluster-nodegroup-standard-workers-NodeGroup-1174PV2WHZAYU",
  "ClusterName": "myCICluster",
  "EBSVolumeId": "aws://us-west-2b/vol-0a53108976d4a2fda",
  "InstanceId": "i-1234567890123456",
  "InstanceType": "t3.xlarge",
  "NodeName": "ip-192-0-2-0.us-west-2.compute.internal",
  "Sources": [
    "cadvisor"
  ],
  "Timestamp": "1567096928131",
  "Type": "NodeDiskIO",
  "Version": "0",
  "device": "/dev/nvme0n1",
  "kubernetes": {
    "host": "ip-192-168-75-26.us-west-2.compute.internal"
  },
  "node_diskio_io_service_bytes_async": 9750.505814277016,
  "node_diskio_io_service_bytes_read": 0,
  "node_diskio_io_service_bytes_sync": 230.6174506688036,
  "node_diskio_io_service_bytes_total": 9981.123264945818,
  "node_diskio_io_service_bytes_write": 9981.123264945818,
  "node_diskio_io_serviced_async": 1.153087253344018,
  "node_diskio_io_serviced_read": 0,
  "node_diskio_io_serviced_sync": 0.03603397666700056,
  "node_diskio_io_serviced_total": 1.1891212300110185,
  "node_diskio_io_serviced_write": 1.1891212300110185
}
```

**Tipo: NodeNet**

```
{
  "AutoScalingGroupName": "eksctl-myCICluster-nodegroup-standard-workers-NodeGroup-1174PV2WHZAYU",
  "ClusterName": "myCICluster",
  "InstanceId": "i-1234567890123456",
  "InstanceType": "t3.xlarge",
  "NodeName": "ip-192-0-2-0.us-west-2.compute.internal",
  "Sources": [
    "cadvisor",
    "calculated"
  ],
  "Timestamp": "1567096928131",
  "Type": "NodeNet",
  "Version": "0",
  "interface": "eni972f6bfa9a0",
  "kubernetes": {
    "host": "ip-192-168-75-26.us-west-2.compute.internal"
  },
  "node_interface_network_rx_bytes": 3163.008420864309,
  "node_interface_network_rx_dropped": 0,
  "node_interface_network_rx_errors": 0,
  "node_interface_network_rx_packets": 16.575629266820258,
  "node_interface_network_total_bytes": 3518.3935157426017,
  "node_interface_network_tx_bytes": 355.385094878293,
  "node_interface_network_tx_dropped": 0,
  "node_interface_network_tx_errors": 0,
  "node_interface_network_tx_packets": 3.9997714100370625
}
```

**Tipo: Pod**

```
{
  "AutoScalingGroupName": "eksctl-myCICluster-nodegroup-standard-workers-NodeGroup-1174PV2WHZAYU",
  "CloudWatchMetrics": [
    {
      "Metrics": [
        {
          "Unit": "Percent",
          "Name": "pod_cpu_utilization"
        },
        {
          "Unit": "Percent",
          "Name": "pod_memory_utilization"
        },
        {
          "Unit": "Bytes/Second",
          "Name": "pod_network_rx_bytes"
        },
        {
          "Unit": "Bytes/Second",
          "Name": "pod_network_tx_bytes"
        },
        {
          "Unit": "Percent",
          "Name": "pod_cpu_utilization_over_pod_limit"
        },
        {
          "Unit": "Percent",
          "Name": "pod_memory_utilization_over_pod_limit"
        }
      ],
      "Dimensions": [
        [
          "PodName",
          "Namespace",
          "ClusterName"
        ],
        [
          "Service",
          "Namespace",
          "ClusterName"
        ],
        [
          "Namespace",
          "ClusterName"
        ],
        [
          "ClusterName"
        ]
      ],
      "Namespace": "ContainerInsights"
    },
    {
      "Metrics": [
        {
          "Unit": "Percent",
          "Name": "pod_cpu_reserved_capacity"
        },
        {
          "Unit": "Percent",
          "Name": "pod_memory_reserved_capacity"
        }
      ],
      "Dimensions": [
        [
          "PodName",
          "Namespace",
          "ClusterName"
        ],
        [
          "ClusterName"
        ]
      ],
      "Namespace": "ContainerInsights"
    },
    {
      "Metrics": [
        {
          "Unit": "Count",
          "Name": "pod_number_of_container_restarts"
        }
      ],
      "Dimensions": [
        [
          "PodName",
          "Namespace",
          "ClusterName"
        ]
      ],
      "Namespace": "ContainerInsights"
    }
  ],
  "ClusterName": "myCICluster",
  "InstanceId": "i-1234567890123456",
  "InstanceType": "t3.xlarge",
  "Namespace": "amazon-cloudwatch",
  "NodeName": "ip-192-0-2-0.us-west-2.compute.internal",
  "PodName": "cloudwatch-agent-statsd",
  "Service": "cloudwatch-agent-statsd",
  "Sources": [
    "cadvisor",
    "pod",
    "calculated"
  ],
  "Timestamp": "1567097351092",
  "Type": "Pod",
  "Version": "0",
  "kubernetes": {
    "host": "ip-192-168-75-26.us-west-2.compute.internal",
    "labels": {
      "app": "cloudwatch-agent-statsd",
      "pod-template-hash": "df44f855f"
    },
    "namespace_name": "amazon-cloudwatch",
    "pod_id": "2f4ff5ac-c813-11e9-a31d-06e9dde32928",
    "pod_name": "cloudwatch-agent-statsd-df44f855f-ts4q2",
    "pod_owners": [
      {
        "owner_kind": "Deployment",
        "owner_name": "cloudwatch-agent-statsd"
      }
    ],
    "service_name": "cloudwatch-agent-statsd"
  },
  "pod_cpu_limit": 200,
  "pod_cpu_request": 200,
  "pod_cpu_reserved_capacity": 5,
  "pod_cpu_usage_system": 1.4504841104992765,
  "pod_cpu_usage_total": 5.817016867430125,
  "pod_cpu_usage_user": 1.1281543081661038,
  "pod_cpu_utilization": 0.14542542168575312,
  "pod_cpu_utilization_over_pod_limit": 2.9085084337150624,
  "pod_memory_cache": 8192,
  "pod_memory_failcnt": 0,
  "pod_memory_hierarchical_pgfault": 0,
  "pod_memory_hierarchical_pgmajfault": 0,
  "pod_memory_limit": 104857600,
  "pod_memory_mapped_file": 0,
  "pod_memory_max_usage": 25268224,
  "pod_memory_pgfault": 0,
  "pod_memory_pgmajfault": 0,
  "pod_memory_request": 104857600,
  "pod_memory_reserved_capacity": 0.6307275170893897,
  "pod_memory_rss": 22777856,
  "pod_memory_swap": 0,
  "pod_memory_usage": 25141248,
  "pod_memory_utilization": 0.10988455961791709,
  "pod_memory_utilization_over_pod_limit": 17.421875,
  "pod_memory_working_set": 18268160,
  "pod_network_rx_bytes": 9880.697124714186,
  "pod_network_rx_dropped": 0,
  "pod_network_rx_errors": 0,
  "pod_network_rx_packets": 107.80005532263283,
  "pod_network_total_bytes": 10158.829201483635,
  "pod_network_tx_bytes": 278.13207676944796,
  "pod_network_tx_dropped": 0,
  "pod_network_tx_errors": 0,
  "pod_network_tx_packets": 1.146027574644318,
  "pod_number_of_container_restarts": 0,
  "pod_number_of_containers": 1,
  "pod_number_of_running_containers": 1,
  "pod_status": "Running"
}
```

**Tipo: PodNet**

```
{
  "AutoScalingGroupName": "eksctl-myCICluster-nodegroup-standard-workers-NodeGroup-1174PV2WHZAYU",
  "ClusterName": "myCICluster",
  "InstanceId": "i-1234567890123456",
  "InstanceType": "t3.xlarge",
  "Namespace": "amazon-cloudwatch",
  "NodeName": "ip-192-0-2-0.us-west-2.compute.internal",
  "PodName": "cloudwatch-agent-statsd",
  "Service": "cloudwatch-agent-statsd",
  "Sources": [
    "cadvisor",
    "calculated"
  ],
  "Timestamp": "1567097351092",
  "Type": "PodNet",
  "Version": "0",
  "interface": "eth0",
  "kubernetes": {
    "host": "ip-192-168-75-26.us-west-2.compute.internal",
    "labels": {
      "app": "cloudwatch-agent-statsd",
      "pod-template-hash": "df44f855f"
    },
    "namespace_name": "amazon-cloudwatch",
    "pod_id": "2f4ff5ac-c813-11e9-a31d-06e9dde32928",
    "pod_name": "cloudwatch-agent-statsd-df44f855f-ts4q2",
    "pod_owners": [
      {
        "owner_kind": "Deployment",
        "owner_name": "cloudwatch-agent-statsd"
      }
    ],
    "service_name": "cloudwatch-agent-statsd"
  },
  "pod_interface_network_rx_bytes": 9880.697124714186,
  "pod_interface_network_rx_dropped": 0,
  "pod_interface_network_rx_errors": 0,
  "pod_interface_network_rx_packets": 107.80005532263283,
  "pod_interface_network_total_bytes": 10158.829201483635,
  "pod_interface_network_tx_bytes": 278.13207676944796,
  "pod_interface_network_tx_dropped": 0,
  "pod_interface_network_tx_errors": 0,
  "pod_interface_network_tx_packets": 1.146027574644318
}
```

**Tipo: Container**

```
{
  "AutoScalingGroupName": "eksctl-myCICluster-nodegroup-standard-workers-NodeGroup-sample",
  "ClusterName": "myCICluster",
  "InstanceId": "i-1234567890123456",
  "InstanceType": "t3.xlarge",
  "Namespace": "amazon-cloudwatch",
  "NodeName": "ip-192-0-2-0.us-west-2.compute.internal",
  "PodName": "cloudwatch-agent-statsd",
  "Service": "cloudwatch-agent-statsd",
  "Sources": [
    "cadvisor",
    "pod",
    "calculated"
  ],
  "Timestamp": "1567097399912",
  "Type": "Container",
  "Version": "0",
  "container_cpu_limit": 200,
  "container_cpu_request": 200,
  "container_cpu_usage_system": 1.87958283771964,
  "container_cpu_usage_total": 6.159993652997942,
  "container_cpu_usage_user": 1.6707403001952357,
  "container_cpu_utilization": 0.15399984132494854,
  "container_memory_cache": 8192,
  "container_memory_failcnt": 0,
  "container_memory_hierarchical_pgfault": 0,
  "container_memory_hierarchical_pgmajfault": 0,
  "container_memory_limit": 104857600,
  "container_memory_mapped_file": 0,
  "container_memory_max_usage": 24580096,
  "container_memory_pgfault": 0,
  "container_memory_pgmajfault": 0,
  "container_memory_request": 104857600,
  "container_memory_rss": 22736896,
  "container_memory_swap": 0,
  "container_memory_usage": 24453120,
  "container_memory_utilization": 0.10574541028701798,
  "container_memory_working_set": 17580032,
  "container_status": "Running",
  "kubernetes": {
    "container_name": "cloudwatch-agent",
    "docker": {
      "container_id": "8967b6b37da239dfad197c9fdea3e5dfd35a8a759ec86e2e4c3f7b401e232706"
    },
    "host": "ip-192-168-75-26.us-west-2.compute.internal",
    "labels": {
      "app": "cloudwatch-agent-statsd",
      "pod-template-hash": "df44f855f"
    },
    "namespace_name": "amazon-cloudwatch",
    "pod_id": "2f4ff5ac-c813-11e9-a31d-06e9dde32928",
    "pod_name": "cloudwatch-agent-statsd-df44f855f-ts4q2",
    "pod_owners": [
      {
        "owner_kind": "Deployment",
        "owner_name": "cloudwatch-agent-statsd"
      }
    ],
    "service_name": "cloudwatch-agent-statsd"
  },
  "number_of_container_restarts": 0
}
```

**Tipo: ContainerFS**

```
{
  "AutoScalingGroupName": "eksctl-myCICluster-nodegroup-standard-workers-NodeGroup-1174PV2WHZAYU",
  "ClusterName": "myCICluster",
  "EBSVolumeId": "aws://us-west-2b/vol-0a53108976d4a2fda",
  "InstanceId": "i-1234567890123456",
  "InstanceType": "t3.xlarge",
  "Namespace": "amazon-cloudwatch",
  "NodeName": "ip-192-0-2-0.us-west-2.compute.internal",
  "PodName": "cloudwatch-agent-statsd",
  "Service": "cloudwatch-agent-statsd",
  "Sources": [
    "cadvisor",
    "calculated"
  ],
  "Timestamp": "1567097399912",
  "Type": "ContainerFS",
  "Version": "0",

  "device": "/dev/nvme0n1p1",
  "fstype": "vfs",
  "kubernetes": {
    "container_name": "cloudwatch-agent",
    "docker": {
      "container_id": "8967b6b37da239dfad197c9fdea3e5dfd35a8a759ec86e2e4c3f7b401e232706"
    },
    "host": "ip-192-168-75-26.us-west-2.compute.internal",
    "labels": {
      "app": "cloudwatch-agent-statsd",
      "pod-template-hash": "df44f855f"
    },
    "namespace_name": "amazon-cloudwatch",
    "pod_id": "2f4ff5ac-c813-11e9-a31d-06e9dde32928",
    "pod_name": "cloudwatch-agent-statsd-df44f855f-ts4q2",
    "pod_owners": [
      {
        "owner_kind": "Deployment",
        "owner_name": "cloudwatch-agent-statsd"
      }
    ],
    "service_name": "cloudwatch-agent-statsd"
  }
}
```

**Tipo: Cluster**

```
{
  "CloudWatchMetrics": [
    {
      "Metrics": [
        {
          "Unit": "Count",
          "Name": "cluster_node_count"
        },
        {
          "Unit": "Count",
          "Name": "cluster_failed_node_count"
        }
      ],
      "Dimensions": [
        [
          "ClusterName"
        ]
      ],
      "Namespace": "ContainerInsights"
    }
  ],
  "ClusterName": "myCICluster",
  "Sources": [
    "apiserver"
  ],
  "Timestamp": "1567097534160",
  "Type": "Cluster",
  "Version": "0",
  "cluster_failed_node_count": 0,
  "cluster_node_count": 3
}
```

**Tipo: ClusterService**

```
{
  "CloudWatchMetrics": [
    {
      "Metrics": [
        {
          "Unit": "Count",
          "Name": "service_number_of_running_pods"
        }
      ],
      "Dimensions": [
        [
          "Service",
          "Namespace",
          "ClusterName"
        ],
        [
          "ClusterName"
        ]
      ],
      "Namespace": "ContainerInsights"
    }
  ],
  "ClusterName": "myCICluster",
  "Namespace": "amazon-cloudwatch",
  "Service": "cloudwatch-agent-statsd",
  "Sources": [
    "apiserver"
  ],
  "Timestamp": "1567097534160",
  "Type": "ClusterService",
  "Version": "0",
  "kubernetes": {
    "namespace_name": "amazon-cloudwatch",
    "service_name": "cloudwatch-agent-statsd"
  },
  "service_number_of_running_pods": 1
}
```

**Tipo: ClusterNamespace**

```
{
  "CloudWatchMetrics": [
    {
      "Metrics": [
        {
          "Unit": "Count",
          "Name": "namespace_number_of_running_pods"
        }
      ],
      "Dimensions": [
        [
          "Namespace",
          "ClusterName"
        ],
        [
          "ClusterName"
        ]
      ],
      "Namespace": "ContainerInsights"
    }
  ],
  "ClusterName": "myCICluster",
  "Namespace": "amazon-cloudwatch",
  "Sources": [
    "apiserver"
  ],
  "Timestamp": "1567097594160",
  "Type": "ClusterNamespace",
  "Version": "0",
  "kubernetes": {
    "namespace_name": "amazon-cloudwatch"
  },
  "namespace_number_of_running_pods": 7
}
```

# Campos relevantes nos eventos de log de performance para Amazon EKS e Kubernetes
<a name="Container-Insights-reference-performance-entries-EKS"></a>

Para Amazon EKS e Kubernetes, o atendente do CloudWatch armazenado em contêineres emite dados como eventos de log de performance. Isso permite ao CloudWatch ingerir e armazenar dados de alta cardinalidade. O CloudWatch usa os dados nos eventos de log de performance para criar métricas agregadas do CloudWatch no nível do cluster, do nó e do pod, sem a necessidade de perder detalhes refinados.

A tabela a seguir lista os campos nesses eventos de log de performance que são relevantes à coleção de dados de métrica do Container Insights. Você pode usar o CloudWatch Logs Insights para consultar qualquer um desses campos para coletar dados ou investigar problemas. Para obter mais informações, consulte [Analisar dados de log com o CloudWatch Logs Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html).


| Tipo | Campo de log | Origem | Fórmula ou observações | 
| --- | --- | --- | --- | 
|  Pod |  `pod_cpu_utilization`  |  Calculado  |  Fórmula: `pod_cpu_usage_total / node_cpu_limit`  | 
|  Pod |  `pod_cpu_usage_total` `pod_cpu_usage_total`O é informado em milinúcleos.  |  cadvisor  |   | 
|  Pod |  `pod_cpu_limit`  |  Calculado  |  Fórmula: `sum(container_cpu_limit)`  `sum(container_cpu_limit)` inclui pods já concluídos. Se qualquer contêiner no pod não tiver um limite de CPU definido, esse campo não aparecerá no evento de log. Isso inclui [ contêineres de inicialização](https://kubernetes.io/docs/concepts/workloads/pods/init-containers/#resources).  | 
|  Pod |  `pod_cpu_request`  |  Calculado  |  Fórmula: `sum(container_cpu_request)` `container_cpu_request`Não é garantido que esteja definido. Somente os que estão definidos são incluídos na soma.  | 
|  Pod |  `pod_cpu_utilization_over_pod_limit`  |  Calculado  |  Fórmula: `pod_cpu_usage_total / pod_cpu_limit`  | 
|  Pod |  `pod_cpu_reserved_capacity`  |  Calculado  |  Fórmula: `pod_cpu_request / node_cpu_limit`  | 
|  Pod |  `pod_memory_utilization`  |  Calculado  |  Fórmula: `pod_memory_working_set / node_memory_limit` É a porcentagem de uso de memória do pod sobre a limitação de memória do nó.  | 
|  Pod |  `pod_memory_working_set`  |  cadvisor  |   | 
|  Pod |  `pod_memory_limit`  |  Calculado  |  Fórmula: `sum(container_memory_limit)` Se qualquer contêiner no pod não tiver um limite de memória definido, esse campo não aparecerá no evento de log. Isso inclui [ contêineres de inicialização](https://kubernetes.io/docs/concepts/workloads/pods/init-containers/#resources).  | 
|  Pod |  `pod_memory_request`  |  Calculado  |  Fórmula: `sum(container_memory_request)` `container_memory_request`Não é garantido que esteja definido. Somente os que estão definidos são incluídos na soma.  | 
|  Pod |  `pod_memory_utilization_over_pod_limit`  |  Calculado  |  Fórmula: `pod_memory_working_set / pod_memory_limit` Se qualquer contêiner no pod não tiver um limite de memória definido, esse campo não aparecerá no evento de log. Isso inclui [ contêineres de inicialização](https://kubernetes.io/docs/concepts/workloads/pods/init-containers/#resources).  | 
|  Pod |  `pod_memory_reserved_capacity`  |  Calculado  |  Fórmula: `pod_memory_request / node_memory_limit`  | 
|  Pod |  `pod_network_tx_bytes`  |  Calculado  |  Fórmula: `sum(pod_interface_network_tx_bytes)` Esses dados estão disponíveis para todas as interfaces de rede por pod. O atendente do CloudWatch calcula o total e adiciona regras de extração de métrica.  | 
|  Pod |  `pod_network_rx_bytes`  |  Calculado  |  Fórmula: `sum(pod_interface_network_rx_bytes)`  | 
|  Pod |  `pod_network_total_bytes`  |  Calculado  |  Fórmula: `pod_network_rx_bytes + pod_network_tx_bytes`  | 
|  PodNet |  `pod_interface_network_rx_bytes`  |  cadvisor  | Esses dados são bytes de rx de rede por segundo de uma interface de rede de pod.  | 
|  PodNet |  `pod_interface_network_tx_bytes`  |  cadvisor  | Esses dados são bytes de tx de rede por segundo de uma interface de rede de pod. | 
|  Contêiner |  `container_cpu_usage_total`  |  cadvisor  |   | 
|  Contêiner |  `container_cpu_limit`  |  cadvisor  |  Não há garantia de estar definido. Não é emitido se não está definido. | 
|  Contêiner |  `container_cpu_request`  |  cadvisor  |  Não há garantia de estar definido. Não é emitido se não está definido. | 
|  Contêiner |  `container_memory_working_set`  |  cadvisor  |   | 
|  Contêiner |  `container_memory_limit`  |  pod  |  Não há garantia de estar definido. Não é emitido se não está definido. | 
|  Contêiner |  `container_memory_request`  |  pod  |  Não há garantia de estar definido. Não é emitido se não está definido. | 
|  Nó |  `node_cpu_utilization`  |  Calculado  |  Fórmula: `node_cpu_usage_total / node_cpu_limit`  | 
|  Nó |  `node_cpu_usage_total`  |  cadvisor  |   | 
|  Nó |  `node_cpu_limit`  |  /proc  |   | 
|  Nó |  `node_cpu_request`  |  Calculado  | Fórmula: `sum(pod_cpu_request)` Para cronjobs, `node_cpu_request` também inclui solicitações de pods concluídos. Isso pode levar a um alto valor para `node_cpu_reserved_capacity`.  | 
|  Nó |  `node_cpu_reserved_capacity`  |  Calculado  | Fórmula: `node_cpu_request / node_cpu_limit`  | 
|  Nó |  `node_memory_utilization`  |  Calculado  | Fórmula: `node_memory_working_set / node_memory_limit`  | 
|  Nó |  `node_memory_working_set`  |  cadvisor  |   | 
|  Nó |  `node_memory_limit`  |  /proc  |   | 
|  Nó |  `node_memory_request`  |  Calculado  |  Fórmula: `sum(pod_memory_request)`  | 
|  Nó |  `node_memory_reserved_capacity`  |  Calculado  | Fórmula: `node_memory_request / node_memory_limit`  | 
|  Nó |  `node_network_rx_bytes`  |  Calculado  | Fórmula: `sum(node_interface_network_rx_bytes)`  | 
|  Nó |  `node_network_tx_bytes`  |  Calculado  | Fórmula: `sum(node_interface_network_tx_bytes)`  | 
|  Nó |  `node_network_total_bytes`  |  Calculado  | Fórmula: `node_network_rx_bytes + node_network_tx_bytes`  | 
|  Nó |  `node_number_of_running_pods`  |  Lista de pods  |   | 
|  Nó |  `node_number_of_running_containers`  |  Lista de pods  |   | 
|  NodeNet |  `node_interface_network_rx_bytes`  |  cadvisor  |  Esses dados são bytes de tx de rede por segundo de uma interface de rede do nó de processamento.  | 
|  NodeNet |  `node_interface_network_tx_bytes`  |  cadvisor  |  Esses dados são bytes de tx de rede por segundo de uma interface de rede do nó de processamento.  | 
|  NodeFS |  `node_filesystem_capacity`  |  cadvisor  |   | 
|  NodeFS |  `node_filesystem_usage`  |  cadvisor  |   | 
|  NodeFS |  `node_filesystem_utilization`  |  Calculado  |  Fórmula: `node_filesystem_usage / node_filesystem_capacity` Esses dados estão disponíveis por nome do dispositivo.  | 
|  Cluster |  `cluster_failed_node_count`  |  Servidor da API  |   | 
|  Cluster |  `cluster_node_count`  |  Servidor da API  |   | 
|  Serviço |  `service_number_of_running_pods`  |  Servidor da API  |   | 
|  `Namespace` |  `namespace_number_of_running_pods`  |  Servidor da API  |   | 

## Exemplos de cálculo de métricas
<a name="Container-Insights-calculation-examples"></a>

Esta seção inclui exemplos que mostram como alguns dos valores na tabela anterior são calculados.

Suponha que você tenha um cluster no estado a seguir.

```
Node1
   node_cpu_limit = 4
   node_cpu_usage_total = 3
   
   Pod1
     pod_cpu_usage_total = 2
     
     Container1
        container_cpu_limit = 1
        container_cpu_request = 1
        container_cpu_usage_total = 0.8
        
     Container2
        container_cpu_limit = null
        container_cpu_request = null
        container_cpu_usage_total = 1.2
        
   Pod2
     pod_cpu_usage_total = 0.4
     
     Container3
        container_cpu_limit = 1
        container_cpu_request = 0.5
        container_cpu_usage_total = 0.4
        
Node2
   node_cpu_limit = 8
   node_cpu_usage_total = 1.5
   
   Pod3
     pod_cpu_usage_total = 1
     
     Container4
        container_cpu_limit = 2
        container_cpu_request = 2
        container_cpu_usage_total = 1
```

A tabela a seguir mostra como as métricas de CPU do pod são calculadas usando esses dados.


| Métrica | Fórmula | Pod1 | Pod2 | Pod3 | 
| --- | --- | --- | --- | --- | 
|  `pod_cpu_utilization` |  `pod_cpu_usage_total / node_cpu_limit`  |  2/4 = 50%  |  0,4/4 = 10%  |  1/8 = 12,5%  | 
|  `pod_cpu_utilization_over_pod_limit` |  `pod_cpu_usage_total / sum(container_cpu_limit)`  |  N/D, pois o limite de CPU para `Container2` não está definido  |  0,4/1 = 40%  |  1/2 = 50%  | 
|  `pod_cpu_reserved_capacity` |  `sum(container_cpu_request) / node_cpu_limit`  |  (1 \$1 0)/4 = 25%  |  0,5/4 = 12,5%  |  2/8 = 25%  | 

A tabela a seguir mostra como as métricas de CPU do nó são calculadas usando esses dados.


| Métrica | Fórmula | Node1 | Node2 | 
| --- | --- | --- | --- | 
|  `node_cpu_utilization` |  `node_cpu_usage_total / node_cpu_limit`  |  3/4 = 75%  |  1,5/8 = 18,75%  | 
|  `node_cpu_reserved_capacity` |  `sum(pod_cpu_request) / node_cpu_limit`  |  1,5/4 = 37,5%  |  2/8 = 25%  | 

# Monitoramento de métricas do Container Insights Prometheus
<a name="ContainerInsights-Prometheus"></a>

O monitoramento do CloudWatch Container Insights para Prometheus automatiza a detecção de métricas do Prometheus de sistemas e workloads em contêineres. O Prometheus é um toolkit de código aberto para alertas e monitoramento de sistemas. Para obter mais informações, consulte [What is Prometheus?](https://prometheus.io/docs/introduction/overview/) na documentação do Prometheus.

A detecção de métricas do Prometheus é compatível com clusters do [Amazon Elastic Container Service](https://aws.amazon.com/ecs/), [Amazon Elastic Kubernetes Service](https://aws.amazon.com/eks/) e [Kubernetes](https://aws.amazon.com/kubernetes/) em execução em instâncias do Amazon EC2. São coletados os tipos de métrica contador, medidor e resumo do Prometheus.

Para clusters do Amazon ECS e do Amazon EKS, há suporte para os tipos de inicialização do EC2 e do Fargate. O Container Insights coleta automaticamente métricas de várias workloads, e é possível configurá-lo de modo a coletar métricas de qualquer workload.

Você pode adotar o Prometheus como um método de código aberto e padrão aberto para ingerir métricas personalizadas no CloudWatch. O atendente do CloudWatch com suporte ao Prometheus detecta e coleta métricas do Prometheus para monitorar, solucionar problemas e criar alarmes sobre a degradação na performance e falhas das aplicações mais rapidamente. Isso também reduz o número de ferramentas de monitoramento necessárias para melhorar a observabilidade.

O suporte do Container Insights Prometheus envolve o pagamento de métricas e logs conforme o uso, incluindo coleta, armazenamento e análise. Para obter mais informações, consulte [Preços do Amazon CloudWatch](https://aws.amazon.com/cloudwatch/pricing/).

**Painéis pré-criados para algumas workloads**

A solução Container Insights Prometheus contém painéis pré-criados para as workloads bastante utilizadas listadas nesta seção. Para obter exemplos de configurações dessas workloads, consulte [(Opcional) Configurar amostra de workloads do Amazon ECS em contêineres para teste de métrica do Prometheus](ContainerInsights-Prometheus-Sample-Workloads-ECS.md)e [(Opcional) Configurar workloads de exemplo do Amazon EKS em contêineres para teste de métrica do Prometheus](ContainerInsights-Prometheus-Sample-Workloads.md).

Também é possível configurar o Container Insights para coletar métricas do Prometheus de outros serviços e aplicações em contêineres, editando o arquivo de configuração do atendente.

Workloads com painéis pré-criados para clusters do Amazon EKS e do Kubernetes em execução em instâncias do Amazon EC2:
+ AWS App Mesh
+ NGINX
+ Memcached
+ Java/JMX
+ HAProxy

Workloads com painéis pré-criados para clusters do Amazon ECS:
+ AWS App Mesh
+ Java/JMX
+ NGINX
+ NGINX Plus

# Instalar e configurar a coleta de métricas do Prometheus em cluster do Amazon ECS
<a name="ContainerInsights-Prometheus-Setup-ECS"></a>

Para coletar métricas do Prometheus de clusters do Amazon ECS, é possível usar o atendente do CloudWatch como coletor ou usar o coletor do AWS Distro for OpenTelemetry. Para obter informações sobre como usar o coletor do AWS Distro for OpenTelemetry, consulte [https://aws-otel.github.io/docs/getting-started/container-insights/ecs-prometheus](https://aws-otel.github.io/docs/getting-started/container-insights/ecs-prometheus).

As seções a seguir explicam como usar o atendente do CloudWatch como coletor para recuperar métricas do Prometheus. Você instala o atendente do CloudWatch com o monitoramento Prometheus em clusters que executam o Amazon ECS e, opcionalmente, pode configurar o atendente para extrair outros destinos. Estas seções também fornecem tutoriais opcionais para configurar workloads de amostra para usar testes com monitoramento Prometheus. 

O Container Insights no Amazon ECS oferece suporte às seguintes combinações de tipo de inicialização e modo de rede para métricas do Prometheus:


| Tipo de inicialização do Amazon ECS | Modos de rede compatíveis | 
| --- | --- | 
|  EC2 (Linux)  |  bridge, host e awsvpc  | 
|  Fargate  |  awsvpc  | 

**Requisitos para grupo de segurança de VPC**

As regras de entrada dos grupos de segurança para as workloads do Prometheus devem abrir as portas do Prometheus para o atendente do CloudWatch para extrair as métricas Prometheus pelo IP privado.

As regras de saída do grupo de segurança do atendente do CloudWatch devem permitir que o atendente do CloudWatch se conecte à porta das workloads do Prometheus por IP privado. 

**Topics**
+ [Instalar o atendente do CloudWatch com a coleção de métricas do Prometheus em clusters do Amazon ECS](ContainerInsights-Prometheus-install-ECS.md)
+ [Extrair outras fontes do Prometheus e importar essas métricas](ContainerInsights-Prometheus-Setup-configure-ECS.md)
+ [(Opcional) Configurar amostra de workloads do Amazon ECS em contêineres para teste de métrica do Prometheus](ContainerInsights-Prometheus-Sample-Workloads-ECS.md)

# Instalar o atendente do CloudWatch com a coleção de métricas do Prometheus em clusters do Amazon ECS
<a name="ContainerInsights-Prometheus-install-ECS"></a>

Esta seção explica como configurar o atendente do CloudWatch com monitoramento do Prometheus em um cluster que está executando o Amazon ECS. Depois que você fizer isso, o atendente automaticamente extrairá e importará métricas para as seguintes workloads em execução nesse cluster.
+ AWS App Mesh
+ Java/JMX

Também é possível configurar o atendente para extrair e importar métricas de outras workloads e origens do Prometheus.

## Configurar funções do IAM
<a name="ContainerInsights-Prometheus-Setup-ECS-IAM"></a>

Você precisa de duas funções do IAM para a definição de tarefa do atendente do CloudWatch. Se você especificar **CreateIAMRoles=True** na pilha CloudFormation para que o Container Insights crie essas funções para você, as funções serão criadas com as permissões corretas. Caso queira criá-las ou usar funções existentes, as funções e permissões a seguir são necessárias.
+ **Função de tarefa do ECS do atendente do CloudWatch**: o contêiner do atendente do CloudWatch usa essa função. Ela deve incluir a política **CloudWatchAgentServerPolicy** e uma política gerenciada pelo cliente que contenha as seguintes permissões somente para leitura:
  + `ec2:DescribeInstances`
  + `ecs:ListTasks`
  + `ecs:ListServices`
  + `ecs:DescribeContainerInstances`
  + `ecs:DescribeServices`
  + `ecs:DescribeTasks`
  + `ecs:DescribeTaskDefinition`
+ **Função de execução de tarefa do ECS do atendente do CloudWatch**: essa é a função necessária para o Amazon ECS iniciar e executar os contêineres. Verifique se sua função de execução de tarefa tem as políticas **AmazonSSMReadOnlyAccess**, **AmazonECSTaskExecutionRolePolicy** e **CloudWatchAgentServerPolicy** anexadas. Se precisar armazenar dados mais sigilosos para uso do Amazon ECS, consulte [Especificar dados sigilosos](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html).

## Instale o atendente do CloudWatch com o monitoramento do Prometheus usando CloudFormation
<a name="ContainerInsights-Prometheus-Setup-ECS-CFN"></a>

Você pode usar AWS CloudFormation para instalar o atendente do CloudWatch com o monitoramento do Prometheus para clusters do Amazon ECS. A lista a seguir exibe os parâmetros que você usará no modelo CloudFormation.
+ **ECSClusterName**: especifica o cluster do Amazon ECS de destino.
+ **CreateIAMRoles**: especifique **True** para criar novas funções para a função de tarefa do Amazon ECS e para a função de execução de tarefas do Amazon ECS. Especifique **False** para reutilizar funções existentes.
+ **TaskRoleName**: se você especificou **True** em **CreateIAMRoles**, isso especifica o nome a ser usado para a função de tarefa do Amazon ECS. Se você especificou **False** em **CreateIAMRoles**, isso especifica a função existente a ser usada para a função de tarefa do Amazon ECS. 
+ **ExecutionRoleName**: se você especificou **True** em **CreateIAMRoles**, isso especifica o nome a ser usado para a função de execução de tarefa do Amazon ECS. Se você especificou **False** em **CreateIAMRoles**, isso especifica a função existente a ser usada para a função de execução de tarefa do Amazon ECS. 
+ **ECSNetworkMode**: se estiver usando o tipo de inicialização do EC2, especifique o modo de rede aqui. Deve ser **bridge** ou **host**.
+ **ECSLaunchType**: especifique **fargate** ou **EC2**.
+ **SecurityGroupID**: se o **ECSNetworkMode** for **awsvpc**, especifique o ID do grupo de segurança aqui.
+ **SubnetID**: se o **ECSNetworkMode** for **awsvpc**, especifique o ID da sub-rede aqui.

### Exemplos de comando
<a name="ContainerInsights-Prometheus-Setup-ECS-CFNcommands"></a>

Esta seção contém exemplos de comando do CloudFormation para instalar o Container Insights com o monitoramento do Prometheus em vários cenários.

**Criar uma pilha do CloudFormation para um cluster do Amazon ECS no modo de rede de ponte**

```
export AWS_PROFILE=your_aws_config_profile_eg_default
export AWS_DEFAULT_REGION=your_aws_region_eg_ap-southeast-1
export ECS_CLUSTER_NAME=your_ec2_ecs_cluster_name
export ECS_NETWORK_MODE=bridge
export CREATE_IAM_ROLES=True
export ECS_TASK_ROLE_NAME=your_selected_ecs_task_role_name
export ECS_EXECUTION_ROLE_NAME=your_selected_ecs_execution_role_name

curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/ecs-task-definition-templates/deployment-mode/replica-service/cwagent-prometheus/cloudformation-quickstart/cwagent-ecs-prometheus-metric-for-bridge-host.yaml

aws cloudformation create-stack --stack-name CWAgent-Prometheus-ECS-${ECS_CLUSTER_NAME}-EC2-${ECS_NETWORK_MODE} \
    --template-body file://cwagent-ecs-prometheus-metric-for-bridge-host.yaml \
    --parameters ParameterKey=ECSClusterName,ParameterValue=${ECS_CLUSTER_NAME} \
                 ParameterKey=CreateIAMRoles,ParameterValue=${CREATE_IAM_ROLES} \
                 ParameterKey=ECSNetworkMode,ParameterValue=${ECS_NETWORK_MODE} \
                 ParameterKey=TaskRoleName,ParameterValue=${ECS_TASK_ROLE_NAME} \
                 ParameterKey=ExecutionRoleName,ParameterValue=${ECS_EXECUTION_ROLE_NAME} \
    --capabilities CAPABILITY_NAMED_IAM \
    --region ${AWS_DEFAULT_REGION} \
    --profile ${AWS_PROFILE}
```

**Criar uma pilha do CloudFormation para um cluster do Amazon ECS no modo de rede de host**

```
export AWS_PROFILE=your_aws_config_profile_eg_default
export AWS_DEFAULT_REGION=your_aws_region_eg_ap-southeast-1
export ECS_CLUSTER_NAME=your_ec2_ecs_cluster_name
export ECS_NETWORK_MODE=host
export CREATE_IAM_ROLES=True
export ECS_TASK_ROLE_NAME=your_selected_ecs_task_role_name
export ECS_EXECUTION_ROLE_NAME=your_selected_ecs_execution_role_name


curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/ecs-task-definition-templates/deployment-mode/replica-service/cwagent-prometheus/cloudformation-quickstart/cwagent-ecs-prometheus-metric-for-bridge-host.yaml

aws cloudformation create-stack --stack-name CWAgent-Prometheus-ECS-${ECS_CLUSTER_NAME}-EC2-${ECS_NETWORK_MODE} \
    --template-body file://cwagent-ecs-prometheus-metric-for-bridge-host.yaml \
    --parameters ParameterKey=ECSClusterName,ParameterValue=${ECS_CLUSTER_NAME} \
                 ParameterKey=CreateIAMRoles,ParameterValue=${CREATE_IAM_ROLES} \
                 ParameterKey=ECSNetworkMode,ParameterValue=${ECS_NETWORK_MODE} \
                 ParameterKey=TaskRoleName,ParameterValue=${ECS_TASK_ROLE_NAME} \
                 ParameterKey=ExecutionRoleName,ParameterValue=${ECS_EXECUTION_ROLE_NAME} \ 
    --capabilities CAPABILITY_NAMED_IAM \
    --region ${AWS_DEFAULT_REGION} \
    --profile ${AWS_PROFILE}
```

**Criar uma pilha do CloudFormation para um cluster do Amazon ECS no modo de rede awsvpc**

```
export AWS_PROFILE=your_aws_config_profile_eg_default
export AWS_DEFAULT_REGION=your_aws_region_eg_ap-southeast-1
export ECS_CLUSTER_NAME=your_ec2_ecs_cluster_name
export ECS_LAUNCH_TYPE=EC2
export CREATE_IAM_ROLES=True
export ECS_CLUSTER_SECURITY_GROUP=your_security_group_eg_sg-xxxxxxxxxx
export ECS_CLUSTER_SUBNET=your_subnet_eg_subnet-xxxxxxxxxx
export ECS_TASK_ROLE_NAME=your_selected_ecs_task_role_name
export ECS_EXECUTION_ROLE_NAME=your_selected_ecs_execution_role_name

curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/ecs-task-definition-templates/deployment-mode/replica-service/cwagent-prometheus/cloudformation-quickstart/cwagent-ecs-prometheus-metric-for-awsvpc.yaml

aws cloudformation create-stack --stack-name CWAgent-Prometheus-ECS-${ECS_CLUSTER_NAME}-${ECS_LAUNCH_TYPE}-awsvpc \
    --template-body file://cwagent-ecs-prometheus-metric-for-awsvpc.yaml \
    --parameters ParameterKey=ECSClusterName,ParameterValue=${ECS_CLUSTER_NAME} \
                 ParameterKey=CreateIAMRoles,ParameterValue=${CREATE_IAM_ROLES} \
                 ParameterKey=ECSLaunchType,ParameterValue=${ECS_LAUNCH_TYPE} \
                 ParameterKey=SecurityGroupID,ParameterValue=${ECS_CLUSTER_SECURITY_GROUP} \
                 ParameterKey=SubnetID,ParameterValue=${ECS_CLUSTER_SUBNET} \
                 ParameterKey=TaskRoleName,ParameterValue=${ECS_TASK_ROLE_NAME} \
                 ParameterKey=ExecutionRoleName,ParameterValue=${ECS_EXECUTION_ROLE_NAME} \
    --capabilities CAPABILITY_NAMED_IAM \
    --region ${AWS_DEFAULT_REGION} \
    --profile ${AWS_PROFILE}
```

**Criar uma pilha do CloudFormation para um cluster do Fargate no modo de rede awsvpc**

```
export AWS_PROFILE=your_aws_config_profile_eg_default
export AWS_DEFAULT_REGION=your_aws_region_eg_ap-southeast-1
export ECS_CLUSTER_NAME=your_ec2_ecs_cluster_name
export ECS_LAUNCH_TYPE=FARGATE
export CREATE_IAM_ROLES=True
export ECS_CLUSTER_SECURITY_GROUP=your_security_group_eg_sg-xxxxxxxxxx
export ECS_CLUSTER_SUBNET=your_subnet_eg_subnet-xxxxxxxxxx
export ECS_TASK_ROLE_NAME=your_selected_ecs_task_role_name
export ECS_EXECUTION_ROLE_NAME=your_selected_ecs_execution_role_name            

curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/ecs-task-definition-templates/deployment-mode/replica-service/cwagent-prometheus/cloudformation-quickstart/cwagent-ecs-prometheus-metric-for-awsvpc.yaml

aws cloudformation create-stack --stack-name CWAgent-Prometheus-ECS-${ECS_CLUSTER_NAME}-${ECS_LAUNCH_TYPE}-awsvpc \
    --template-body file://cwagent-ecs-prometheus-metric-for-awsvpc.yaml \
    --parameters ParameterKey=ECSClusterName,ParameterValue=${ECS_CLUSTER_NAME} \
                 ParameterKey=CreateIAMRoles,ParameterValue=${CREATE_IAM_ROLES} \
                 ParameterKey=ECSLaunchType,ParameterValue=${ECS_LAUNCH_TYPE} \
                 ParameterKey=SecurityGroupID,ParameterValue=${ECS_CLUSTER_SECURITY_GROUP} \
                 ParameterKey=SubnetID,ParameterValue=${ECS_CLUSTER_SUBNET} \
                 ParameterKey=TaskRoleName,ParameterValue=${ECS_TASK_ROLE_NAME} \
                 ParameterKey=ExecutionRoleName,ParameterValue=${ECS_EXECUTION_ROLE_NAME} \
    --capabilities CAPABILITY_NAMED_IAM \
    --region ${AWS_DEFAULT_REGION} \
    --profile ${AWS_PROFILE}
```

### Recursos da AWS criados pela pilha do CloudFormation
<a name="ContainerInsights-Prometheus-Setup-ECS-resources"></a>

A tabela a seguir lista os recursos da AWS que são criados quando você usa o CloudFormation para configurar o Container Insights com o monitoramentodo Prometheus em um cluster do Amazon ECS.


| Tipo de recurso | Nome do recurso | Comentários | 
| --- | --- | --- | 
|  AWS::SSM::Parameter  |  AmazonCloudWatch-CWAgentConfig-\$1*ECS\$1CLUSTER\$1NAME*-\$1*ECS\$1LAUNCH\$1TYPE*-\$1*ECS\$1NETWORK\$1MODE*  |  Este é o atendente do CloudWatch com a definição padrão do formato de métrica incorporado de App Mesh e Java/JMX.  | 
|  AWS::SSM::Parameter  |  AmazonCloudWatch-PrometheusConfigName-\$1*ECS\$1CLUSTER\$1NAME*-\$1*ECS\$1LAUNCH\$1TYPE*-\$1*ECS\$1NETWORK\$1MODE*  |  Esta é a configuração de extração do Prometheus.  | 
|  AWS::IAM::Role  |  **\$1ECS\$1TASK\$1ROLE\$1NAME**.   |  A função de tarefa do Amazon ECS. Isso somente é criado se você especificou **True** em `CREATE_IAM_ROLES`.  | 
|  AWS::IAM::Role  |  **\$1\$1ECS\$1EXECUTION\$1ROLE\$1NAME\$1**   |  A função de execução de tarefa do Amazon ECS. Isso somente é criado se você especificou **True** em `CREATE_IAM_ROLES`.  | 
|  AWS::ECS::TaskDefinition  |  cwagent-prometheus-\$1*ECS\$1CLUSTER\$1NAME*-\$1*ECS\$1LAUNCH\$1TYPE*-\$1*ECS\$1NETWORK\$1MODE*   |   | 
|  AWS::ECS::Service  |  cwagent-prometheus-replica-service-\$1*ECS\$1LAUNCH\$1TYPE*-\$1*ECS\$1NETWORK\$1MODE*  |   | 

### Excluir a pilha do CloudFormation para o atendente do CloudWatch com monitoramento do Prometheus
<a name="ContainerInsights-Prometheus-ECS-delete"></a>

Para excluir o atendente do CloudWatch de um cluster do Amazon ECS, insira estes comandos.

```
export AWS_PROFILE=your_aws_config_profile_eg_default
export AWS_DEFAULT_REGION=your_aws_region_eg_ap-southeast-1
export CLOUDFORMATION_STACK_NAME=your_cloudformation_stack_name

aws cloudformation delete-stack \
--stack-name ${CLOUDFORMATION_STACK_NAME} \
--region ${AWS_DEFAULT_REGION} \
--profile ${AWS_PROFILE}
```

# Extrair outras fontes do Prometheus e importar essas métricas
<a name="ContainerInsights-Prometheus-Setup-configure-ECS"></a>

O atendente do CloudWatch com monitoramento Prometheus precisa de duas configurações para extrair as métricas do Prometheus. Uma serve para as configurações padrão do Prometheus, conforme documentado em [<scrape\$1config>](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config) na documentação do Prometheus. A outra é para a configuração do atendente do CloudWatch.

Para clusters do Amazon ECS, as configurações são integradas ao Parameter Store do AWS Systems Manager pelos segredos na definição da tarefa do Amazon ECS:
+ O segredo `PROMETHEUS_CONFIG_CONTENT` é para a configuração de extração do Prometheus.
+ O segredo `CW_CONFIG_CONTENT` é para a configuração do atendente do CloudWatch. 

Para extrair outras origens de métricas do Prometheus e importar essas métricas para o CloudWatch, modifique a configuração de extração do Prometheus e a configuração do atendente do CloudWatch e implante novamente o atendente com a configuração atualizada.

**Requisitos para grupo de segurança de VPC**

As regras de entrada dos grupos de segurança para as workloads do Prometheus devem abrir as portas do Prometheus para o atendente do CloudWatch para extrair as métricas Prometheus pelo IP privado.

As regras de saída do grupo de segurança do atendente do CloudWatch devem permitir que o atendente do CloudWatch se conecte à porta das workloads do Prometheus por IP privado. 

## Configuração de extração do Prometheus
<a name="ContainerInsights-Prometheus-Setup-config-global"></a>

O atendente do CloudWatch oferece suporte às configurações de extração padrão do Prometheus, conforme documentado em [ <scrape\$1config>](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config) na documentação do Prometheus. É possível editar essa seção para atualizar as configurações que já estão nesse arquivo e adicionar outros destinos de extração do Prometheus. Por padrão, um exemplo de arquivo de configuração contém as seguintes linhas de configuração global:

```
global:
  scrape_interval: 1m
  scrape_timeout: 10s
```
+ **scrape\$1interval**: define a frequência da adição de destinos de extração de conteúdo.
+ **scrape\$1timeout**: define quanto tempo aguardar até a expiração de uma solicitação de extração de conteúdo.

Também é possível definir valores diferentes para essas configurações no nível do trabalho, a fim de substituir as configurações globais.

### Trabalhos de extração do Prometheus
<a name="ContainerInsights-Prometheus-Setup-config-scrape"></a>

Os arquivos YAML do atendente do CloudWatch já têm alguns trabalhos padrão de extração configurados. Por exemplo, nos arquivos YAML para o Amazon ECS, como `cwagent-ecs-prometheus-metric-for-bridge-host.yaml`, os trabalhos de extração padrão são configurados na seção `ecs_service_discovery`.

```
"ecs_service_discovery": {
                  "sd_frequency": "1m",
                  "sd_result_file": "/tmp/cwagent_ecs_auto_sd.yaml",
                  "docker_label": {
                  },
                  "task_definition_list": [
                    {
                      "sd_job_name": "ecs-appmesh-colors",
                      "sd_metrics_ports": "9901",
                      "sd_task_definition_arn_pattern": ".*:task-definition\/.*-ColorTeller-(white):[0-9]+",
                      "sd_metrics_path": "/stats/prometheus"
                    },
                    {
                      "sd_job_name": "ecs-appmesh-gateway",
                      "sd_metrics_ports": "9901",
                      "sd_task_definition_arn_pattern": ".*:task-definition/.*-ColorGateway:[0-9]+",
                      "sd_metrics_path": "/stats/prometheus"
                    }
                  ]
                }
```

Cada um desses destinos padrão é extraído e as métricas são enviadas ao CloudWatch em eventos de log usando o formato de métricas incorporado. Para obter mais informações, consulte [Incorporação de métricas em logs](CloudWatch_Embedded_Metric_Format.md).

Os eventos de log dos clusters do Amazon ECS são armazenados no grupo de logs **/aws/ecs/containerinsights/*cluster\$1name*/prometheus**.

Cada trabalho de extração está contido em um fluxo de logs diferente nesse grupo de logs.

Para adicionar um novo destino de extração, adicione uma nova entrada à seção `task_definition_list` na seção `ecs_service_discovery` do arquivo YAML e reinicie o atendente. Para obter um exemplo desse processo, consulte [Tutorial para adicionar um novo destino de extração do Prometheus: métricas do servidor de API do Prometheus](ContainerInsights-Prometheus-Setup-configure.md#ContainerInsights-Prometheus-Setup-new-exporters).

## Configuração do atendente do CloudWatch para o Prometheus
<a name="ContainerInsights-Prometheus-Setup-cw-agent-config"></a>

O arquivo de configuração do atendente do CloudWatch tem uma seção `prometheus` na seção `metrics_collected` para a configuração de extração do Prometheus. Contém as seguintes opções de configuração:
+ **cluster\$1name**: especifica o nome do cluster a ser adicionado como um rótulo no evento de log. Esse campo é opcional. Se você omitir, o atendente poderá detectar o nome do cluster do Amazon ECS.
+ **log\$1group\$1name**: especifica o nome do grupo de log para as métricas do Prometheus extraídas. Esse campo é opcional. Se você omitir, o CloudWatch usará **/aws/ecs/containerinsights/*cluster\$1name*/prometheus** para logs de clusters do Amazon ECS.
+ **prometheus\$1config\$1path**: especifica o caminho do arquivo de configuração de extração do Prometheus. Se o valor desse campo começar com `env:`, o conteúdo do arquivo de configuração de extração do Prometheus será recuperado da variável de ambiente do contêiner. Não altere esse campo.
+ **ecs\$1service\$1discovery**: é a seção para especificar as configurações das funções de detecção automática de destino do Amazon ECS Prometheus. Dois modos são compatíveis para detectar os destinos do Prometheus: detecção baseada no rótulo do docker do contêiner ou detecção baseada na expressão regular do ARN da definição de tarefa do Amazon ECS. Você pode usar os dois modos junto, e o atendente do CloudWatch eliminará a duplicação dos destinos detectados com base em: *\$1private\$1ip\$1:\$1port\$1/\$1metrics\$1path\$1*.

  A seção `ecs_service_discovery` pode conter os seguintes campos:
  + `sd_frequency` é a frequência para detectar os exportadores Prometheus. Especifique um número e um sufixo de unidade. Por exemplo, `1m` uma vez por minuto ou `30s` uma vez a cada 30 segundos. Os sufixos de unidade válidos são: `ns`, `us`, `ms`, `s`, `m` e `h`.

    Esse campo é opcional. O padrão é 60 segundos (1 minuto).
  + `sd_target_cluster` é o nome do cluster do Amazon ECS de destino para detecção automática. Esse campo é opcional. O padrão é o nome do cluster do Amazon ECS em que o atendente do CloudWatch está instalado. 
  + `sd_cluster_region` é a região do cluster do Amazon ECS de destino. Esse campo é opcional. O padrão é a região do cluster do Amazon ECS em que o atendente do CloudWatch está instalado.
  + `sd_result_file` é o caminho do arquivo YAML para os resultados de destino do Prometheus. A configuração de extração do Prometheus referenciará esse arquivo.
  + `docker_label` é uma seção opcional que você pode usar para especificar a configuração para detecção de serviço baseada em rótulos do docker. Se você omitir essa seção, a detecção baseada em rótulos do docker não será usada. A seção pode conter os seguintes campos:
    + `sd_port_label` é o nome do rótulo do docker do contêiner que especifica a porta do contêiner para métricas do Prometheus. O valor padrão é `ECS_PROMETHEUS_EXPORTER_PORT`. Se o contêiner não tiver esse rótulo do docker, o atendente do CloudWatch o ignorará.
    + `sd_metrics_path_label` é o nome do rótulo do docker do contêiner que especifica o caminho das métricas do Prometheus. O valor padrão é `ECS_PROMETHEUS_METRICS_PATH`. Se o contêiner não tiver esse rótulo do docker, o agente assumirá o caminho padrão `/metrics`.
    + `sd_job_name_label` é o nome do rótulo do docker do contêiner que especifica o nome do trabalho de extração do Prometheus. O valor padrão é `job`. Se o contêiner não tiver esse rótulo do docker, o atendente do CloudWatch usará o nome do trabalho na configuração de extração do Prometheus.
  + `task_definition_list` é uma seção opcional que você pode usar para especificar a configuração para detectção de serviço baseada em definição de tarefa. Se você omitir essa seção, a detecção baseada em definição de tarefa não será usada. A seção pode conter os seguintes campos:
    + `sd_task_definition_arn_pattern` é o padrão a ser usado para especificar as definições de tarefa do Amazon ECS a serem detectadas. Essa é uma expressão regular.
    + `sd_metrics_ports` lista a containerPort para as métricas do Prometheus. Separe as containerPorts com ponto e vírgula.
    + `sd_container_name_pattern` especifica os nomes de contêiner de tarefas do Amazon ECS. Essa é uma expressão regular.
    + `sd_metrics_path` especifica o caminho da métrica do Prometheus. Se você omitir isso, o atendente assumirá o caminho padrão `/metrics`
    + `sd_job_name` especifica o nome do trabalho de extração do Prometheus. Se você omitir esse campo, o atendente do CloudWatch usará o nome do trabalho na configuração de extração do Prometheus.
  + `service_name_list_for_tasks` é uma seção opcional que você pode usar para especificar a configuração para detecção de serviço baseada em definição de tarefa. Ao omitir esta seção, a detecção baseada em nome de serviço não será utilizada. A seção pode conter os seguintes campos:
    + `sd_service_name_pattern` é o padrão a ser usado para especificar o serviço do Amazon ECS em que as tarefas serão detectadas. Essa é uma expressão regular.
    + `sd_metrics_ports` lista a `containerPort` para as métricas do Prometheus. Separar múltiplas `containerPorts` com ponto e vírgula.
    + `sd_container_name_pattern` especifica os nomes de contêiner de tarefas do Amazon ECS. Essa é uma expressão regular.
    + `sd_metrics_path` especifica o caminho das métricas do Prometheus. Se você omitir isso, o atendente entenderá que o caminho padrão é `/metrics`.
    + `sd_job_name` especifica o nome do trabalho de extração do Prometheus. Se você omitir esse campo, o atendente do CloudWatch usará o nome do trabalho na configuração de extração do Prometheus. 
+ **metric\$1declaration**: são seções que especificam a matriz de logs com formato de métrica incorporado a ser gerada. Há seções `metric_declaration` para cada destino do Prometheus do qual o atendente do CloudWatch importa por padrão. Essas seções incluem os seguintes campos:
  + `label_matcher` é uma expressão regular que confere o valor dos rótulos listados em `source_labels`. As métricas correspondentes são disponibilizadas para inclusão no formato de métrica incorporado enviado ao CloudWatch. 

    Se você tiver vários rótulos especificados em `source_labels`, recomendamos não utilizar os caracteres `^` ou `$` na expressão regular para `label_matcher`.
  + `source_labels` especifica o valor dos rótulos verificados pela linha `label_matcher`.
  + `label_separator` especifica o separador a ser usado na linha ` label_matcher` se vários `source_labels` forem especificados. O padrão é `;`. É possível ver esse padrão usado na linha `label_matcher` no exemplo a seguir.
  + `metric_selectors` é uma expressão regular que especifica as métricas a serem coletadas e enviadas ao CloudWatch.
  + `dimensions` é a lista de rótulos a serem usados como dimensões do CloudWatch para cada métrica selecionada.

Veja o exemplo de `metric_declaration` a seguir.

```
"metric_declaration": [
  {
     "source_labels":[ "Service", "Namespace"],
     "label_matcher":"(.*node-exporter.*|.*kube-dns.*);kube-system$",
     "dimensions":[
        ["Service", "Namespace"]
     ],
     "metric_selectors":[
        "^coredns_dns_request_type_count_total$"
     ]
  }
]
```

Esse exemplo configura uma seção de formato de métrica incorporada a ser enviada como um evento de log se as seguintes condições forem atendidas:
+ O valor de `Service` contém `node-exporter` ou `kube-dns`.
+ O valor de `Namespace` é `kube-system`.
+ A métrica do Prometheus `coredns_dns_request_type_count_total` contém rótulos `Service` e `Namespace`.

O evento de log enviado inclui a seguinte seção destacada:

```
{
   "CloudWatchMetrics":[
      {
         "Metrics":[
            {
               "Name":"coredns_dns_request_type_count_total"
            }
         ],
         "Dimensions":[
            [
               "Namespace",
               "Service"
            ]
         ],
         "Namespace":"ContainerInsights/Prometheus"
      }
   ],
   "Namespace":"kube-system",
   "Service":"kube-dns",
   "coredns_dns_request_type_count_total":2562,
   "eks_amazonaws_com_component":"kube-dns",
   "instance":"192.168.61.254:9153",
   "job":"kubernetes-service-endpoints",
   ...
}
```

# Guia detalhado para detecção automática em clusters do Amazon ECS
<a name="ContainerInsights-Prometheus-Setup-autodiscovery-ecs"></a>

O Prometheus fornece dezenas de mecanismos dinâmicos de detecção de serviços, conforme descrito em [<scrape\$1config>](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config). Porém, não há detecção de serviço integrada para o Amazon ECS. O atendente do CloudWatch adiciona esse mecanismo.

Quando a detecção de serviço do Amazon ECS Prometheus é habilitada, o atendente do CloudWatch faz periodicamente as seguintes chamadas de API aos frontends do Amazon ECS e do Amazon EC2 para recuperar os metadados das tarefas do ECS em execução no cluster do ECS de destino. 

```
EC2:DescribeInstances
ECS:ListTasks
ECS:ListServices
ECS:DescribeContainerInstances
ECS:DescribeServices
ECS:DescribeTasks
ECS:DescribeTaskDefinition
```

Os metadados são usados pelo atendente do CloudWatch para verificar os destinos do Prometheus dentro do cluster do ECS. O atendente do CloudWatch é compatível com três modos de detecção de serviço:
+ Detecção de serviço baseada em rótulos do docker
+ Detecção de serviço baseado em expressão regular do ARN da definição de tarefa do ECS
+ Detecção de serviço baseada em expressão regular do nome do serviço do ECS

Todos os modos podem ser usados conjuntamente. O atendente do CloudWatch elimina a duplicação dos destinos detectados com base em: `{private_ip}:{port}/{metrics_path}`.

Todos os destinos detectados são gravados em um arquivo de resultado especificado pela confiiguração `sd_result_file` dentro do contêiner do atendente do CloudWatch. Veja a seguir um exemplo de arquivo de resultado: 

```
- targets:
  - 10.6.1.95:32785
  labels:
    __metrics_path__: /metrics
    ECS_PROMETHEUS_EXPORTER_PORT: "9406"
    ECS_PROMETHEUS_JOB_NAME: demo-jar-ec2-bridge-dynamic
    ECS_PROMETHEUS_METRICS_PATH: /metrics
    InstanceType: t3.medium
    LaunchType: EC2
    SubnetId: subnet-123456789012
    TaskDefinitionFamily: demo-jar-ec2-bridge-dynamic-port
    TaskGroup: family:demo-jar-ec2-bridge-dynamic-port
    TaskRevision: "7"
    VpcId: vpc-01234567890
    container_name: demo-jar-ec2-bridge-dynamic-port
    job: demo-jar-ec2-bridge-dynamic
- targets:
  - 10.6.3.193:9404
  labels:
    __metrics_path__: /metrics
    ECS_PROMETHEUS_EXPORTER_PORT_SUBSET_B: "9404"
    ECS_PROMETHEUS_JOB_NAME: demo-tomcat-ec2-bridge-mapped-port
    ECS_PROMETHEUS_METRICS_PATH: /metrics
    InstanceType: t3.medium
    LaunchType: EC2
    SubnetId: subnet-123456789012
    TaskDefinitionFamily: demo-tomcat-ec2-bridge-mapped-port
    TaskGroup: family:demo-jar-tomcat-bridge-mapped-port
    TaskRevision: "12"
    VpcId: vpc-01234567890
    container_name: demo-tomcat-ec2-bridge-mapped-port
    job: demo-tomcat-ec2-bridge-mapped-port
```

É possível integrar diretamente esse arquivo de resultados à detecção de serviços baseada em arquivo do Prometheus. Para obter mais informações sobre a detecção de serviços baseada em arquivos do Prometheus, consulte [<file\$1sd\$1config>](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#file_sd_config).

 Suponha que o arquivo resultante seja gravado em `/tmp/cwagent_ecs_auto_sd.yaml`. A seguinte configuração de extração do Prometheus o consumirá.

```
global:
  scrape_interval: 1m
  scrape_timeout: 10s
scrape_configs:
  - job_name: cwagent-ecs-file-sd-config
    sample_limit: 10000
    file_sd_configs:
      - files: [ "/tmp/cwagent_ecs_auto_sd.yaml" ]
```

O atendente do CloudWatch também acrescenta os seguintes rótulos adicionais aos destinos descobertos.
+ `container_name`
+ `TaskDefinitionFamily`
+ `TaskRevision`
+ `TaskGroup`
+ `StartedBy`
+ `LaunchType`
+ `job`
+ `__metrics_path__`
+ Rótulos do Docker

Quando o cluster tiver o tipo de inicialização do EC2, os três rótulos a seguir serão adicionados.
+ `InstanceType`
+ `VpcId`
+ `SubnetId`

**nota**  
Os rótulos do Docker que não correspondem à expressão regular `[a-zA-Z_][a-zA-Z0-9_]*` são filtrados. Isso corresponde às convenções do Prometheus listadas em `label_name`em [Arquivo de configuração](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#labelname) na documentação do Prometheus.

## Exemplos de configuração de detecção de serviços do ECS
<a name="ContainerInsights-Prometheus-Setup-autodiscovery-ecs-examples"></a>

Esta seção contém exemplos que demonstram a detecção de serviços do ECS.

**Exemplo 1**

```
"ecs_service_discovery": {
  "sd_frequency": "1m",
  "sd_result_file": "/tmp/cwagent_ecs_auto_sd.yaml",
  "docker_label": {
  }
}
```

Este exemplo habilita a detecção de serviços baseada em rótulos do docker. O atendente do CloudWatch consultará os metadados das tarefas do ECS uma vez por minuto e gravará os destinos detectados no arquivo `/tmp/cwagent_ecs_auto_sd.yaml` dentro do contêiner do atendente do CloudWatch.

O valor padrão de `sd_port_label` na seção `docker_label` é `ECS_PROMETHEUS_EXPORTER_PORT`. Se qualquer contêiner em execução nas tarefas do ECS tiver um rótulo do docker `ECS_PROMETHEUS_EXPORTER_PORT`, o atendente do CloudWatch usará seu valor como `container port` para verificar todas as portas expostas do contêiner. Se houver uma correspondência, a porta do host mapeada mais o IP privado do contêiner serão usados para construir o destino do exportador do Prometheus neste formato: `private_ip:host_port`. 

O valor padrão de `sd_metrics_path_label` na seção `docker_label` é `ECS_PROMETHEUS_METRICS_PATH`. Se o contêiner tiver esse rótulo do docker, seu valor será usado como `__metrics_path__` . Se o contêiner não tiver esse rótulo, será usado o valor padrão `/metrics`.

O valor padrão de `sd_job_name_label` na seção `docker_label` é `job`. Se o contêiner tiver esse rótulo do docker, seu valor será anexado como um dos rótulos do destino para substituir o nome do trabalho padrão especificado na configuração do Prometheus. O valor desse rótulo do docker será usado como o nome do fluxo de logs no grupo de logs do CloudWatch Logs. 

**Exemplo 2**

```
"ecs_service_discovery": {
  "sd_frequency": "15s",
  "sd_result_file": "/tmp/cwagent_ecs_auto_sd.yaml",
  "docker_label": {
    "sd_port_label": "ECS_PROMETHEUS_EXPORTER_PORT_SUBSET_A",
    "sd_job_name_label": "ECS_PROMETHEUS_JOB_NAME"  
  }
}
```

Este exemplo habilita a detecção de serviços baseada em rótulos do docker. O atendente do CloudWatch consultará os metadados das tarefas do ECS a cada 15 segundos e gravará os destinos detectados no arquivo `/tmp/cwagent_ecs_auto_sd.yaml` dentro do contêiner do atendente do CloudWatch. Os contêineres com o rótulo do docker `ECS_PROMETHEUS_EXPORTER_PORT_SUBSET_A` serão verificados. O valor do rótulo do docker `ECS_PROMETHEUS_JOB_NAME` é usado como nome do trabalho.

**Exemplo 3**

```
"ecs_service_discovery": {
  "sd_frequency": "5m",
  "sd_result_file": "/tmp/cwagent_ecs_auto_sd.yaml",
  "task_definition_list": [
    {
      "sd_job_name": "java-prometheus",
      "sd_metrics_path": "/metrics",
      "sd_metrics_ports": "9404; 9406",
      "sd_task_definition_arn_pattern": ".*:task-definition/.*javajmx.*:[0-9]+"
    },
    {
      "sd_job_name": "envoy-prometheus",
      "sd_metrics_path": "/stats/prometheus",
      "sd_container_name_pattern": "^envoy$", 
      "sd_metrics_ports": "9901",
      "sd_task_definition_arn_pattern": ".*:task-definition/.*appmesh.*:23"
    }
  ]
}
```

Este exemplo habilita a detecção de serviço baseado em expressão regular do ARN da definição de tarefa do ECS. O atendente do CloudWatch consultará os metadados das tarefas do ECS a cada cinco minutos e gravará os destinos detectados no arquivo `/tmp/cwagent_ecs_auto_sd.yaml` dentro do contêiner do atendente do CloudWatch.

São definidas duas seções de expressão regular do ARN da definição de tarefa:
+  Na primeira seção, as tarefas do ECS com `javajmx` no ARN da definição de tarefa do ECS são filtradas para a verificação da porta do contêiner. Se os contêineres dentro dessas tarefas do ECS expuserem a porta do contêiner em 9404 ou 9406, a porta do host mapeada juntamente com o IP privado do contêiner serão usados para criar os destinos do exportador do Prometheus. O valor de `sd_metrics_path` define `__metrics_path__` como `/metrics`. Assim, o atendente do CloudWatch extrairá as métricas do Prometheus de `private_ip:host_port/metrics`, e as métricas extraídas serão enviadas ao fluxo de logs `java-prometheus` no CloudWatch Logs no grupo de logs `/aws/ecs/containerinsights/cluster_name/prometheus`. 
+  Na segunda seção, as tarefas do ECS com `appmesh` no ARN da definição de tarefa do ECS e com `version` de `:23` são filtradas para a verificação da porta do contêiner. Para contêineres com um nome de `envoy` que expõem a porta do contêiner em `9901`, a porta de host mapeada e o IP privado do contêiner são usados para criar os destinos do exportador do Prometheus. Se o valor dentro dessas tarefas do ECS expuser a porta do contêiner em 9404 ou 9406, a porta do host mapeada e o IP privado do contêiner serão usados para criar os destinos do exportador do Prometheus. O valor de `sd_metrics_path` define `__metrics_path__` como `/stats/prometheus`. Assim, o atendente do CloudWatch extrairá as métricas do Prometheus de `private_ip:host_port/stats/prometheus` e enviará as métricas extraídas ao fluxo de logs `envoy-prometheus` no CloudWatch Logs no grupo de logs `/aws/ecs/containerinsights/cluster_name/prometheus`. 

**Exemplo 4**

```
"ecs_service_discovery": {
  "sd_frequency": "5m",
  "sd_result_file": "/tmp/cwagent_ecs_auto_sd.yaml",
  "service_name_list_for_tasks": [
    {
      "sd_job_name": "nginx-prometheus",
      "sd_metrics_path": "/metrics",
      "sd_metrics_ports": "9113",
      "sd_service_name_pattern": "^nginx-.*"
    },
    {
      "sd_job_name": "haproxy-prometheus",
      "sd_metrics_path": "/stats/metrics",
      "sd_container_name_pattern": "^haproxy$",
      "sd_metrics_ports": "8404",
      "sd_service_name_pattern": ".*haproxy-service.*"
    }
  ]
}
```

Este exemplo habilita a detecção de serviço baseado em expressão regular do nome do serviço do ECS. O atendente do CloudWatch consultará os metadados dos serviços do ECS a cada cinco minutos e gravará os destinos detectados no arquivo `/tmp/cwagent_ecs_auto_sd.yaml` dentro do contêiner do atendente do CloudWatch.

São definidas duas seções de expressão regular de nome de serviço:
+  Na primeira seção, as tarefas do ECS associadas aos serviços do ECS que têm nomes correspondentes à expressão regular `^nginx-.*`são filtrados para a verificação da porta do contêiner. Se os contêineres dentro dessas tarefas do ECS expuserem a porta do contêiner em 9113, a porta do host mapeada e o IP privado do contêiner serão usados para criar os destinos do exportador do Prometheus. O valor de `sd_metrics_path` define `__metrics_path__` como `/metrics`. Assim, o atendente do CloudWatch extrairá as métricas do Prometheus de `private_ip:host_port/metrics`, e as métricas extraídas serão enviadas ao fluxo de logs `nginx-prometheus` no CloudWatch Logs no grupo de logs `/aws/ecs/containerinsights/cluster_name/prometheus`. 
+  Na segunda seção, as tarefas do ECS associadas aos serviços do ECS que têm nomes correspondentes à expressão regular `.*haproxy-service.*`são filtrados para a verificação da porta do contêiner. Para contêineres com um nome de `haproxy` que expõem a porta do contêiner em 8404, a porta de host mapeada e o IP privado do contêiner são usados para criar os destinos do exportador do Prometheus. O valor de `sd_metrics_path` define `__metrics_path__` como `/stats/metrics`. Assim, o atendente do CloudWatch extrairá as métricas do Prometheus de `private_ip:host_port/stats/metrics`, e as métricas extraídas serão enviadas ao fluxo de logs `haproxy-prometheus` no CloudWatch Logs no grupo de logs `/aws/ecs/containerinsights/cluster_name/prometheus`. 

**Exemplo 5**

```
"ecs_service_discovery": {
  "sd_frequency": "1m30s",
  "sd_result_file": "/tmp/cwagent_ecs_auto_sd.yaml",
  "docker_label": {
    "sd_port_label": "MY_PROMETHEUS_EXPORTER_PORT_LABEL",
    "sd_metrics_path_label": "MY_PROMETHEUS_METRICS_PATH_LABEL",
    "sd_job_name_label": "MY_PROMETHEUS_METRICS_NAME_LABEL"  
  }
  "task_definition_list": [
    {
      "sd_metrics_ports": "9150",
      "sd_task_definition_arn_pattern": "*memcached.*"
    }
  ]
}
```

Este exemplo habilita os dois modos de detecção de serviços do ECS. O atendente do CloudWatch consultará os metadados das tarefas do ECS a cada 90 segundos e gravará os destinos detectados no arquivo `/tmp/cwagent_ecs_auto_sd.yaml` dentro do contêiner do atendente do CloudWatch. 

Para a configuração de detecção de serviços baseada em docker:
+ As tarefas do ECS com rótulo do docker `MY_PROMETHEUS_EXPORTER_PORT_LABEL` serão filtradas para a verificação de porta do Prometheus. A porta do contêiner do Prometheus de destino é especificada pelo valor do rótulo `MY_PROMETHEUS_EXPORTER_PORT_LABEL`. 
+ Utiliza-se o valor do rótulo do docker `MY_PROMETHEUS_EXPORTER_PORT_LABEL` para `__metrics_path__`. Se o contêiner não tiver esse rótulo do docker, será usado o valor padrão `/metrics`. 
+ O valor do rótulo do docker `MY_PROMETHEUS_EXPORTER_PORT_LABEL` é usado como rótulo do trabalho. Se o contêiner não tiver esse rótulo do docker, será usado o nome do trabalho definido na configuração do Prometheus.

Para configuração da detecção de serviço baseado em expressão regular do ARN da definição de tarefa do ECS:
+ As tarefas do ECS com `memcached` no ARN da definição de tarefa do ECS são filtradas para verificação da porta do contêiner. A porta de contêiner do Prometheus de destino é 9150, conforme definido por `sd_metrics_ports`. É usado o caminho padrão das métricas `/metrics`. É usado o nome do trabalho definido na configuração do Prometheus.

# (Opcional) Configurar amostra de workloads do Amazon ECS em contêineres para teste de métrica do Prometheus
<a name="ContainerInsights-Prometheus-Sample-Workloads-ECS"></a>

Para testar o suporte para métricas do Prometheus no CloudWatch Container Insights, você pode configurar uma ou mais das seguintes workloads em contêineres. O atendente do CloudWatch com suporte ao Prometheus coleta automaticamente métricas de cada uma dessas workloads. Para visualizar as métricas coletadas por padrão, consulte [Métricas do Prometheus coletadas pelo atendente do CloudWatch](ContainerInsights-Prometheus-metrics.md).

**Topics**
+ [Exemplo de workload do App Mesh para clusters do Amazon ECS](ContainerInsights-Prometheus-Sample-Workloads-ECS-appmesh.md)
+ [Exemplo de workload do Java/JMX para clusters do Amazon ECS](ContainerInsights-Prometheus-Sample-Workloads-ECS-javajmx.md)
+ [Exemplo de workload do NGINX para clusters do Amazon ECS](ContainerInsights-Prometheus-Setup-nginx-ecs.md)
+ [Exemplo de workload do NGINX Plus para clusters do Amazon ECS](ContainerInsights-Prometheus-Setup-nginx-plus-ecs.md)
+ [Tutorial para adicionar um novo destino de extração do Prometheus: Memcached no Amazon ECS](ContainerInsights-Prometheus-Setup-memcached-ecs.md)
+ [Tutorial para extração de métricas do Prometheus no Redis OSS no Amazon ECS Fargate](ContainerInsights-Prometheus-Setup-redis-ecs.md)

# Exemplo de workload do App Mesh para clusters do Amazon ECS
<a name="ContainerInsights-Prometheus-Sample-Workloads-ECS-appmesh"></a>

Para coletar métricas de uma amostra de workload do Prometheus para o Amazon ECS, é necessário estar executando o Container Insights no cluster. Para obter informações sobre como instalar o Container Insights, consulte [Configurar o Container Insights no Amazon ECS](deploy-container-insights-ECS.md).

Primeiro, siga esta [demonstração](https://github.com/aws/aws-app-mesh-examples/tree/main/examples/apps/colorapp#app-mesh-walkthrough-deploy-the-color-app-on-ecs) para implantar a amostra de aplicação de cores em seu cluster do Amazon ECS. Ao terminar, você terá métricas do App Mesh Prometheus expostas na porta 9901.

Em seguida, siga estas etapas para instalar o atendente do CloudWatch com o monitoramento Prometheus no mesmo cluster do Amazon ECS em que você instalou a aplicação de cores. As etapas desta seção instalam o atendente do CloudWatch no modo de rede de ponte. 

As variáveis de ambiente `ENVIRONMENT_NAME`, `AWS_PROFILE` e `AWS_DEFAULT_REGION`que você definir na demonstração também serão usadas nas etapas a seguir.

**Para instalar o atendente do CloudWatch com monitoramento do Prometheus para teste**

1. Baixe o modelo do CloudFormation inserindo o comando a seguir.

   ```
   curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/ecs-task-definition-templates/deployment-mode/replica-service/cwagent-prometheus/cloudformation-quickstart/cwagent-ecs-prometheus-metric-for-bridge-host.yaml
   ```

1. Defina o modo de rede inserindo os comandos a seguir.

   ```
   export ECS_CLUSTER_NAME=${ENVIRONMENT_NAME}
   export ECS_NETWORK_MODE=bridge
   ```

1. Crie a pilha do CloudFormation inserindo os comandos abaixo.

   ```
   aws cloudformation create-stack --stack-name CWAgent-Prometheus-ECS-${ECS_CLUSTER_NAME}-EC2-${ECS_NETWORK_MODE} \
       --template-body file://cwagent-ecs-prometheus-metric-for-bridge-host.yaml \
       --parameters ParameterKey=ECSClusterName,ParameterValue=${ECS_CLUSTER_NAME} \
                    ParameterKey=CreateIAMRoles,ParameterValue=True \
                    ParameterKey=ECSNetworkMode,ParameterValue=${ECS_NETWORK_MODE} \
                    ParameterKey=TaskRoleName,ParameterValue=CWAgent-Prometheus-TaskRole-${ECS_CLUSTER_NAME} \
                    ParameterKey=ExecutionRoleName,ParameterValue=CWAgent-Prometheus-ExecutionRole-${ECS_CLUSTER_NAME} \
       --capabilities CAPABILITY_NAMED_IAM \
       --region ${AWS_DEFAULT_REGION} \
       --profile ${AWS_PROFILE}
   ```

1. (Opcional) Quando a pilha do CloudFormation for criada, você verá a mensagem `CREATE_COMPLETE`. Se conferir o status antes de visualizar essa mensagem, insira o comando a seguir.

   ```
   aws cloudformation describe-stacks \
   --stack-name CWAgent-Prometheus-ECS-${ECS_CLUSTER_NAME}-EC2-${ECS_NETWORK_MODE} \
   --query 'Stacks[0].StackStatus' \
   --region ${AWS_DEFAULT_REGION} \
   --profile ${AWS_PROFILE}
   ```

**Solução de problemas do**

As etapas da demonstração usam jq para analisar o resultado de saída da AWS CLI. Para obter mais informações sobre como instalar o jq, consulte [jq](https://stedolan.github.io/jq/). Use o comando a seguir para definir o formato de saída padrão da AWS CLI para JSON, de modo que o jq possa analisá-lo corretamente. 

```
$ aws configure
```

Quando a resposta chegar a `Default output format`, insira **json**.

## Instalar o atendente do CloudWatch com monitoramento do Prometheus
<a name="ContainerInsights-Prometheus-Sample-Workloads-ECS-appmesh-uninstall"></a>

Quando terminar de testar, insira o comando a seguir para desinstalar o atendente do CloudWatch excluindo a pilha do CloudFormation.

```
aws cloudformation delete-stack \
--stack-name CWAgent-Prometheus-ECS-${ECS_CLUSTER_NAME}-EC2-${ECS_NETWORK_MODE} \
--region ${AWS_DEFAULT_REGION} \
--profile ${AWS_PROFILE}
```

# Exemplo de workload do Java/JMX para clusters do Amazon ECS
<a name="ContainerInsights-Prometheus-Sample-Workloads-ECS-javajmx"></a>

O JMX Exporter é um exportador oficial do Prometheus que pode extrair conteúdo e expor mBeans da JMX como métricas do Prometheus. Para obter mais informações, consulte [prometheus/jmx\$1exporter](https://github.com/prometheus/jmx_exporter).

O atendente do CloudWatch com suporte ao Prometheus extrai as métricas do Java/JMX Prometheus com base na configuração de detecção de serviço no cluster do Amazon ECS. Você pode configurar o JMX Exporter de modo a expor as métricas em uma porta ou metrics\$1path diferente. Se alterar a porta ou o caminho, atualize a seção `ecs_service_discovery` padrão na configuração do atendente do CloudWatch.

Para coletar métricas de uma amostra de workload do Prometheus para o Amazon ECS, é necessário estar executando o Container Insights no cluster. Para obter informações sobre como instalar o Container Insights, consulte [Configurar o Container Insights no Amazon ECS](deploy-container-insights-ECS.md).

**Para instalar o exemplo de workload do Java/JMX para clusters do Amazon ECS**

1. Siga as etapas destas seções para criar suas imagens do Docker.
   + [Exemplo: imagem do Docker da aplicação Java Jar com métricas do Prometheus](ContainerInsights-Prometheus-Sample-Workloads-javajmx.md#ContainerInsights-Prometheus-Sample-Workloads-javajmx-jar)
   + [Exemplo: imagem do Docker do Apache Tomcat com métricas do Prometheus](ContainerInsights-Prometheus-Sample-Workloads-javajmx.md#ContainerInsights-Prometheus-Sample-Workloads-javajmx-tomcat)

1. Especifique os dois rótulos do docker a seguir no arquivo de definição de tarefa do Amazon ECS. Em seguida, é possível executar a definição da tarefa como um serviço do Amazon ECS ou uma tarefa do Amazon ECS no cluster.
   + Defina `ECS_PROMETHEUS_EXPORTER_PORT` para apontar para a containerPort onde as métricas do Prometheus estão expostas.
   + Defina `Java_EMF_Metrics` como `true`. O atendente do CloudWatch usa esse sinalizador para gerar o formato de métrica incorporado no evento de log.

   Este é um exemplo:

   ```
   {
     "family": "workload-java-ec2-bridge",
     "taskRoleArn": "{{task-role-arn}}",
     "executionRoleArn": "{{execution-role-arn}}",
     "networkMode": "bridge",
     "containerDefinitions": [
       {
         "name": "tomcat-prometheus-workload-java-ec2-bridge-dynamic-port",
         "image": "your_docker_image_tag_for_tomcat_with_prometheus_metrics",
         "portMappings": [
           {
             "hostPort": 0,
             "protocol": "tcp",
             "containerPort": 9404
           }
         ],
         "dockerLabels": {
           "ECS_PROMETHEUS_EXPORTER_PORT": "9404",
           "Java_EMF_Metrics": "true"
         }
       }
     ],
     "requiresCompatibilities": [
       "EC2"  ],
     "cpu": "256",
     "memory": "512"
     }
   ```

A configuração padrão do atendente do CloudWatch no modelo CloudFormation permite a detecção de serviços baseada em rótulos do docker e a detecção de serviços baseada no ARN da definição de tarefa. Para exibir essas configurações padrão, consulte a linha 65 do [arquivo de configurações YAML do atendente do CloudWatch](https://github.com/aws-samples/amazon-cloudwatch-container-insights/blob/latest/ecs-task-definition-templates/deployment-mode/replica-service/cwagent-prometheus/cloudformation-quickstart/cwagent-ecs-prometheus-metric-for-bridge-host.yaml#L65). Os contêineres com o rótulo `ECS_PROMETHEUS_EXPORTER_PORT` serão descobertos automaticamente com base na porta de contêiner especificada para extração do Prometheus. 

A configuração padrão do atendente do CloudWatch também tem a configuração `metric_declaration` para Java/JMX na linha 112 do mesmo arquivo. Todos os rótulos do docker dos contêineres de destino serão acrescentados como rótulos adicionais nas métricas do Prometheus e enviados ao CloudWatch Logs. Para os contêineres Java/JMX com rótulo do docker `Java_EMF_Metrics=“true”`, será gerado o formato de métrica incorporado. 

# Exemplo de workload do NGINX para clusters do Amazon ECS
<a name="ContainerInsights-Prometheus-Setup-nginx-ecs"></a>

O exportador do NGINX Prometheus pode extrair e expor dados do NGINX como métricas do Prometheus. Este exemplo usa o exportador com o serviço de proxy reverso do NGINX para o Amazon ECS.

Para obter mais informações sobre o exportador do NGINX Prometheus, consulte [nginx-prometheus-exporter](https://github.com/nginxinc/nginx-prometheus-exporter) no Github. Para obter mais informações sobre o proxy reverso do NGINX, consulte [ecs-nginx-reverse-proxy](https://github.com/awslabs/ecs-nginx-reverse-proxy) no Github.

O atendente do CloudWatch com suporte ao Prometheus extrai as métricas do NGINX Prometheus com base na configuração de detecção de serviço no cluster do Amazon ECS. Você pode configurar o NGINX Prometheus Exporter de modo a expor as métricas em uma porta ou um caminho diferente. Se alterar a porta ou o caminho, atualize a seção `ecs_service_discovery` no arquivo de configuração do atendente do CloudWatch.

## Instalar o exemplo de workload de proxy reverso do NGINX para clusters do Amazon ECS
<a name="ContainerInsights-Prometheus-nginx-ecs-setup"></a>

Siga estas etapas para instalar o exemplo de workload de proxy reverso do NGINX.

### Criar as imagens do Docker
<a name="ContainerInsights-Prometheus-nginx-ecs-setup-docker"></a>

**Para criar as imagens do Docker para o exemplo de workload de proxy reverso do NGINX**

1. Baixe esta pasta do repositório de proxy reverso do NGINX:[ https://github.com/awslabs/ecs-nginx-reverse-proxy/tree/master/reverse-proxy](https://github.com/awslabs/ecs-nginx-reverse-proxy/tree/master/reverse-proxy/).

1. Encontre o diretório `app` e crie uma imagem a partir desse diretório:

   ```
   docker build -t web-server-app ./path-to-app-directory
   ```

1. Crie uma imagem personalizada para o NGINX. Primeiro, crie um diretório com estes dois arquivos:
   + Um exemplo de Dockerfile:

     ```
     FROM nginx
     COPY nginx.conf /etc/nginx/nginx.conf
     ```
   + Um arquivo `nginx.conf`, modificado a partir de [https://github.com/awslabs/ecs-nginx-reverse-proxy/tree/master/reverse-proxy](https://github.com/awslabs/ecs-nginx-reverse-proxy/tree/master/reverse-proxy/):

     ```
     events {
       worker_connections 768;
     }
     
     http {
       # Nginx will handle gzip compression of responses from the app server
       gzip on;
       gzip_proxied any;
       gzip_types text/plain application/json;
       gzip_min_length 1000;
     
       server{
         listen 8080;
         location /stub_status {
             stub_status   on;
         }
       }
     
       server {
         listen 80;
     
         # Nginx will reject anything not matching /api
         location /api {
           # Reject requests with unsupported HTTP method
           if ($request_method !~ ^(GET|POST|HEAD|OPTIONS|PUT|DELETE)$) {
             return 405;
           }
     
           # Only requests matching the whitelist expectations will
           # get sent to the application server
           proxy_pass http://app:3000;
           proxy_http_version 1.1;
           proxy_set_header Upgrade $http_upgrade;
           proxy_set_header Connection 'upgrade';
           proxy_set_header Host $host;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_cache_bypass $http_upgrade;
         }
       }
     }
     ```
**nota**  
`stub_status` deve estar habilitado na mesma porta de onde `nginx-prometheus-exporter` está configurado para extrair métricas. Em nosso exemplo de definição de tarefa, `nginx-prometheus-exporter` está configurado para extrar métricas da porta 8080.

1. Crie uma imagem a partir de arquivos em seu novo diretório:

   ```
   docker build -t nginx-reverse-proxy ./path-to-your-directory
   ```

1. Carregue as novas imagens para um repositório de imagens para uso posterior.

### Crie a definição de tarefa para executar o NGINX e a aplicação de servidor da Web no Amazon ECS
<a name="ContainerInsights-Prometheus-nginx-ecs-setup-task"></a>

Em seguida, configure a definição de tarefa.

Essa definição de tarefa permite a coleta e exportação de métricas do NGINX Prometheus. O contêiner do NGINX rastreia a entrada da aplicação e expõe esses dados à porta 8080, conforme definido em `nginx.conf`. O contêiner do exportador do NGINX Prometheus extrai essas métricas e as publica na porta 9113, para serem usadas no CloudWatch.

**Para configurar a definição de tarefa para o exemplo de workload do NGINX no Amazon ECS**

1. Crie um arquivo JSON de definição de tarefa com o seguinte conteúdo. Substitua *your-customized-nginx-iamge* pelo URI de imagem para sua imagem do NGINX personalizada e substitua *your-web-server-app-image* pelo URI de imagem de sua imagem de aplicação do servidor da Web.

   ```
   {
     "containerDefinitions": [
       {
         "name": "nginx",
         "image": "your-customized-nginx-image",
         "memory": 256,
         "cpu": 256,
         "essential": true,
         "portMappings": [
           {
             "containerPort": 80,
             "protocol": "tcp"
           }
         ],
         "links": [
           "app"
         ]
       },
       {
         "name": "app",
         "image": "your-web-server-app-image",
         "memory": 256,
         "cpu": 256,
         "essential": true
       },
       {
         "name": "nginx-prometheus-exporter",
         "image": "docker.io/nginx/nginx-prometheus-exporter:0.8.0",
         "memory": 256,
         "cpu": 256,
         "essential": true,
         "command": [
           "-nginx.scrape-uri",
           "http://nginx:8080/stub_status"
       ],
       "links":[
         "nginx"
       ],
         "portMappings":[
           {
             "containerPort": 9113,
             "protocol": "tcp"
           }
         ]
       }
     ],
     "networkMode": "bridge",
     "placementConstraints": [],
     "family": "nginx-sample-stack"
   }
   ```

1. Insira o comando a seguir para registrar a definição de tarefa.

   ```
   aws ecs register-task-definition --cli-input-json file://path-to-your-task-definition-json
   ```

1. Crie um serviço para executar a tarefa inserindo o comando a seguir:

   Não altere o nome do serviço. Executaremos um serviço de atendente do CloudWatch usando uma configuração que procura tarefas usando os padrões de nome dos serviços que os iniciaram. Por exemplo, para que o atendente do CloudWatch localize a tarefa iniciada por este comando, é possível especificar o valor de `sd_service_name_pattern` como `^nginx-service$`. A próxima seção oferece mais detalhes.

   ```
   aws ecs create-service \
    --cluster your-cluster-name \
    --service-name nginx-service \
    --task-definition nginx-sample-stack:1 \
    --desired-count 1
   ```

### Configurar o atendente do CloudWatch para extrair métricas do NGINX Prometheus
<a name="ContainerInsights-Prometheus-nginx-ecs-setup-agent"></a>

A etapa final é configurar o atendente do CloudWatch para extrair as métricas do NGINX. Neste exemplo, o atendente do CloudWatch detecta a tarefa por meio do padrão de nome de serviço e da porta 9113, onde o exportador expõe as métricas prometheus para o NGINX. Com a tarefa detectada e as métricas disponíveis, o atendente do CloudWatch começa a publicar as métricas coletadas no fluxo de logs **nginx-prometheus-exporter**. 

**Para configurar o atendente do CloudWatch para extrair métricas do NGINX**

1. Baixe a versão mais recente do arquivo YAML necessário inserindo um dos comandos a seguir.

   ```
   curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/ecs-task-definition-templates/deployment-mode/replica-service/cwagent-prometheus/cloudformation-quickstart/cwagent-ecs-prometheus-metric-for-bridge-host.yaml
   ```

1. Abra o arquivo com um editor de textos e encontre a confguração completa do atendente do CloudWatch na chave `value` da seção `resource:CWAgentConfigSSMParameter`. Depois, na seção `ecs_service_discovery`, adicione a seção `service_name_list_for_tasks` a seguir.

   ```
   "service_name_list_for_tasks": [
     {
       "sd_job_name": "nginx-prometheus-exporter",
       "sd_metrics_path": "/metrics",
       "sd_metrics_ports": "9113",
       "sd_service_name_pattern": "^nginx-service$"
      }
   ],
   ```

1. No mesmo arquivo, insira a seguinte seção na seção `metric_declaration` para permitir métricas do NGINX. Siga o padrão de recuo existente.

   ```
   {
     "source_labels": ["job"],
     "label_matcher": ".*nginx.*",
     "dimensions": [["ClusterName", "TaskDefinitionFamily", "ServiceName"]],
     "metric_selectors": [
       "^nginx_.*$"
     ]
   },
   ```

1. Se você ainda não tiver o atendente do CloudWatch implantado nesse cluster, pule para a etapa 8.

   Se já tiver o atendente do CloudWatch implantado no cluster do Amazon ECS usando o AWS CloudFormation, é possível criar um conjunto de alterações inserindo os seguintes comandos:

   ```
   ECS_CLUSTER_NAME=your_cluster_name
   AWS_REGION=your_aws_region
   ECS_NETWORK_MODE=bridge
   CREATE_IAM_ROLES=True
   ECS_TASK_ROLE_NAME=your_selected_ecs_task_role_name
   ECS_EXECUTION_ROLE_NAME=your_selected_ecs_execution_role_name
   
   aws cloudformation create-change-set --stack-name CWAgent-Prometheus-ECS-${ECS_CLUSTER_NAME}-EC2-${ECS_NETWORK_MODE} \
       --template-body file://cwagent-ecs-prometheus-metric-for-bridge-host.yaml \
       --parameters ParameterKey=ECSClusterName,ParameterValue=$ECS_CLUSTER_NAME \
                    ParameterKey=CreateIAMRoles,ParameterValue=$CREATE_IAM_ROLES \
                    ParameterKey=ECSNetworkMode,ParameterValue=$ECS_NETWORK_MODE \
                    ParameterKey=TaskRoleName,ParameterValue=$ECS_TASK_ROLE_NAME \
                    ParameterKey=ExecutionRoleName,ParameterValue=$ECS_EXECUTION_ROLE_NAME \
       --capabilities CAPABILITY_NAMED_IAM \
       --region $AWS_REGION \
       --change-set-name nginx-scraping-support
   ```

1. Abra o console do CloudFormation em [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Revisar o changeset recém-criado **nginx-scraping-support**. Você deverá ver uma alteração aplicada ao recurso **CWAgentConfigSSMParameter**. Execute o changeset e reinicie a tarefa do atendente do CloudWatch inserindo este comando:

   ```
   aws ecs update-service --cluster $ECS_CLUSTER_NAME \
   --desired-count 0 \
   --service cwagent-prometheus-replica-service-EC2-$ECS_NETWORK_MODE \
   --region $AWS_REGION
   ```

1. Aguarde cerca de 10 segundos e insira este comando.

   ```
   aws ecs update-service --cluster $ECS_CLUSTER_NAME \
   --desired-count 1 \
   --service cwagent-prometheus-replica-service-EC2-$ECS_NETWORK_MODE \
   --region $AWS_REGION
   ```

1. Se você estiver instalando o atendente do CloudWatch com coleta de métricas do Prometheus no cluster pela primeira vez, insira estes comandos.

   ```
   ECS_CLUSTER_NAME=your_cluster_name
   AWS_REGION=your_aws_region
   ECS_NETWORK_MODE=bridge
   CREATE_IAM_ROLES=True
   ECS_TASK_ROLE_NAME=your_selected_ecs_task_role_name
   ECS_EXECUTION_ROLE_NAME=your_selected_ecs_execution_role_name
   
   aws cloudformation create-stack --stack-name CWAgent-Prometheus-ECS-${ECS_CLUSTER_NAME}-EC2-${ECS_NETWORK_MODE} \
       --template-body file://cwagent-ecs-prometheus-metric-for-bridge-host.yaml \
       --parameters ParameterKey=ECSClusterName,ParameterValue=$ECS_CLUSTER_NAME \
                    ParameterKey=CreateIAMRoles,ParameterValue=$CREATE_IAM_ROLES \
                    ParameterKey=ECSNetworkMode,ParameterValue=$ECS_NETWORK_MODE \
                    ParameterKey=TaskRoleName,ParameterValue=$ECS_TASK_ROLE_NAME \
                    ParameterKey=ExecutionRoleName,ParameterValue=$ECS_EXECUTION_ROLE_NAME \
       --capabilities CAPABILITY_NAMED_IAM \
       --region $AWS_REGION
   ```

## Visualizar métricas e logs do NGINX
<a name="ContainerInsights-Prometheus-Setup-nginx-view"></a>

Agora é possível visualizar as métricas do NGINX que estão sendo coletadas.

**Para visualizar as métricas do exemplo de workload do NGINX**

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

1. Na região da em que o cluster está em execução, escolha **Metrics** (Métricas) no painel de navegação à esquerda. Encontre o namespace **ContainerInsights/Prometheus** para ver as métricas.

1. Para visualizar os eventos do CloudWatch Logs, escolha **Log Groups** (Grupos de logs) no painel de navegação. Os eventos estão no grupo de logs **/aws/containerinsights/*your\$1cluster\$1name*/prometheus**, no fluxo de logs *nginx-prometheus-exporter*.

# Exemplo de workload do NGINX Plus para clusters do Amazon ECS
<a name="ContainerInsights-Prometheus-Setup-nginx-plus-ecs"></a>

O NGINX Plus é a versão comercial do NGINX. É necessário ter uma licença para usá-lo. Para obter mais informações, consulte [NGINX Plus](https://www.nginx.com/products/nginx/).

O exportador do NGINX Prometheus pode extrair e expor dados do NGINX como métricas do Prometheus. Este exemplo usa o exportador com o serviço de proxy reverso do NGINX Plus para o Amazon ECS.

Para obter mais informações sobre o exportador do NGINX Prometheus, consulte [nginx-prometheus-exporter](https://github.com/nginxinc/nginx-prometheus-exporter) no Github. Para obter mais informações sobre o proxy reverso do NGINX, consulte [ecs-nginx-reverse-proxy](https://github.com/awslabs/ecs-nginx-reverse-proxy) no Github.

O atendente do CloudWatch com suporte ao Prometheus extrai as métricas do NGINX Plus Prometheus com base na configuração de detecção de serviço no cluster do Amazon ECS. Você pode configurar o NGINX Prometheus Exporter de modo a expor as métricas em uma porta ou um caminho diferente. Se alterar a porta ou o caminho, atualize a seção `ecs_service_discovery` no arquivo de configuração do atendente do CloudWatch.

## Instalar o exemplo de workload de proxy reverso do NGINX Plus para clusters do Amazon ECS
<a name="ContainerInsights-Prometheus-nginx-plus-ecs-setup"></a>

Siga estas etapas para instalar o exemplo de workload de proxy reverso do NGINX.

### Criar as imagens do Docker
<a name="ContainerInsights-Prometheus-nginx-plus-ecs-setup-docker"></a>

**Para criar as imagens do Docker para o exemplo de workload de proxy reverso do NGINX Plus**

1. Baixe esta pasta do repositório de proxy reverso do NGINX:[ https://github.com/awslabs/ecs-nginx-reverse-proxy/tree/master/reverse-proxy](https://github.com/awslabs/ecs-nginx-reverse-proxy/tree/master/reverse-proxy/).

1. Encontre o diretório `app` e crie uma imagem a partir desse diretório:

   ```
   docker build -t web-server-app ./path-to-app-directory
   ```

1. Crie uma imagem personalizada para o NGINX Plus. Para poder criar a imagem para o NGINX Plus, é necessário obter a chave chamada `nginx-repo.key` e o certificado SSL `nginx-repo.crt` para seu NGINX Plus licenciado. Crie um diretório e armazene em seus arquivos `nginx-repo.key` e `nginx-repo.crt`. 

   No diretório que você acabou de criar, crie estes dois arquivos:
   + Um exemplo de Dockerfile com o conteúdo a seguir. Este arquivo do docker é adotado a partir de um arquivo de exemplo disponível em [https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-docker/\$1docker\$1plus\$1image](https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-docker/#docker_plus_image). A mudança importante que fazemos é carregar um arquivo separado, chamado `nginx.conf`, que será criado na próxima etapa.

     ```
     FROM debian:buster-slim
     
     LABEL maintainer="NGINX Docker Maintainers <docker-maint@nginx.com>“
     
     # Define NGINX versions for NGINX Plus and NGINX Plus modules
     # Uncomment this block and the versioned nginxPackages block in the main RUN
     # instruction to install a specific release
     # ENV NGINX_VERSION 21
     # ENV NJS_VERSION 0.3.9
     # ENV PKG_RELEASE 1~buster
     
     # Download certificate and key from the customer portal (https://cs.nginx.com (https://cs.nginx.com/))
     # and copy to the build context
     COPY nginx-repo.crt /etc/ssl/nginx/
     COPY nginx-repo.key /etc/ssl/nginx/
     # COPY nginx.conf /etc/ssl/nginx/nginx.conf
     
     RUN set -x \
     # Create nginx user/group first, to be consistent throughout Docker variants
     && addgroup --system --gid 101 nginx \
     && adduser --system --disabled-login --ingroup nginx --no-create-home --home /nonexistent --gecos "nginx user" --shell /bin/false --uid 101 nginx \
     && apt-get update \
     && apt-get install --no-install-recommends --no-install-suggests -y ca-certificates gnupg1 \
     && \
     NGINX_GPGKEY=573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62; \
     found=''; \
     for server in \
     ha.pool.sks-keyservers.net (http://ha.pool.sks-keyservers.net/) \
     hkp://keyserver.ubuntu.com:80 \
     hkp://p80.pool.sks-keyservers.net:80 \
     pgp.mit.edu (http://pgp.mit.edu/) \
     ; do \
     echo "Fetching GPG key $NGINX_GPGKEY from $server"; \
     apt-key adv --keyserver "$server" --keyserver-options timeout=10 --recv-keys "$NGINX_GPGKEY" && found=yes && break; \
     done; \
     test -z "$found" && echo >&2 "error: failed to fetch GPG key $NGINX_GPGKEY" && exit 1; \
     apt-get remove --purge --auto-remove -y gnupg1 && rm -rf /var/lib/apt/lists/* \
     # Install the latest release of NGINX Plus and/or NGINX Plus modules
     # Uncomment individual modules if necessary
     # Use versioned packages over defaults to specify a release
     && nginxPackages=" \
     nginx-plus \
     # nginx-plus=${NGINX_VERSION}-${PKG_RELEASE} \
     # nginx-plus-module-xslt \
     # nginx-plus-module-xslt=${NGINX_VERSION}-${PKG_RELEASE} \
     # nginx-plus-module-geoip \
     # nginx-plus-module-geoip=${NGINX_VERSION}-${PKG_RELEASE} \
     # nginx-plus-module-image-filter \
     # nginx-plus-module-image-filter=${NGINX_VERSION}-${PKG_RELEASE} \
     # nginx-plus-module-perl \
     # nginx-plus-module-perl=${NGINX_VERSION}-${PKG_RELEASE} \
     # nginx-plus-module-njs \
     # nginx-plus-module-njs=${NGINX_VERSION}+${NJS_VERSION}-${PKG_RELEASE} \
     " \
     && echo "Acquire::https::plus-pkgs.nginx.com::Verify-Peer \"true\";" >> /etc/apt/apt.conf.d/90nginx \
     && echo "Acquire::https::plus-pkgs.nginx.com::Verify-Host \"true\";" >> /etc/apt/apt.conf.d/90nginx \
     && echo "Acquire::https::plus-pkgs.nginx.com::SslCert \"/etc/ssl/nginx/nginx-repo.crt\";" >> /etc/apt/apt.conf.d/90nginx \
     && echo "Acquire::https::plus-pkgs.nginx.com::SslKey \"/etc/ssl/nginx/nginx-repo.key\";" >> /etc/apt/apt.conf.d/90nginx \
     && printf "deb https://plus-pkgs.nginx.com/debian buster nginx-plus\n" > /etc/apt/sources.list.d/nginx-plus.list \
     && apt-get update \
     && apt-get install --no-install-recommends --no-install-suggests -y \
     $nginxPackages \
     gettext-base \
     curl \
     && apt-get remove --purge --auto-remove -y && rm -rf /var/lib/apt/lists/* /etc/apt/sources.list.d/nginx-plus.list \
     && rm -rf /etc/apt/apt.conf.d/90nginx /etc/ssl/nginx
     
     # Forward request logs to Docker log collector
     RUN ln -sf /dev/stdout /var/log/nginx/access.log \
     && ln -sf /dev/stderr /var/log/nginx/error.log
     
     COPY nginx.conf /etc/nginx/nginx.conf
     
     EXPOSE 80
     
     STOPSIGNAL SIGTERM
     
     CMD ["nginx", "-g", "daemon off;"]
     ```
   + Um arquivo `nginx.conf`, modificado a partir de [https://github.com/awslabs/ecs-nginx-reverse-proxy/tree/master/reverse-proxy/nginx](https://github.com/awslabs/ecs-nginx-reverse-proxy/tree/master/reverse-proxy/nginx).

     ```
     events {
       worker_connections 768;
     }
     
     http {
       # Nginx will handle gzip compression of responses from the app server
       gzip on;
       gzip_proxied any;
       gzip_types text/plain application/json;
       gzip_min_length 1000;
     
       upstream backend {
         zone name 10m;
         server app:3000    weight=2;
         server app2:3000    weight=1;
       }
     
       server{
         listen 8080;
         location /api {
           api write=on;
         }
       }
     
       match server_ok {
         status 100-599;
       }
     
       server {
         listen 80;
         status_zone zone;
         # Nginx will reject anything not matching /api
         location /api {
           # Reject requests with unsupported HTTP method
           if ($request_method !~ ^(GET|POST|HEAD|OPTIONS|PUT|DELETE)$) {
             return 405;
           }
     
           # Only requests matching the whitelist expectations will
           # get sent to the application server
           proxy_pass http://backend;
           health_check uri=/lorem-ipsum match=server_ok;
           proxy_http_version 1.1;
           proxy_set_header Upgrade $http_upgrade;
           proxy_set_header Connection 'upgrade';
           proxy_set_header Host $host;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_cache_bypass $http_upgrade;
         }
       }
     }
     ```

1. Crie uma imagem a partir de arquivos em seu novo diretório:

   ```
   docker build -t nginx-plus-reverse-proxy ./path-to-your-directory
   ```

1. Carregue as novas imagens para um repositório de imagens para uso posterior.

### Crie a definição de tarefa para executar o NGINX Plus e a aplicação de servidor da Web no Amazon ECS
<a name="ContainerInsights-Prometheus-nginx-plus-ecs-setup-task"></a>

Em seguida, configure a definição de tarefa.

Essa definição de tarefa permite a coleta e exportação de métricas do NGINX Plus Prometheus. O contêiner do NGINX rastreia a entrada da aplicação e expõe esses dados à porta 8080, conforme definido em `nginx.conf`. O contêiner do exportador do NGINX Prometheus extrai essas métricas e as publica na porta 9113, para serem usadas no CloudWatch.

**Para configurar a definição de tarefa para o exemplo de workload do NGINX no Amazon ECS**

1. Crie um arquivo JSON de definição de tarefa com o seguinte conteúdo. Substitua *your-customized-nginx-plus-image* pelo URI de imagem para sua imagem do NGINX Plus personalizada e substitua *your-web-server-app-image* pelo URI de imagem de sua imagem de aplicação do servidor da Web.

   ```
   {
     "containerDefinitions": [
       {
         "name": "nginx",
         "image": "your-customized-nginx-plus-image",
         "memory": 256,
         "cpu": 256,
         "essential": true,
         "portMappings": [
           {
             "containerPort": 80,
             "protocol": "tcp"
           }
         ],
         "links": [
           "app",
           "app2"
         ]
       },
       {
         "name": "app",
         "image": "your-web-server-app-image",
         "memory": 256,
         "cpu": 128,
         "essential": true
       },
       {
         "name": "app2",
         "image": "your-web-server-app-image",
         "memory": 256,
         "cpu": 128,
         "essential": true
       },
       {
         "name": "nginx-prometheus-exporter",
         "image": "docker.io/nginx/nginx-prometheus-exporter:0.8.0",
         "memory": 256,
         "cpu": 256,
         "essential": true,
         "command": [
           "-nginx.plus",
           "-nginx.scrape-uri",
            "http://nginx:8080/api"
       ],
       "links":[
         "nginx"
       ],
         "portMappings":[
           {
             "containerPort": 9113,
             "protocol": "tcp"
           }
         ]
       }
     ],
     "networkMode": "bridge",
     "placementConstraints": [],
     "family": "nginx-plus-sample-stack"
   }
   ```

1. Registre a definição de tarefa:

   ```
   aws ecs register-task-definition --cli-input-json file://path-to-your-task-definition-json
   ```

1. Crie um serviço para executar a tarefa inserindo o comando a seguir:

   ```
   aws ecs create-service \
    --cluster your-cluster-name \
    --service-name nginx-plus-service \
    --task-definition nginx-plus-sample-stack:1 \
    --desired-count 1
   ```

   Não altere o nome do serviço. Executaremos um serviço de atendente do CloudWatch usando uma configuração que procura tarefas usando os padrões de nome dos serviços que os iniciaram. Por exemplo, para que o atendente do CloudWatch localize a tarefa iniciada por este comando, é possível especificar o valor de `sd_service_name_pattern` como `^nginx-plus-service$`. A próxima seção oferece mais detalhes.

### Configurar o atendente do CloudWatch para extrair métricas do NGINX Plus Prometheus
<a name="ContainerInsights-Prometheus-nginx-plus-ecs-setup-agent"></a>

A etapa final é configurar o atendente do CloudWatch para extrair as métricas do NGINX. Neste exemplo, o atendente do CloudWatch detecta a tarefa por meio do padrão de nome de serviço e da porta 9113, onde o exportador expõe as métricas prometheus para o NGINX. Com a tarefa detectada e as métricas disponíveis, o atendente do CloudWatch começa a publicar as métricas coletadas no fluxo de logs **nginx-prometheus-exporter**. 

**Para configurar o atendente do CloudWatch para extrair métricas do NGINX**

1. Baixe a versão mais recente do arquivo YAML necessário inserindo um dos comandos a seguir.

   ```
   curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/ecs-task-definition-templates/deployment-mode/replica-service/cwagent-prometheus/cloudformation-quickstart/cwagent-ecs-prometheus-metric-for-bridge-host.yaml
   ```

1. Abra o arquivo com um editor de textos e encontre a confguração completa do atendente do CloudWatch na chave `value` da seção `resource:CWAgentConfigSSMParameter`. Depois, na seção `ecs_service_discovery`, adicione a seção `service_name_list_for_tasks` a seguir.

   ```
   "service_name_list_for_tasks": [
     {
       "sd_job_name": "nginx-plus-prometheus-exporter",
       "sd_metrics_path": "/metrics",
       "sd_metrics_ports": "9113",
       "sd_service_name_pattern": "^nginx-plus.*"
      }
   ],
   ```

1. No mesmo arquivo, insira a seguinte seção na seção `metric_declaration` para permitir métricas do NGINX Plus. Siga o padrão de recuo existente.

   ```
   {
     "source_labels": ["job"],
     "label_matcher": "^nginx-plus.*",
     "dimensions": [["ClusterName", "TaskDefinitionFamily", "ServiceName"]],
     "metric_selectors": [
       "^nginxplus_connections_accepted$",
       "^nginxplus_connections_active$",
       "^nginxplus_connections_dropped$",
       "^nginxplus_connections_idle$",
       "^nginxplus_http_requests_total$",
       "^nginxplus_ssl_handshakes$",
       "^nginxplus_ssl_handshakes_failed$",
       "^nginxplus_up$",
       "^nginxplus_upstream_server_health_checks_fails$"
     ]
   },
   {
     "source_labels": ["job"],
     "label_matcher": "^nginx-plus.*",
     "dimensions": [["ClusterName", "TaskDefinitionFamily", "ServiceName", "upstream"]],
     "metric_selectors": [
       "^nginxplus_upstream_server_response_time$"
     ]
   },
   {
     "source_labels": ["job"],
     "label_matcher": "^nginx-plus.*",
     "dimensions": [["ClusterName", "TaskDefinitionFamily", "ServiceName", "code"]],
     "metric_selectors": [
       "^nginxplus_upstream_server_responses$",
       "^nginxplus_server_zone_responses$"
     ]
   },
   ```

1. Se você ainda não tiver o atendente do CloudWatch implantado nesse cluster, pule para a etapa 8.

   Se já tiver o atendente do CloudWatch implantado no cluster do Amazon ECS usando o AWS CloudFormation, é possível criar um conjunto de alterações inserindo os seguintes comandos:

   ```
   ECS_CLUSTER_NAME=your_cluster_name
   AWS_REGION=your_aws_region
   ECS_NETWORK_MODE=bridge
   CREATE_IAM_ROLES=True
   ECS_TASK_ROLE_NAME=your_selected_ecs_task_role_name
   ECS_EXECUTION_ROLE_NAME=your_selected_ecs_execution_role_name
   
   aws cloudformation create-change-set --stack-name CWAgent-Prometheus-ECS-${ECS_CLUSTER_NAME}-EC2-${ECS_NETWORK_MODE} \
       --template-body file://cwagent-ecs-prometheus-metric-for-bridge-host.yaml \
       --parameters ParameterKey=ECSClusterName,ParameterValue=$ECS_CLUSTER_NAME \
                    ParameterKey=CreateIAMRoles,ParameterValue=$CREATE_IAM_ROLES \
                    ParameterKey=ECSNetworkMode,ParameterValue=$ECS_NETWORK_MODE \
                    ParameterKey=TaskRoleName,ParameterValue=$ECS_TASK_ROLE_NAME \
                    ParameterKey=ExecutionRoleName,ParameterValue=$ECS_EXECUTION_ROLE_NAME \
       --capabilities CAPABILITY_NAMED_IAM \
       --region $AWS_REGION \
       --change-set-name nginx-plus-scraping-support
   ```

1. Abra o console do CloudFormation em [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Revisar o changeset recém-criado **nginx-plus-scraping-support**. Você deverá ver uma alteração aplicada ao recurso **CWAgentConfigSSMParameter**. Execute o changeset e reinicie a tarefa do atendente do CloudWatch inserindo este comando:

   ```
   aws ecs update-service --cluster $ECS_CLUSTER_NAME \
   --desired-count 0 \
   --service cwagent-prometheus-replica-service-EC2-$ECS_NETWORK_MODE \
   --region $AWS_REGION
   ```

1. Aguarde cerca de 10 segundos e insira este comando.

   ```
   aws ecs update-service --cluster $ECS_CLUSTER_NAME \
   --desired-count 1 \
   --service cwagent-prometheus-replica-service-EC2-$ECS_NETWORK_MODE \
   --region $AWS_REGION
   ```

1. Se você estiver instalando o atendente do CloudWatch com coleta de métricas do Prometheus no cluster pela primeira vez, insira estes comandos.

   ```
   ECS_CLUSTER_NAME=your_cluster_name
   AWS_REGION=your_aws_region
   ECS_NETWORK_MODE=bridge
   CREATE_IAM_ROLES=True
   ECS_TASK_ROLE_NAME=your_selected_ecs_task_role_name
   ECS_EXECUTION_ROLE_NAME=your_selected_ecs_execution_role_name
   
   aws cloudformation create-stack --stack-name CWAgent-Prometheus-ECS-${ECS_CLUSTER_NAME}-EC2-${ECS_NETWORK_MODE} \
       --template-body file://cwagent-ecs-prometheus-metric-for-bridge-host.yaml \
       --parameters ParameterKey=ECSClusterName,ParameterValue=$ECS_CLUSTER_NAME \
                    ParameterKey=CreateIAMRoles,ParameterValue=$CREATE_IAM_ROLES \
                    ParameterKey=ECSNetworkMode,ParameterValue=$ECS_NETWORK_MODE \
                    ParameterKey=TaskRoleName,ParameterValue=$ECS_TASK_ROLE_NAME \
                    ParameterKey=ExecutionRoleName,ParameterValue=$ECS_EXECUTION_ROLE_NAME \
       --capabilities CAPABILITY_NAMED_IAM \
       --region $AWS_REGION
   ```

## Visualizar métricas e logs do NGINX Plus
<a name="ContainerInsights-Prometheus-Setup-nginx-plus-view"></a>

Agora é possível visualizar as métricas do NGINX Plus que estão sendo coletadas.

**Para visualizar as métricas do exemplo de workload do NGINX**

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

1. Na região da em que o cluster está em execução, escolha **Metrics** (Métricas) no painel de navegação à esquerda. Encontre o namespace **ContainerInsights/Prometheus** para ver as métricas.

1. Para visualizar os eventos do CloudWatch Logs, escolha **Log Groups** (Grupos de logs) no painel de navegação. Os eventos estão no grupo de logs **/aws/containerinsights/*your\$1cluster\$1name*/prometheus**, no fluxo de logs *nginx-plus-prometheus-exporter*.

# Tutorial para adicionar um novo destino de extração do Prometheus: Memcached no Amazon ECS
<a name="ContainerInsights-Prometheus-Setup-memcached-ecs"></a>

Este tutorial fornece uma introdução prática para extrair as métricas do Prometheus de uma amostra de aplicação do Memcached em um cluster do Amazon ECS com o tipo de inicialização do EC2. O destino do exportador do Memcached Prometheus será detectado automaticamente pelo atendente do CloudWatch pela detecção de serviços baseada na definição de tarefa do ECS.

O Memcached é um sistema de cache de memória distribuída de uso geral. Geralmente é usado para acelerar sites dinâmicos orientados por banco de dados, armazenando em cache dados e objetos na RAM, a fim de reduzir o número de vezes que uma origem dos dados externa (como um banco de dados ou uma API) precisa ser lida. Para obter mais informações, consulte [O que é Memcached?](https://www.memcached.org/)

O [memchached\$1exporter](https://github.com/prometheus/memcached_exporter) (Licença Apache 2.0) é um dos exportadores oficiais do Prometheus. Por padrão, o memcache\$1exporter serve na porta 0.0.0.0:9150 em `/metrics.`

As imagens do Docker dos dois repositórios do Docker Hub a seguir são usadas neste tutorial: 
+ [ Memcached](https://hub.docker.com/_/memcached?tab=description)
+ [ prom/memcached-exporter](https://hub.docker.com/r/prom/memcached-exporter/)

**Pré-requisito**

Para coletar métricas de uma amostra de workload do Prometheus para o Amazon ECS, é necessário estar executando o Container Insights no cluster. Para obter informações sobre como instalar o Container Insights, consulte [Configurar o Container Insights no Amazon ECS](deploy-container-insights-ECS.md).

**Topics**
+ [Definir as variáveis de ambiente de cluster do Amazon ECS EC2](#ContainerInsights-Prometheus-Setup-memcached-ecs-environment)
+ [Instale a amostra de workload do Memcached](#ContainerInsights-Prometheus-Setup-memcached-ecs-install-workload)
+ [Configurar o atendente do CloudWatch para extrair métricas do Memcached Prometheus](#ContainerInsights-Prometheus-Setup-memcached-ecs-agent)
+ [VIsualizar suas métricas do Memcached](#ContainerInsights-Prometheus-ECS-memcached-view)

## Definir as variáveis de ambiente de cluster do Amazon ECS EC2
<a name="ContainerInsights-Prometheus-Setup-memcached-ecs-environment"></a>

**Para definir as variáveis de ambiente de cluster do Amazon ECS EC2**

1. Instale a CLI do Amazon ECS, caso ainda não tenha instalado. Para obter mais informações, consulte: [Instalar a CLI do Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_CLI_installation.html).

1. Defina o novo nome do cluster do Amazon ECS e a região. Por exemplo:

   ```
   ECS_CLUSTER_NAME=ecs-ec2-memcached-tutorial
   AWS_DEFAULT_REGION=ca-central-1
   ```

1. (Opcional) Se ainda não tiver um cluster do Amazon ECS com o tipo de inicialização do EC2 no qual deseja instalar a amostra de workload do Memcached e o atendente do CloudWatch, você pode criar um inserindo o comando a seguir.

   ```
   ecs-cli up --capability-iam --size 1 \
   --instance-type t3.medium \
   --cluster $ECS_CLUSTER_NAME \
   --region $AWS_REGION
   ```

   O resultado esperado desse comando é o seguinte:

   ```
   WARN[0000] You will not be able to SSH into your EC2 instances without a key pair. 
   INFO[0000] Using recommended Amazon Linux 2 AMI with ECS Agent 1.44.4 and Docker version 19.03.6-ce 
   INFO[0001] Created cluster                               cluster=ecs-ec2-memcached-tutorial region=ca-central-1
   INFO[0002] Waiting for your cluster resources to be created... 
   INFO[0002] Cloudformation stack status                   stackStatus=CREATE_IN_PROGRESS
   INFO[0063] Cloudformation stack status                   stackStatus=CREATE_IN_PROGRESS
   INFO[0124] Cloudformation stack status                   stackStatus=CREATE_IN_PROGRESS
   VPC created: vpc-xxxxxxxxxxxxxxxxx
   Security Group created: sg-xxxxxxxxxxxxxxxxx
   Subnet created: subnet-xxxxxxxxxxxxxxxxx
   Subnet created: subnet-xxxxxxxxxxxxxxxxx
   Cluster creation succeeded.
   ```

## Instale a amostra de workload do Memcached
<a name="ContainerInsights-Prometheus-Setup-memcached-ecs-install-workload"></a>

**Para instalar a amostra de workload do Memcached que expõe as métricas do Prometheus**

1. Baixe o modelo do CloudFormation do Memcached inserindo o comando a seguir.

   ```
   curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/ecs-task-definition-templates/deployment-mode/replica-service/cwagent-prometheus/sample_traffic/memcached/memcached-traffic-sample.yaml
   ```

1. Defina os nomes da função do IAM a ser criada para o Memcached inserindo os seguintes comandos.

   ```
   MEMCACHED_ECS_TASK_ROLE_NAME=memcached-prometheus-demo-ecs-task-role-name
   MEMCACHED_ECS_EXECUTION_ROLE_NAME=memcached-prometheus-demo-ecs-execution-role-name
   ```

1. Instale a amostra de workload do Memcached inserindo o comando a seguir. Este exemplo instala a workload no modo de rede `host`.

   ```
   MEMCACHED_ECS_NETWORK_MODE=host
   
   aws cloudformation create-stack --stack-name Memcached-Prometheus-Demo-ECS-$ECS_CLUSTER_NAME-EC2-$MEMCACHED_ECS_NETWORK_MODE \
       --template-body file://memcached-traffic-sample.yaml \
       --parameters ParameterKey=ECSClusterName,ParameterValue=$ECS_CLUSTER_NAME \
                    ParameterKey=ECSNetworkMode,ParameterValue=$MEMCACHED_ECS_NETWORK_MODE \
                    ParameterKey=TaskRoleName,ParameterValue=$MEMCACHED_ECS_TASK_ROLE_NAME \
                    ParameterKey=ExecutionRoleName,ParameterValue=$MEMCACHED_ECS_EXECUTION_ROLE_NAME \
       --capabilities CAPABILITY_NAMED_IAM \
       --region $AWS_REGION
   ```

A pilha do CloudFormation cria quatro recursos:
+ Uma função de tarefa do ECS
+ Uma função de execução de tarefa do ECS
+ Uma definição de tarefa do Memcached
+ Um serviço do Memcached

Na definição de tarefa do Memcached, são definidos dois contêineres:
+ O contêiner primário executa uma aplicação do Memcached simples e abre a porta 11211 para acesso.
+ O outro contêiner executa o processo do exportador do Redis OSS para expor as métricas do Prometheus na porta 9150. É o contêiner a ser detectado e extraído pelo atendente do CloudWatch.

## Configurar o atendente do CloudWatch para extrair métricas do Memcached Prometheus
<a name="ContainerInsights-Prometheus-Setup-memcached-ecs-agent"></a>

**Para configurar o atendente do CloudWatch para extrair métricas do Memcached Prometheus**

1. Baixe a versão mais recente do arquivo `cwagent-ecs-prometheus-metric-for-awsvpc.yaml` inserindo o comando a seguir.

   ```
   curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/ecs-task-definition-templates/deployment-mode/replica-service/cwagent-prometheus/cloudformation-quickstart/cwagent-ecs-prometheus-metric-for-awsvpc.yaml
   ```

1. Abra o arquivo com um editor de textos e encontre a confguração completa do atendente do CloudWatch atrás da chave `value` da seção `resource:CWAgentConfigSSMParameter`.

   Em seguida, na seção `ecs_service_discovery`, adicione a seguinte configuração na seção `task_definition_list`.

   ```
   {
       "sd_job_name": "ecs-memcached",
       "sd_metrics_ports": "9150",
       "sd_task_definition_arn_pattern": ".*:task-definition/memcached-prometheus-demo.*:[0-9]+"
   },
   ```

   Para a seção `metric_declaration`, a configuração padrão não permite nenhuma métrica do Memcached. Adicione a seção a seguir para permitir métricas do Memcached. Siga o padrão de recuo existente.

   ```
   {
     "source_labels": ["container_name"],
     "label_matcher": "memcached-exporter-.*",
     "dimensions": [["ClusterName", "TaskDefinitionFamily"]],
     "metric_selectors": [
       "^memcached_current_(bytes|items|connections)$",
       "^memcached_items_(reclaimed|evicted)_total$",
       "^memcached_(written|read)_bytes_total$",
       "^memcached_limit_bytes$",
       "^memcached_commands_total$"
     ]
   },
   {
     "source_labels": ["container_name"],
     "label_matcher": "memcached-exporter-.*",
     "dimensions": [["ClusterName", "TaskDefinitionFamily","status","command"], ["ClusterName", "TaskDefinitionFamily","command"]],
     "metric_selectors": [
       "^memcached_commands_total$"
     ]
   },
   ```

1. Se já tiver o atendente do CloudWatch implantado no cluster do Amazon ECS com o CloudFormation, é possível criar um conjunto de alterações inserindo os comandos a seguir.

   ```
   ECS_NETWORK_MODE=bridge
   CREATE_IAM_ROLES=True
   ECS_TASK_ROLE_NAME=your_selected_ecs_task_role_name
   ECS_EXECUTION_ROLE_NAME=your_selected_ecs_execution_role_name
   
   aws cloudformation create-change-set --stack-name CWAgent-Prometheus-ECS-${ECS_CLUSTER_NAME}-EC2-${ECS_NETWORK_MODE} \
       --template-body file://cwagent-ecs-prometheus-metric-for-bridge-host.yaml \
       --parameters ParameterKey=ECSClusterName,ParameterValue=$ECS_CLUSTER_NAME \
                    ParameterKey=CreateIAMRoles,ParameterValue=$CREATE_IAM_ROLES \
                    ParameterKey=ECSNetworkMode,ParameterValue=$ECS_NETWORK_MODE \
                    ParameterKey=TaskRoleName,ParameterValue=$ECS_TASK_ROLE_NAME \
                    ParameterKey=ExecutionRoleName,ParameterValue=$ECS_EXECUTION_ROLE_NAME \
       --capabilities CAPABILITY_NAMED_IAM \
       --region $AWS_REGION \
       --change-set-name memcached-scraping-support
   ```

1. Abra o console do CloudFormation em [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Revise o changeset recém-criado `memcached-scraping-support`. Você deverá ver uma alteração aplicada ao recurso `CWAgentConfigSSMParameter`. Execute o changeset e reinicie a tarefa do atendente do CloudWatch inserindo os comandos a seguir.

   ```
   aws ecs update-service --cluster $ECS_CLUSTER_NAME \
   --desired-count 0 \
   --service cwagent-prometheus-replica-service-EC2-$ECS_NETWORK_MODE \
   --region $AWS_REGION
   ```

1. Aguarde cerca de 10 segundos e insira este comando.

   ```
   aws ecs update-service --cluster $ECS_CLUSTER_NAME \
   --desired-count 1 \
   --service cwagent-prometheus-replica-service-EC2-$ECS_NETWORK_MODE \
   --region $AWS_REGION
   ```

1. Se estiver instalando o atendente do CloudWatch com coleta de métricas do Prometheus no cluster pela primeira vez, insira estes comandos:

   ```
   ECS_NETWORK_MODEE=bridge
   CREATE_IAM_ROLES=True
   ECS_TASK_ROLE_NAME=your_selected_ecs_task_role_name
   ECS_EXECUTION_ROLE_NAME=your_selected_ecs_execution_role_name
   
   aws cloudformation create-stack --stack-name CWAgent-Prometheus-ECS-${ECS_CLUSTER_NAME}-EC2-${ECS_NETWORK_MODE} \
       --template-body file://cwagent-ecs-prometheus-metric-for-bridge-host.yaml \
       --parameters ParameterKey=ECSClusterName,ParameterValue=$ECS_CLUSTER_NAME \
                    ParameterKey=CreateIAMRoles,ParameterValue=$CREATE_IAM_ROLES \
                    ParameterKey=ECSNetworkMode,ParameterValue=$ECS_NETWORK_MODE \
                    ParameterKey=TaskRoleName,ParameterValue=$ECS_TASK_ROLE_NAME \
                    ParameterKey=ExecutionRoleName,ParameterValue=$ECS_EXECUTION_ROLE_NAME \
       --capabilities CAPABILITY_NAMED_IAM \
       --region $AWS_REGION
   ```

## VIsualizar suas métricas do Memcached
<a name="ContainerInsights-Prometheus-ECS-memcached-view"></a>

Este tutorial envia as seguintes métricas ao namespace **ECS/ContainerInsights/Prometheus** no CloudWatch. É possível usar o console do CloudWatch para ver as métricas nesse namespace.


| Nome da métrica | Dimensões | 
| --- | --- | 
|  `memcached_current_items` |  `ClusterName`, `TaskDefinitionFamily`  | 
|  `memcached_current_connections` |  `ClusterName`, `TaskDefinitionFamily`  | 
|  `memcached_limit_bytes` |  `ClusterName`, `TaskDefinitionFamily`  | 
|  `memcached_current_bytes` |  `ClusterName`, `TaskDefinitionFamily`  | 
|  `memcached_written_bytes_total` |  `ClusterName`, `TaskDefinitionFamily`  | 
|  `memcached_read_bytes_total` |  `ClusterName`, `TaskDefinitionFamily`  | 
|  `memcached_items_evicted_total` |  `ClusterName`, `TaskDefinitionFamily`  | 
|  `memcached_items_reclaimed_total` |  `ClusterName`, `TaskDefinitionFamily`  | 
|  `memcached_commands_total` |  `ClusterName`, `TaskDefinitionFamily` `ClusterName`, TaskDefinitionFamily, comando `ClusterName`, TaskDefinitionFamily, status, comando  | 

**nota**  
O valor da dimensão **command** pode ser: `delete`, `get`, `cas`, `set`, `decr`, `touch`, `incr` ou `flush`.  
O valor da dimensão **status** pode ser `hit`, `miss` ou `badval`. 

Também é possível criar um painel do CloudWatch para suas métricas do Memcached Prometheus.

**Para criar um painel para métricas do Memcached Prometheus**

1. Crie variáveis de ambiente, substituindo os valores abaixo para corresponder a sua implantação.

   ```
   DASHBOARD_NAME=your_memcached_cw_dashboard_name
   ECS_TASK_DEF_FAMILY=memcached-prometheus-demo-$ECS_CLUSTER_NAME-EC2-$MEMCACHED_ECS_NETWORK_MOD
   ```

1. Use o comando a seguir para criar o painel.

   ```
   curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/ecs-task-definition-templates/deployment-mode/replica-service/cwagent-prometheus/sample_cloudwatch_dashboards/memcached/cw_dashboard_memcached.json \
   | sed "s/{{YOUR_AWS_REGION}}/$AWS_REGION/g" \
   | sed "s/{{YOUR_CLUSTER_NAME}}/$ECS_CLUSTER_NAME/g" \
   | sed "s/{{YOUR_TASK_DEF_FAMILY}}/$ECS_TASK_DEF_FAMILY/g" \
   | xargs -0 aws cloudwatch put-dashboard --dashboard-name ${DASHBOARD_NAME} --region $AWS_REGION --dashboard-body
   ```

# Tutorial para extração de métricas do Prometheus no Redis OSS no Amazon ECS Fargate
<a name="ContainerInsights-Prometheus-Setup-redis-ecs"></a>

Este tutorial apresenta uma introdução prática para extrair as métricas do Prometheus de um exemplo de aplicação do Redis OSS em um cluster do Amazon ECS Fargate. O destino do exportador do Prometheus no Redis OSS será detectado automaticamente pelo agente do CloudWatch com suporte à métrica do Prometheus com base nos rótulos do Docker do contêiner.

O Redis OSS (https://redis.io/) é um armazenamento de estrutura de dados em memória com código aberto (licença BSD), usado como banco de dados, cache e agente de mensagens. Para obter mais informações, consulte [ redis](https://redis.io/).

O redis\$1exporter (licença MIT) é usado para expor as métricas do Prometheus no Redis OSS na porta especificada (padrão: 0.0.0.0:9121). Para obter mais informações, consulte [redis\$1exporter](https://github.com/oliver006/redis_exporter).

As imagens do Docker dos dois repositórios do Docker Hub a seguir são usadas neste tutorial: 
+ [ redis](https://hub.docker.com/_/redis?tab=description)
+ [ redis\$1exporter](https://hub.docker.com/r/oliver006/redis_exporter)

**Pré-requisito**

Para coletar métricas de uma amostra de workload do Prometheus para o Amazon ECS, é necessário estar executando o Container Insights no cluster. Para obter informações sobre como instalar o Container Insights, consulte [Configurar o Container Insights no Amazon ECS](deploy-container-insights-ECS.md).

**Topics**
+ [Definir as variáveis de ambiente de cluster do Amazon ECS Fargate](#ContainerInsights-Prometheus-Setup-redis-ecs-variable)
+ [Definir as variáveis de ambiente de rede para o cluster do Amazon ECS Fargate](#ContainerInsights-Prometheus-Setup-redis-ecs-variable2)
+ [Instalar o exemplo de workload do Redis OSS](#ContainerInsights-Prometheus-Setup-redis-ecs-install-workload)
+ [Configurar o agente do CloudWatch para extrair métricas do Prometheus no Redis OSS](#ContainerInsights-Prometheus-Setup-redis-ecs-agent)
+ [Visualizar suas métricas do Redis OSS](#ContainerInsights-Prometheus-Setup-redis-view)

## Definir as variáveis de ambiente de cluster do Amazon ECS Fargate
<a name="ContainerInsights-Prometheus-Setup-redis-ecs-variable"></a>

**Para definir as variáveis de ambiente de cluster do Amazon ECS Fargate**

1. Instale a CLI do Amazon ECS, caso ainda não tenha instalado. Para obter mais informações, consulte: [Instalar a CLI do Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_CLI_installation.html).

1. Defina o novo nome do cluster do Amazon ECS e a região. Por exemplo:

   ```
   ECS_CLUSTER_NAME=ecs-fargate-redis-tutorial
   AWS_DEFAULT_REGION=ca-central-1
   ```

1. (Opcional) Se ainda não tiver um cluster do Amazon ECS Fargate no qual deseja instalar o exemplo de workload do Redis OSS e o agente do CloudWatch, você pode criar um reproduzindo o comando a seguir.

   ```
   ecs-cli up --capability-iam \
   --cluster $ECS_CLUSTER_NAME \
   --launch-type FARGATE \
   --region $AWS_DEFAULT_REGION
   ```

   O resultado esperado desse comando é o seguinte:

   ```
   INFO[0000] Created cluster   cluster=ecs-fargate-redis-tutorial region=ca-central-1
   INFO[0001] Waiting for your cluster resources to be created...
   INFO[0001] Cloudformation stack status   stackStatus=CREATE_IN_PROGRESS
   VPC created: vpc-xxxxxxxxxxxxxxxxx
   Subnet created: subnet-xxxxxxxxxxxxxxxxx
   Subnet created: subnet-xxxxxxxxxxxxxxxxx
   Cluster creation succeeded.
   ```

## Definir as variáveis de ambiente de rede para o cluster do Amazon ECS Fargate
<a name="ContainerInsights-Prometheus-Setup-redis-ecs-variable2"></a>

**Para definir as variáveis de ambiente de rede para o cluster do Amazon ECS Fargate**

1. Defina a VPC e o ID de sub-rede do cluster do Amazon ECS. Se criou um novo cluster no procedimento anterior, você verá esses valores no resultado do comando final. Senão, use os IDs do cluster existente que você usará com o Redis.

   ```
   ECS_CLUSTER_VPC=vpc-xxxxxxxxxxxxxxxxx
   ECS_CLUSTER_SUBNET_1=subnet-xxxxxxxxxxxxxxxxx
   ECS_CLUSTER_SUBNET_2=subnet-xxxxxxxxxxxxxxxxx
   ```

1. Neste tutorial, instalaremos a aplicação Redis OSS e o agente do CloudWatch no grupo de segurança padrão da VPC do cluster do Amazon ECS. O grupo de segurança padrão permite qualquer conexão de rede no mesmo grupo de segurança para que o agente do CloudWatch possa extrair as métricas do Prometheus expostas nos contêineres do Redis OSS. Em um ambiente de produção real, convém criar grupos de segurança dedicados para a aplicação do Redis OSS e o agente do CloudWatch, além de definir permissões personalizadas para eles. 

   Para obter o ID do grupo de segurança padrão, insira o comando a seguir.

   ```
   aws ec2 describe-security-groups \
   --filters Name=vpc-id,Values=$ECS_CLUSTER_VPC  \
   --region $AWS_DEFAULT_REGION
   ```

   Em seguida, defina a variável do grupo de segurança padrão do cluster Fargate inserindo o seguinte comando, substituindo *my-default-security-group* pelo valor que você encontrou no comando anterior.

   ```
   ECS_CLUSTER_SECURITY_GROUP=my-default-security-group
   ```

## Instalar o exemplo de workload do Redis OSS
<a name="ContainerInsights-Prometheus-Setup-redis-ecs-install-workload"></a>

**Para instalar o exemplo de workload do Redis OSS que expõe as métricas do Prometheus**

1. Baixe o modelo do CloudFormation para Redis OSS inserindo o comando a seguir.

   ```
   curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/ecs-task-definition-templates/deployment-mode/replica-service/cwagent-prometheus/sample_traffic/redis/redis-traffic-sample.yaml
   ```

1. Defina os nomes de perfil do IAM que serão criados para o Redis OSS inserindo os seguintes comandos.

   ```
   REDIS_ECS_TASK_ROLE_NAME=redis-prometheus-demo-ecs-task-role-name
   REDIS_ECS_EXECUTION_ROLE_NAME=redis-prometheus-demo-ecs-execution-role-name
   ```

1. Instale o exemplo de workload do Redis OSS inserindo o comando a seguir.

   ```
   aws cloudformation create-stack --stack-name Redis-Prometheus-Demo-ECS-$ECS_CLUSTER_NAME-fargate-awsvpc \
       --template-body file://redis-traffic-sample.yaml \
       --parameters ParameterKey=ECSClusterName,ParameterValue=$ECS_CLUSTER_NAME \
                    ParameterKey=SecurityGroupID,ParameterValue=$ECS_CLUSTER_SECURITY_GROUP \
                    ParameterKey=SubnetID,ParameterValue=$ECS_CLUSTER_SUBNET_1 \
                    ParameterKey=TaskRoleName,ParameterValue=$REDIS_ECS_TASK_ROLE_NAME \
                    ParameterKey=ExecutionRoleName,ParameterValue=$REDIS_ECS_EXECUTION_ROLE_NAME \
       --capabilities CAPABILITY_NAMED_IAM \
       --region $AWS_DEFAULT_REGION
   ```

A pilha do CloudFormation cria quatro recursos:
+ Uma função de tarefa do ECS
+ Uma função de execução de tarefa do ECS
+ Uma definição de tarefa do Redis OSS
+ Um serviço do Redis OSS

A definição de tarefa do Redis OSS define dois contêineres:
+ O contêiner primário executa uma aplicação simples do Redis OSS e abre a porta 6379 para acesso.
+ O outro contêiner executa o processo do exportador do Redis OSS para expor as métricas do Prometheus na porta 9121. É o contêiner a ser detectado e extraído pelo atendente do CloudWatch. O rótulo do docker a seguir é definido para que o atendente do CloudWatch possa detectar esse contêiner com base nele.

  ```
  ECS_PROMETHEUS_EXPORTER_PORT: 9121
  ```

## Configurar o agente do CloudWatch para extrair métricas do Prometheus no Redis OSS
<a name="ContainerInsights-Prometheus-Setup-redis-ecs-agent"></a>

**Para configurar o agente do CloudWatch para extrair métricas do Prometheus no Redis OSS**

1. Baixe a versão mais recente do arquivo `cwagent-ecs-prometheus-metric-for-awsvpc.yaml` inserindo o comando a seguir.

   ```
   curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/ecs-task-definition-templates/deployment-mode/replica-service/cwagent-prometheus/cloudformation-quickstart/cwagent-ecs-prometheus-metric-for-awsvpc.yaml
   ```

1. Abra o arquivo com um editor de textos e encontre a confguração completa do atendente do CloudWatch atrás da chave `value` da seção `resource:CWAgentConfigSSMParameter`.

   Em seguida, na seção `ecs_service_discovery` apresentada aqui, a descoberta de serviços baseada em `docker_label` está habilitada com as configurações padrão que são baseadas em `ECS_PROMETHEUS_EXPORTER_PORT`, que corresponde ao rótulo do Docker estabelecido na definição de tarefa do ECS para Redis OSS. Portanto, não precisamos fazer alterações nesta seção:

   ```
   ecs_service_discovery": {
     "sd_frequency": "1m",
     "sd_result_file": "/tmp/cwagent_ecs_auto_sd.yaml",
   *  "docker_label": {
     },*
     ...
   ```

   Para a seção `metric_declaration`, a configuração padrão não permite nenhuma métrica do Redis OSS. Adicione a seção a seguir para permitir métricas do Redis OSS. Siga o padrão de recuo existente.

   ```
   {
     "source_labels": ["container_name"],
     "label_matcher": "^redis-exporter-.*$",
     "dimensions": [["ClusterName","TaskDefinitionFamily"]],
     "metric_selectors": [
       "^redis_net_(in|out)put_bytes_total$",
       "^redis_(expired|evicted)_keys_total$",
       "^redis_keyspace_(hits|misses)_total$",
       "^redis_memory_used_bytes$",
       "^redis_connected_clients$"
     ]
   },
   {
     "source_labels": ["container_name"],
     "label_matcher": "^redis-exporter-.*$",
     "dimensions": [["ClusterName","TaskDefinitionFamily","cmd"]],
     "metric_selectors": [
       "^redis_commands_total$"
     ]
   },
   {
     "source_labels": ["container_name"],
     "label_matcher": "^redis-exporter-.*$",
     "dimensions": [["ClusterName","TaskDefinitionFamily","db"]],
     "metric_selectors": [
       "^redis_db_keys$"
     ]
   },
   ```

1. Se já tiver o atendente do CloudWatch implantado no cluster do Amazon ECS com o CloudFormation, é possível criar um conjunto de alterações inserindo os comandos a seguir.

   ```
   ECS_LAUNCH_TYPE=FARGATE
   CREATE_IAM_ROLES=True
   ECS_CLUSTER_SUBNET=$ECS_CLUSTER_SUBNET_1
   ECS_TASK_ROLE_NAME=your_selected_ecs_task_role_name
   ECS_EXECUTION_ROLE_NAME=your_selected_ecs_execution_role_name
   
   aws cloudformation create-change-set --stack-name CWAgent-Prometheus-ECS-$ECS_CLUSTER_NAME-$ECS_LAUNCH_TYPE-awsvpc \
       --template-body file://cwagent-ecs-prometheus-metric-for-awsvpc.yaml \
       --parameters ParameterKey=ECSClusterName,ParameterValue=$ECS_CLUSTER_NAME \
                    ParameterKey=CreateIAMRoles,ParameterValue=$CREATE_IAM_ROLES \
                    ParameterKey=ECSLaunchType,ParameterValue=$ECS_LAUNCH_TYPE \
                    ParameterKey=SecurityGroupID,ParameterValue=$ECS_CLUSTER_SECURITY_GROUP \
                    ParameterKey=SubnetID,ParameterValue=$ECS_CLUSTER_SUBNET \
                    ParameterKey=TaskRoleName,ParameterValue=$ECS_TASK_ROLE_NAME \
                    ParameterKey=ExecutionRoleName,ParameterValue=$ECS_EXECUTION_ROLE_NAME \
       --capabilities CAPABILITY_NAMED_IAM \
       --region ${AWS_DEFAULT_REGION} \
       --change-set-name redis-scraping-support
   ```

1. Abra o console do CloudFormation em [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Revise o changeset recém-criado `redis-scraping-support`. Você deverá ver uma alteração aplicada ao recurso `CWAgentConfigSSMParameter`. Execute o changeset e reinicie a tarefa do atendente do CloudWatch inserindo os comandos a seguir.

   ```
   aws ecs update-service --cluster $ECS_CLUSTER_NAME \
   --desired-count 0 \
   --service cwagent-prometheus-replica-service-$ECS_LAUNCH_TYPE-awsvpc \
   --region ${AWS_DEFAULT_REGION}
   ```

1. Aguarde cerca de 10 segundos e insira este comando.

   ```
   aws ecs update-service --cluster $ECS_CLUSTER_NAME \
   --desired-count 1 \
   --service cwagent-prometheus-replica-service-$ECS_LAUNCH_TYPE-awsvpc \
   --region ${AWS_DEFAULT_REGION}
   ```

1. Se estiver instalando o atendente do CloudWatch com coleta de métricas do Prometheus no cluster pela primeira vez, insira estes comandos:

   ```
   ECS_LAUNCH_TYPE=FARGATE
   CREATE_IAM_ROLES=True
   ECS_CLUSTER_SUBNET=$ECS_CLUSTER_SUBNET_1
   ECS_TASK_ROLE_NAME=your_selected_ecs_task_role_name
   ECS_EXECUTION_ROLE_NAME=your_selected_ecs_execution_role_name
   
   aws cloudformation create-stack --stack-name CWAgent-Prometheus-ECS-$ECS_CLUSTER_NAME-$ECS_LAUNCH_TYPE-awsvpc \
       --template-body file://cwagent-ecs-prometheus-metric-for-awsvpc.yaml \
       --parameters ParameterKey=ECSClusterName,ParameterValue=$ECS_CLUSTER_NAME \
                    ParameterKey=CreateIAMRoles,ParameterValue=$CREATE_IAM_ROLES \
                    ParameterKey=ECSLaunchType,ParameterValue=$ECS_LAUNCH_TYPE \
                    ParameterKey=SecurityGroupID,ParameterValue=$ECS_CLUSTER_SECURITY_GROUP \
                    ParameterKey=SubnetID,ParameterValue=$ECS_CLUSTER_SUBNET \
                    ParameterKey=TaskRoleName,ParameterValue=$ECS_TASK_ROLE_NAME \
                    ParameterKey=ExecutionRoleName,ParameterValue=$ECS_EXECUTION_ROLE_NAME \
       --capabilities CAPABILITY_NAMED_IAM \
       --region ${AWS_DEFAULT_REGION}
   ```

## Visualizar suas métricas do Redis OSS
<a name="ContainerInsights-Prometheus-Setup-redis-view"></a>

Este tutorial envia as seguintes métricas ao namespace **ECS/ContainerInsights/Prometheus** no CloudWatch. É possível usar o console do CloudWatch para ver as métricas nesse namespace.


| Nome da métrica | Dimensões | 
| --- | --- | 
|  `redis_net_input_bytes_total` |  ClusterName, `TaskDefinitionFamily`  | 
|  `redis_net_output_bytes_total` |  ClusterName, `TaskDefinitionFamily`  | 
|  `redis_expired_keys_total` |  ClusterName, `TaskDefinitionFamily`  | 
|  `redis_evicted_keys_total` |  ClusterName, `TaskDefinitionFamily`  | 
|  `redis_keyspace_hits_total` |  ClusterName, `TaskDefinitionFamily`  | 
|  `redis_keyspace_misses_total` |  ClusterName, `TaskDefinitionFamily`  | 
|  `redis_memory_used_bytes` |  ClusterName, `TaskDefinitionFamily`  | 
|  `redis_connected_clients` |  ClusterName, `TaskDefinitionFamily`  | 
|  `redis_commands_total` |  ` ClusterName`, `TaskDefinitionFamily`, `cmd`  | 
|  `redis_db_keys` |  `ClusterName`, `TaskDefinitionFamily`, `db`  | 

**nota**  
O valor da dimensão **cmd** pode ser: `append`, `client`, `command`, `config`, `dbsize`, `flushall`, `get`, `incr`, `info`, `latency` ou `slowlog`.  
Os valores da dimensão **db** podem ser `db0` ou `db15`. 

Também é possível criar um painel do CloudWatch para suas métricas do Prometheus no Redis OSS.

**Para criar um painel para métricas do Prometheus no Redis OSS**

1. Crie variáveis de ambiente, substituindo os valores abaixo para corresponder a sua implantação.

   ```
   DASHBOARD_NAME=your_cw_dashboard_name
   ECS_TASK_DEF_FAMILY=redis-prometheus-demo-$ECS_CLUSTER_NAME-fargate-awsvpc
   ```

1. Use o comando a seguir para criar o painel.

   ```
   curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/sample_cloudwatch_dashboards/redis/cw_dashboard_redis.json \
   | sed "s/{{YOUR_AWS_REGION}}/${REGION_NAME}/g" \
   | sed "s/{{YOUR_CLUSTER_NAME}}/${CLUSTER_NAME}/g" \
   | sed "s/{{YOUR_NAMESPACE}}/${NAMESPACE}/g" \
   ```

# Instalar e configurar a coleta de métricas do Prometheus em clusters do Amazon EKS e do Kubernetes
<a name="ContainerInsights-Prometheus-install-EKS"></a>

Para coletar métricas do Prometheus de clusters que executam o Amazon EKS ou Kubernetes, é possível usar o atendente do CloudWatch como coletor ou usar o coletor do AWS Distro for OpenTelemetry. Para obter informações sobre como usar o coletor do AWS Distro for OpenTelemetry, consulte [https://aws-otel.github.io/docs/getting-started/container-insights/eks-prometheus](https://aws-otel.github.io/docs/getting-started/container-insights/eks-prometheus).

As seções a seguir explicam como coletar métricas do Prometheus usando o atendente do CloudWatch. Elas explicam como instalar o atendente do CloudWatch com o monitoramento do Prometheus em clusters que executam o Amazon EKS e o Kubernetes e como configurar o atendente para extrair outros destinos. Estas seções também fornecem tutoriais opcionais para configurar amostras de workloads para usar testes com monitoramento do Prometheus.

**Topics**
+ [Instalar o atendente do CloudWatch com a coleção de métricas do Prometheus em clusters do Amazon EKS e do Kubernetes](ContainerInsights-Prometheus-Setup.md)

# Instalar o atendente do CloudWatch com a coleção de métricas do Prometheus em clusters do Amazon EKS e do Kubernetes
<a name="ContainerInsights-Prometheus-Setup"></a>

Esta seção explica como configurar o atendente do CloudWatch com monitoramento do Prometheus em um cluster que está executando o Amazon EKS ou o Kubernetes. Depois que você fizer isso, o atendente automaticamente extrairá e importará métricas para as seguintes workloads em execução nesse cluster.
+ AWS App Mesh
+ NGINX
+ Memcached
+ Java/JMX
+ HAProxy
+ Fluent Bit

Também é possível configurar o atendente para extrair e importar outras workloads e origens do Prometheus.

Antes de seguir estas etapas de instalação do atendente do CloudWatch para coleta de métricas do Prometheus, você deve ter um cluster em execução no Amazon EKS ou um cluster do Kubernetes em execução em uma instância do Amazon EC2.

**Requisitos para grupo de segurança de VPC**

As regras de entrada dos grupos de segurança para as workloads do Prometheus devem abrir as portas do Prometheus para o atendente do CloudWatch para extrair as métricas Prometheus pelo IP privado.

As regras de saída do grupo de segurança do atendente do CloudWatch devem permitir que o atendente do CloudWatch se conecte à porta das workloads do Prometheus por IP privado. 

**Topics**
+ [Instalar o atendente do CloudWatch com a coleção de métricas do Prometheus em clusters do Amazon EKS e do Kubernetes](#ContainerInsights-Prometheus-Setup-roles)
+ [Extrair outras fontes do Prometheus e importar essas métricas](ContainerInsights-Prometheus-Setup-configure.md)
+ [(Opcional) Configurar workloads de exemplo do Amazon EKS em contêineres para teste de métrica do Prometheus](ContainerInsights-Prometheus-Sample-Workloads.md)

## Instalar o atendente do CloudWatch com a coleção de métricas do Prometheus em clusters do Amazon EKS e do Kubernetes
<a name="ContainerInsights-Prometheus-Setup-roles"></a>

Esta seção explica como configurar o atendente do CloudWatch com monitoramento do Prometheus em um cluster que está executando o Amazon EKS ou o Kubernetes. Depois que você fizer isso, o atendente automaticamente extrairá e importará métricas para as seguintes workloads em execução nesse cluster.
+ AWS App Mesh
+ NGINX
+ Memcached
+ Java/JMX
+ HAProxy
+ Fluent Bit

Também é possível configurar o atendente para extrair e importar outras workloads e origens do Prometheus.

Antes de seguir estas etapas de instalação do atendente do CloudWatch para coleta de métricas do Prometheus, você deve ter um cluster em execução no Amazon EKS ou um cluster do Kubernetes em execução em uma instância do Amazon EC2.

**Requisitos para grupo de segurança de VPC**

As regras de entrada dos grupos de segurança para as workloads do Prometheus devem abrir as portas do Prometheus para o atendente do CloudWatch para extrair as métricas Prometheus pelo IP privado.

As regras de saída do grupo de segurança do atendente do CloudWatch devem permitir que o atendente do CloudWatch se conecte à porta das workloads do Prometheus por IP privado. 

**Topics**
+ [Configurar funções do IAM](#ContainerInsights-Prometheus-Setup-roles)
+ [Instalar o atendente do CloudWatch para coletar métricas do Prometheus](#ContainerInsights-Prometheus-Setup-install-agent)

### Configurar funções do IAM
<a name="ContainerInsights-Prometheus-Setup-roles"></a>

A primeira etapa é configurar a função do IAM necessária no cluster. Há dois métodos:
+ Configurar uma função do IAM para uma conta de serviço, também conhecida como *função de serviço*. Esse método funciona tanto para o tipo de inicialização do EC2 como para o tipo de inicialização do Fargate.
+ Adicione uma política do IAM à função do IAM usada para o cluster. Isso funciona apenas para o tipo de inicialização do EC2.

**Configurar uma função de serviço (tipo de inicialização do EC2 e tipo de inicialização do Fargate)**

Para configurar uma função de serviço, insira o comando a seguir. Substitua *MyCluster* pelo nome do cluster.

```
eksctl create iamserviceaccount \
 --name cwagent-prometheus \
--namespace amazon-cloudwatch \
 --cluster MyCluster \
--attach-policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy \
--approve \
--override-existing-serviceaccounts
```

**Adicionar uma política ao perfil do IAM do grupo de nós (apenas o tipo de inicialização do EC2)**

**Para configurar a política do IAM em um grupo de nós para compatibilidade com o Prometheus**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, escolha **Instances (Instâncias)**.

1. Você precisa encontrar o prefixo do nome da função do IAM para o cluster. Para fazer isso, marque a caixa de seleção ao lado do nome de uma instância que está no cluster e escolha **Ações**, **Segurança**, **Modificar perfil do IAM**. Copie o prefixo da função do IAM, como `eksctl-dev303-workshop-nodegroup`.

1. Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

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

1. Use a caixa de pesquisa para localizar o prefixo copiado anteriormente neste procedimento e escolha a função.

1. Escolha **Anexar políticas**.

1. Use a caixa de pesquisa para localizar o **CloudWatchAgentServerPolicy**. Marque a caixa de seleção ao lado de **CloudWatchAgentServerPolicy** e escolha **Attach policy (Anexar política)**.

### Instalar o atendente do CloudWatch para coletar métricas do Prometheus
<a name="ContainerInsights-Prometheus-Setup-install-agent"></a>

Você deve instalar o atendente do CloudWatch no cluster para coletar as métricas. O método de instalação do atendente é diferente para clusters do Amazon EKS e clusters do Kubernetes.

**Excluir versões anteriores do atendente do CloudWatch compatíveis com Prometheus**

Se você já instalou em seu cluster uma versão do atendente do CloudWatch com suporte ao Prometheus, exclua essa versão inserindo o comando a seguir. Isso é necessário apenas para versões anteriores do atendente com suporte ao Prometheus. Não é necessário excluir o atendente do CloudWatch que habilita o Container Insights sem suporte ao Prometheus.

```
kubectl delete deployment cwagent-prometheus -n amazon-cloudwatch
```

#### Instalar o atendente CloudWatch em clusters do Amazon EKS com o tipo de inicialização do EC2
<a name="ContainerInsights-Prometheus-Setup-install-agent-EKS"></a>

Para instalar o atendente do CloudWatch com suporte ao Prometheus em um cluster do Amazon EKS, siga estas etapas.

**Para instalar o atendente do CloudWatch com suporte ao Prometheus em um cluster do Amazon EKS**

1. Insira o comando a seguir para verificar se o namespace `amazon-cloudwatch` já foi criado:

   ```
   kubectl get namespace
   ```

1. Se `amazon-cloudwatch` não for exibido nos resultados, crie-o inserindo o comando a seguir:

   ```
   kubectl create namespace amazon-cloudwatch
   ```

1. Para implantar o atendente com a configuração padrão e fazer com que ele envie dados para a região da AWS em que está instalado, insira o comando a seguir:

   ```
   kubectl apply -f https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/prometheus-eks.yaml
   ```

   Em vez disso, para que o atendente envie dados para uma região diferente, siga estas etapas:

   1. Faça download do arquivo YAML para o atendente inserindo o comando a seguir:

      ```
      curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/prometheus-eks.yaml
      ```

   1. Abra o arquivo com um editor de textos e procure o bloco `cwagentconfig.json` do arquivo.

   1. Adicione as linhas realçadas, especificando a região desejada:

      ```
      cwagentconfig.json: |
          {
            "agent": {
              "region": "us-east-2"
            },
            "logs": { ...
      ```

   1. Salve o arquivo e implante o atendente usando o arquivo atualizado.

      ```
      kubectl apply -f prometheus-eks.yaml
      ```

#### Instalar o atendente CloudWatch em clusters do Amazon EKS com o tipo de inicialização do Fargate
<a name="ContainerInsights-Prometheus-Setup-install-agent-EKS-fargate"></a>

Para instalar o atendente do CloudWatch com suporte ao Prometheus em um cluster do Amazon EKS com tipo de inicialização do Fargate, siga estas etapas.

**Para instalar o atendente do CloudWatch com suporte ao Prometheus em um cluster do Amazon EKS com tipo de inicialização do Fargate**

1. Insira o comando a seguir para criar um perfil Fargate para o atendente do CloudWatch de modo que ele possa ser executado dentro do cluster. Substitua *MyCluster* pelo nome do cluster.

   ```
   eksctl create fargateprofile --cluster MyCluster \
   --name amazon-cloudwatch \
   --namespace amazon-cloudwatch
   ```

1. Para instalar o atendente do CloudWatch, insira o comando a seguir. Substitua *MyCluster* pelo nome do cluster. Esse nome é usado no nome do grupo de logs que armazena os eventos de log coletados pelo atendente, além de ser usado como uma dimensão para as métricas coletadas pelo atendente.

   Substitua a *region* pelo nome da região para onde você deseja que as métricas sejam enviadas. Por exemplo, `us-west-1`. 

   ```
   curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/prometheus-eks-fargate.yaml | 
   sed "s/{{cluster_name}}/MyCluster/;s/{{region_name}}/region/" | 
   kubectl apply -f -
   ```

#### Instalar o atendente do CloudWatch em um cluster do Kubernetes
<a name="ContainerInsights-Prometheus-Setup-install-agent-Kubernetes"></a>

Para instalar o atendente do CloudWatch com suporte ao Prometheus em um cluster do Kubernetes em execução, insira o comando a seguir:

```
curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/prometheus-k8s.yaml | 
sed "s/{{cluster_name}}/MyCluster/;s/{{region_name}}/region/" | 
kubectl apply -f -
```

Substitua *MyCluster* pelo nome do cluster. Esse nome é usado no nome do grupo de logs que armazena os eventos de log coletados pelo atendente, além de ser usado como uma dimensão para as métricas coletadas pelo atendente.

Substitua a *região* pelo nome da região da AWS para onde você deseja que as métricas sejam enviadas. Por exemplo, **us-west-1**.

#### Verificar se o atendente está em execução
<a name="ContainerInsights-Prometheus-Setup-install-agent-verify"></a>

Nos clusters do Amazon EKS e do Kubernetes, você pode inserir o seguinte comando para confirmar se o atendente está em execução.

```
kubectl get pod -l "app=cwagent-prometheus" -n amazon-cloudwatch
```

Se os resultados incluírem um único pod de atendente do CloudWatch no estado `Running`, o atendente está em execução e coletando métricas do Prometheus. Por padrão, o atendente do CloudWatch coleta métricas para App Mesh, NGINX, Memcached, Java/JMX e HAProxy a cada minuto. Para obter mais informações sobre essas métricas, consulte [Métricas do Prometheus coletadas pelo atendente do CloudWatch](ContainerInsights-Prometheus-metrics.md). Para obter instruções sobre como ver as métricas do Prometheus no CloudWatch, consulte [Visualizar as métricas do Prometheus](ContainerInsights-Prometheus-viewmetrics.md)

Você também pode configurar o atendente do CloudWatch para coletar métricas de outros exportadores do Prometheus. Para obter mais informações, consulte [Extrair outras fontes do Prometheus e importar essas métricas](ContainerInsights-Prometheus-Setup-configure.md).

# Extrair outras fontes do Prometheus e importar essas métricas
<a name="ContainerInsights-Prometheus-Setup-configure"></a>

O atendente do CloudWatch com monitoramento Prometheus precisa de duas configurações para extrair as métricas do Prometheus. Uma serve para as configurações padrão do Prometheus, conforme documentado em [<scrape\$1config>](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config) na documentação do Prometheus. A outra é para a configuração do atendente do CloudWatch.

Para clusters do Amazon EKS, as configurações são definidas em`prometheus-eks.yaml` (para o tipo de inicialização EC2) ou `prometheus-eks-fargate.yaml` (para o tipo de inicialização do Fargate) como dois mapas de configuração:
+ A seção `name: prometheus-config` contém as configurações para extração de conteúdo do Prometheus.
+ A seção `name: prometheus-cwagentconfig` contém a configuração para o atendente do CloudWatch. Você pode usar esta seção para configurar como as métricas do Prometheus são coletadas pelo CloudWatch. Por exemplo, você pode especificar quais métricas devem ser importadas ao CloudWatch e definir suas dimensões. 

Para clusters do Kubernetes em execução em instâncias do Amazon EC2, as configurações são definidas no arquivo YAML `prometheus-k8s.yaml` como dois mapas de configuração:
+ A seção `name: prometheus-config` contém as configurações para extração de conteúdo do Prometheus.
+ A seção `name: prometheus-cwagentconfig` contém a configuração para o atendente do CloudWatch. 

Para extrair outras origens de métricas do Prometheus e importar essas métricas para o CloudWatch, modifique a configuração de extração do Prometheus e a configuração do atendente do CloudWatch e implante novamente o atendente com a configuração atualizada.

**Requisitos para grupo de segurança de VPC**

As regras de entrada dos grupos de segurança para as workloads do Prometheus devem abrir as portas do Prometheus para o atendente do CloudWatch para extrair as métricas Prometheus pelo IP privado.

As regras de saída do grupo de segurança do atendente do CloudWatch devem permitir que o atendente do CloudWatch se conecte à porta das workloads do Prometheus por IP privado. 

## Configuração de extração do Prometheus
<a name="ContainerInsights-Prometheus-Setup-config-global"></a>

O atendente do CloudWatch oferece suporte às configurações de extração padrão do Prometheus, conforme documentado em [ <scrape\$1config>](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config) na documentação do Prometheus. É possível editar essa seção para atualizar as configurações que já estão nesse arquivo e adicionar outros destinos de extração do Prometheus. Por padrão, um exemplo de arquivo de configuração contém as seguintes linhas de configuração global:

```
global:
  scrape_interval: 1m
  scrape_timeout: 10s
```
+ **scrape\$1interval**: define a frequência da adição de destinos de extração de conteúdo.
+ **scrape\$1timeout**: define quanto tempo aguardar até a expiração de uma solicitação de extração de conteúdo.

Também é possível definir valores diferentes para essas configurações no nível do trabalho, a fim de substituir as configurações globais.

### Trabalhos de extração do Prometheus
<a name="ContainerInsights-Prometheus-Setup-config-scrape"></a>

Os arquivos YAML do atendente do CloudWatch já têm alguns trabalhos padrão de extração configurados. Por exemplo, em `prometheus-eks.yaml`, os trabalhos de extração padrão são configurados nas linhas `job_name` da seção `scrape_configs`. Nesse arquivo, a seguinte seção padrão `kubernetes-pod-jmx` extrai métricas do JMX Exporter.

```
   - job_name: 'kubernetes-pod-jmx'
      sample_limit: 10000
      metrics_path: /metrics
      kubernetes_sd_configs:
      - role: pod
      relabel_configs:
      - source_labels: [__address__]
        action: keep
        regex: '.*:9404$'
      - action: labelmap
        regex: __meta_kubernetes_pod_label_(.+)
      - action: replace
        source_labels:
        - __meta_kubernetes_namespace
        target_label: Namespace
      - source_labels: [__meta_kubernetes_pod_name]
        action: replace
        target_label: pod_name
      - action: replace
        source_labels:
        - __meta_kubernetes_pod_container_name
        target_label: container_name
      - action: replace
        source_labels:
        - __meta_kubernetes_pod_controller_name
        target_label: pod_controller_name
      - action: replace
        source_labels:
        - __meta_kubernetes_pod_controller_kind
        target_label: pod_controller_kind
      - action: replace
        source_labels:
        - __meta_kubernetes_pod_phase
        target_label: pod_phase
```

Cada um desses destinos padrão é extraído e as métricas são enviadas ao CloudWatch em eventos de log usando o formato de métricas incorporado. Para obter mais informações, consulte [Incorporação de métricas em logs](CloudWatch_Embedded_Metric_Format.md).

Os eventos de log dos clusters do Amazon EKS e do Kubernetes são armazenados no grupo de logs **/aws/containerinsights/*cluster\$1name*/prometheus** no CloudWatch Logs. Os eventos de log dos clusters do Amazon ECS são armazenados no grupo de logs **/aws/ecs/containerinsights/*cluster\$1name*/prometheus**.

Cada trabalho de extração está contido em um fluxo de logs diferente nesse grupo de logs. Por exemplo, o trabalho de extração do Prometheus `kubernetes-pod-appmesh-envoy` é definido para o App Mesh. Todas as métricas do App Mesh Prometheus de clusters do Amazon EKS e do Kubernetes são enviadas ao fluxo de logs chamado **/aws/containerinsights/*cluster\$1name*>prometheus/kubernetes-pod-appmesh-envoy/**.

Para adicionar um novo destino de extração, adicione uma nova seção `job_name` à seção `scrape_configs` do arquivo YAML e reinicie o atendente. Para obter um exemplo desse processo, consulte [Tutorial para adicionar um novo destino de extração do Prometheus: métricas do servidor de API do Prometheus](#ContainerInsights-Prometheus-Setup-new-exporters).

## Configuração do atendente do CloudWatch para o Prometheus
<a name="ContainerInsights-Prometheus-Setup-cw-agent-config2"></a>

O arquivo de configuração do atendente do CloudWatch tem uma seção `prometheus` na seção `metrics_collected` para a configuração de extração do Prometheus. Contém as seguintes opções de configuração:
+ **cluster\$1name**: especifica o nome do cluster a ser adicionado como um rótulo no evento de log. Esse campo é opcional. Se você omitir, o atendente poderá detectar o nome do cluster do Amazon EKS ou do Kubernetes.
+ **log\$1group\$1name**: especifica o nome do grupo de log para as métricas do Prometheus extraídas. Esse campo é opcional. Se você omitir, o CloudWatch usará **/aws/containerinsights/*cluster\$1name*/prometheus** para logs de clusters do Amazon EKS e do Kubernetes.
+ **prometheus\$1config\$1path**: especifica o caminho do arquivo de configuração de extração do Prometheus. Se o valor desse campo começar com `env:`, o conteúdo do arquivo de configuração de extração do Prometheus será recuperado da variável de ambiente do contêiner. Não altere esse campo.
+ **ecs\$1service\$1discovery**: é a seção para especificar a configuração da detecção de serviço do Amazon ECS Prometheus. Para obter mais informações, consulte [Guia detalhado para detecção automática em clusters do Amazon ECS](ContainerInsights-Prometheus-Setup-autodiscovery-ecs.md).

  A seção `ecs_service_discovery` pode conter os seguintes campos:
  + `sd_frequency` é a frequência para detectar os exportadores Prometheus. Especifique um número e um sufixo de unidade. Por exemplo, `1m` uma vez por minuto ou `30s` uma vez a cada 30 segundos. Os sufixos de unidade válidos são: `ns`, `us`, `ms`, `s`, `m` e `h`.

    Esse campo é opcional. O padrão é 60 segundos (1 minuto).
  + `sd_target_cluster` é o nome do cluster do Amazon ECS de destino para detecção automática. Esse campo é opcional. O padrão é o nome do cluster do Amazon ECS em que o atendente do CloudWatch está instalado. 
  + `sd_cluster_region` é a região do cluster do Amazon ECS de destino. Esse campo é opcional. O padrão é a região do cluster do Amazon ECS em que o atendente do CloudWatch está instalado.
  + `sd_result_file` é o caminho do arquivo YAML para os resultados de destino do Prometheus. A configuração de extração do Prometheus referenciará esse arquivo.
  + `docker_label` é uma seção opcional que você pode usar para especificar a configuração para detecção de serviço baseada em rótulos do docker. Se você omitir essa seção, a detecção baseada em rótulos do docker não será usada. A seção pode conter os seguintes campos:
    + `sd_port_label` é o nome do rótulo do docker do contêiner que especifica a porta do contêiner para métricas do Prometheus. O valor padrão é `ECS_PROMETHEUS_EXPORTER_PORT`. Se o contêiner não tiver esse rótulo do docker, o atendente do CloudWatch o ignorará.
    + `sd_metrics_path_label` é o nome do rótulo do docker do contêiner que especifica o caminho das métricas do Prometheus. O valor padrão é `ECS_PROMETHEUS_METRICS_PATH`. Se o contêiner não tiver esse rótulo do docker, o agente assumirá o caminho padrão `/metrics`.
    + `sd_job_name_label` é o nome do rótulo do docker do contêiner que especifica o nome do trabalho de extração do Prometheus. O valor padrão é `job`. Se o contêiner não tiver esse rótulo do docker, o atendente do CloudWatch usará o nome do trabalho na configuração de extração do Prometheus.
  + `task_definition_list` é uma seção opcional que você pode usar para especificar a configuração para detectção de serviço baseada em definição de tarefa. Se você omitir essa seção, a detecção baseada em definição de tarefa não será usada. A seção pode conter os seguintes campos:
    + `sd_task_definition_arn_pattern` é o padrão a ser usado para especificar as definições de tarefa do Amazon ECS a serem detectadas. Essa é uma expressão regular.
    + `sd_metrics_ports` lista a containerPort para as métricas do Prometheus. Separe as containerPorts com ponto e vírgula.
    + `sd_container_name_pattern` especifica os nomes de contêiner de tarefas do Amazon ECS. Essa é uma expressão regular.
    + `sd_metrics_path` especifica o caminho da métrica do Prometheus. Se você omitir isso, o atendente assumirá o caminho padrão `/metrics`
    + `sd_job_name` especifica o nome do trabalho de extração do Prometheus. Se você omitir esse campo, o atendente do CloudWatch usará o nome do trabalho na configuração de extração do Prometheus.
+ **metric\$1declaration**: são seções que especificam a matriz de logs com formato de métrica incorporado a ser gerada. Há seções `metric_declaration` para cada destino do Prometheus do qual o atendente do CloudWatch importa por padrão. Essas seções incluem os seguintes campos:
  + `label_matcher` é uma expressão regular que confere o valor dos rótulos listados em `source_labels`. As métricas correspondentes são disponibilizadas para inclusão no formato de métrica incorporado enviado ao CloudWatch. 

    Se você tiver vários rótulos especificados em `source_labels`, recomendamos não utilizar os caracteres `^` ou `$` na expressão regular para `label_matcher`.
  + `source_labels` especifica o valor dos rótulos verificados pela linha `label_matcher`.
  + `label_separator` especifica o separador a ser usado na linha ` label_matcher` se vários `source_labels` forem especificados. O padrão é `;`. É possível ver esse padrão usado na linha `label_matcher` no exemplo a seguir.
  + `metric_selectors` é uma expressão regular que especifica as métricas a serem coletadas e enviadas ao CloudWatch.
  + `dimensions` é a lista de rótulos a serem usados como dimensões do CloudWatch para cada métrica selecionada.

Veja o exemplo de `metric_declaration` a seguir.

```
"metric_declaration": [
  {
     "source_labels":[ "Service", "Namespace"],
     "label_matcher":"(.*node-exporter.*|.*kube-dns.*);kube-system",
     "dimensions":[
        ["Service", "Namespace"]
     ],
     "metric_selectors":[
        "^coredns_dns_request_type_count_total$"
     ]
  }
]
```

Esse exemplo configura uma seção de formato de métrica incorporada a ser enviada como um evento de log se as seguintes condições forem atendidas:
+ O valor de `Service` contém `node-exporter` ou `kube-dns`.
+ O valor de `Namespace` é `kube-system`.
+ A métrica do Prometheus `coredns_dns_request_type_count_total` contém rótulos `Service` e `Namespace`.

O evento de log enviado inclui a seguinte seção destacada:

```
{
   "CloudWatchMetrics":[
      {
         "Metrics":[
            {
               "Name":"coredns_dns_request_type_count_total"
            }
         ],
         "Dimensions":[
            [
               "Namespace",
               "Service"
            ]
         ],
         "Namespace":"ContainerInsights/Prometheus"
      }
   ],
   "Namespace":"kube-system",
   "Service":"kube-dns",
   "coredns_dns_request_type_count_total":2562,
   "eks_amazonaws_com_component":"kube-dns",
   "instance":"192.168.61.254:9153",
   "job":"kubernetes-service-endpoints",
   ...
}
```

## Tutorial para adicionar um novo destino de extração do Prometheus: métricas do servidor de API do Prometheus
<a name="ContainerInsights-Prometheus-Setup-new-exporters"></a>

O servidor de API do Kubernetes expõe métricas do Prometheus em endpoints por padrão. O exemplo oficial da configuração de extração do servidor de API do Kubernetes está disponível no [Github](https://github.com/prometheus/prometheus/blob/main/documentation/examples/prometheus-kubernetes.yml).

O tutorial a seguir mostra como executar as seguintes etapas para começar a importar métricas do servidor de API do Kubernetes para o CloudWatch:
+ Como adicionar a configuração de extração do Prometheus para o servidor de API do Kubernetes ao arquivo YAML do atendente do CloudWatch.
+ Como configurar as definições de métricas em formato de métrica incorporada no arquivo YAML do atendente do CloudWatch.
+ (Opcional) Como criar um painel do CloudWatch para as métricas do servidor de API do Kubernetes.

**nota**  
O servidor de API do Kubernetes expõe métricas de indicador, contador, histograma e resumo. Nesta versão do suporte a métricas do Prometheus, o CloudWatch importa apenas as métricas com tipos de indicador e contador.

**Como começar a coletar métricas do servidor de API do Kubernetes do Prometheus no CloudWatch**

1. Baixe a versão mais recente do arquivo `prometheus-eks.yaml`, `prometheus-eks-fargate.yaml` ou `prometheus-k8s.yaml` inserindo um dos comandos a seguir.

   Para um cluster do Amazon EKS com o tipo de inicialização do EC2, insira o comando a seguir:

   ```
   curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/prometheus-eks.yaml
   ```

   Para um cluster do Amazon EKS com o tipo de inicialização do Fargate, insira o comando a seguir:

   ```
   curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/prometheus-eks-fargate.yaml
   ```

   Para um cluster do Kubernetes em execução em uma instância do Amazon EC2, insira o comando a seguir:

   ```
   curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/prometheus-k8s.yaml
   ```

1. Abra o arquivo com um editor de texto, localize a seção `prometheus-config` e adicione a seção a seguir nela. Salve as alterações:

   ```
       # Scrape config for API servers
       - job_name: 'kubernetes-apiservers'
         kubernetes_sd_configs:
           - role: endpoints
             namespaces:
               names:
                 - default
         scheme: https
         tls_config:
           ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
           insecure_skip_verify: true
         bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
         relabel_configs:
         - source_labels: [__meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
           action: keep
           regex: kubernetes;https
         - action: replace
           source_labels:
           - __meta_kubernetes_namespace
           target_label: Namespace
         - action: replace
           source_labels:
           - __meta_kubernetes_service_name
           target_label: Service
   ```

1. Enquanto o arquivo YAML ainda está aberto no editor de texto, encontre a seção `cwagentconfig.json`. Adicione a seguinte subseção e salve as alterações. Esta seção coloca as métricas do servidor de API na lista de permissões do atendente do CloudWatch. Três tipos de métricas do servidor de API são adicionados à lista de permissões:
   + contagens de objetos etcd
   + Métricas do controlador de registro do servidor de API
   + Métricas de solicitação do servidor de API

   ```
   {"source_labels": ["job", "resource"],
     "label_matcher": "^kubernetes-apiservers;(services|daemonsets.apps|deployments.apps|configmaps|endpoints|secrets|serviceaccounts|replicasets.apps)",
     "dimensions": [["ClusterName","Service","resource"]],
     "metric_selectors": [
     "^etcd_object_counts$"
     ]
   },
   {"source_labels": ["job", "name"],
      "label_matcher": "^kubernetes-apiservers;APIServiceRegistrationController$",
      "dimensions": [["ClusterName","Service","name"]],
      "metric_selectors": [
      "^workqueue_depth$",
      "^workqueue_adds_total$",
      "^workqueue_retries_total$"
     ]
   },
   {"source_labels": ["job","code"],
     "label_matcher": "^kubernetes-apiservers;2[0-9]{2}$",
     "dimensions": [["ClusterName","Service","code"]],
     "metric_selectors": [
      "^apiserver_request_total$"
     ]
   },
   {"source_labels": ["job"],
     "label_matcher": "^kubernetes-apiservers",
     "dimensions": [["ClusterName","Service"]],
     "metric_selectors": [
     "^apiserver_request_total$"
     ]
   },
   ```

1. Se você já tem o atendente do CloudWatch com suporte ao Prometheus implantado no cluster, exclua-o inserindo o comando a seguir:

   ```
   kubectl delete deployment cwagent-prometheus -n amazon-cloudwatch
   ```

1. Implante o atendente do CloudWatch com a configuração atualizada inserindo um dos comandos a seguir. Para um cluster do Amazon EKS com o tipo de inicialização do EC2, insira:

   ```
   kubectl apply -f prometheus-eks.yaml
   ```

   Para um cluster do Amazon EKS com o tipo de inicialização do Fargate, insira o comando a seguir. Substitua *MyCluster* e *region* com valores para corresponder a sua implantação.

   ```
   cat prometheus-eks-fargate.yaml \
   | sed "s/{{cluster_name}}/MyCluster/;s/{{region_name}}/region/" \
   | kubectl apply -f -
   ```

   Para um cluster do Kubernetes, insira o comando a seguir. Substitua *MyCluster* e *region* com valores para corresponder a sua implantação.

   ```
   cat prometheus-k8s.yaml \
   | sed "s/{{cluster_name}}/MyCluster/;s/{{region_name}}/region/" \
   | kubectl apply -f -
   ```

Uma vez feito isso, será necessário ver um novo stream de log chamado ** kubernetes-apiservers ** no grupo de log **/aws/containerinsights/*cluster\$1name*/prometheus**. Esse fluxo de logs deve incluir eventos de log com uma definição de formato de métrica incorporada como a seguinte:

```
{
   "CloudWatchMetrics":[
      {
         "Metrics":[
            {
               "Name":"apiserver_request_total"
            }
         ],
         "Dimensions":[
            [
               "ClusterName",
               "Service"
            ]
         ],
         "Namespace":"ContainerInsights/Prometheus"
      }
   ],
   "ClusterName":"my-cluster-name",
   "Namespace":"default",
   "Service":"kubernetes",
   "Timestamp":"1592267020339",
   "Version":"0",
   "apiserver_request_count":0,
   "apiserver_request_total":0,
   "code":"0",
   "component":"apiserver",
   "contentType":"application/json",
   "instance":"192.0.2.0:443",
   "job":"kubernetes-apiservers",
   "prom_metric_type":"counter",
   "resource":"pods",
   "scope":"namespace",
   "verb":"WATCH",
   "version":"v1"
}
```

Você pode visualizar suas métricas no console do CloudWatch no namespace **ContainerInsights/Prometheus**. Também é possível criar um painel do CloudWatch para as métricas do servidor de API do Kubernetes do Prometheus.

### (Opcional) Criar um painel para as métricas do servidor de API do Kubernetes
<a name="ContainerInsights-Prometheus-Setup-KPI-dashboard"></a>

Para ver as métricas do servidor de API do Kubernetes em seu painel, é necessário ter concluído primeiro as etapas nas seções anteriores para começar a coletar essas métricas no CloudWatch.

**Como criar um painel para métricas do servidor de API do Kubernetes**

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

1. Verifique se você selecionou a região da AWS correta.

1. No painel de navegação, escolha **Painéis**.

1. Escolha **Create dashboard (Criar painel)**. Insira um nome para o novo painel e escolha **Create dashboard (Criar painel)**.

1. Em **Add to this dashboard (Adicionar a este painel)**, escolha **Cancel (Cancelar)**.

1. Escolha **Actions (Ações)**, **View/edit source (Exibir/editar origem)**.

1. Faça o download do seguinte arquivo JSON: [Origem do painel da API do Kubernetes](https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/sample_cloudwatch_dashboards/kubernetes_api_server/cw_dashboard_kubernetes_api_server.json).

1. Abra o arquivo JSON obtido por download com um editor de textos e faça as seguintes alterações:
   + Substitua todas as strings `{{YOUR_CLUSTER_NAME}}` pelo nome exato do cluster. Não adicione espaços em branco antes ou depois do texto.
   + Substitua todas as strings `{{YOUR_AWS_REGION}}` pelo nome da região onde as métricas são coletadas. Por exemplo, `us-west-2`. Não adicione espaços em branco antes ou depois do texto.

1. Copie todo o blob JSON e cole-o na caixa de texto no console do CloudWatch, substituindo o que já está na caixa.

1. Escolha **Update (Atualizar)**, **Save dashboard (Salvar painel)**.

# (Opcional) Configurar workloads de exemplo do Amazon EKS em contêineres para teste de métrica do Prometheus
<a name="ContainerInsights-Prometheus-Sample-Workloads"></a>

Para testar o suporte para métricas do Prometheus no CloudWatch Container Insights, você pode configurar uma ou mais das seguintes workloads em contêineres. O atendente do CloudWatch com suporte ao Prometheus coleta automaticamente métricas de cada uma dessas workloads. Para visualizar as métricas coletadas por padrão, consulte [Métricas do Prometheus coletadas pelo atendente do CloudWatch](ContainerInsights-Prometheus-metrics.md).

Antes de instalar qualquer uma dessas cargas de trabalho, instale o Helm 3.x inserindo os comandos a seguir:

```
brew install helm
```

Para obter mais informações, consulte [Helm](https://helm.sh).

**Topics**
+ [Configurar amostra de workload AWS App Mesh para o Amazon EKS e o Kubernetes](ContainerInsights-Prometheus-Sample-Workloads-appmesh.md)
+ [Configurar o NGINX com tráfego de amostra no Amazon EKS e no Kubernetes](ContainerInsights-Prometheus-Sample-Workloads-nginx.md)
+ [Configurar memcached com um exportador de métricas no Amazon EKS e no Kubernetes](ContainerInsights-Prometheus-Sample-Workloads-memcached.md)
+ [Configurar amostra de workload do Java/JMX para o Amazon EKS e o Kubernetes](ContainerInsights-Prometheus-Sample-Workloads-javajmx.md)
+ [Configurar HAProxycom um exportador de métricas no Amazon EKS e no Kubernetes](ContainerInsights-Prometheus-Sample-Workloads-haproxy.md)
+ [Tutorial para adicionar um novo destino de extração do Prometheus: Redis OSS em clusters do Amazon EKS e do Kubernetes](ContainerInsights-Prometheus-Setup-redis-eks.md)

# Configurar amostra de workload AWS App Mesh para o Amazon EKS e o Kubernetes
<a name="ContainerInsights-Prometheus-Sample-Workloads-appmesh"></a>

O suporte do Prometheus no CloudWatch Container Insights oferece suporte a AWS App Mesh. As seções a seguir explicam como configurar o App Mesh.

**Topics**
+ [Configurar a amostra de workload AWS App Mesh em um cluster do Amazon EKS com o tipo de inicialização do EC2 ou um cluster do Kubernetes](ContainerInsights-Prometheus-Sample-Workloads-appmesh-EKS.md)
+ [Configurar a amostra de workload AWS App Mesh em um cluster do Amazon EKS com o tipo de inicialização do Fargate](ContainerInsights-Prometheus-Sample-Workloads-appmesh-Fargate.md)

# Configurar a amostra de workload AWS App Mesh em um cluster do Amazon EKS com o tipo de inicialização do EC2 ou um cluster do Kubernetes
<a name="ContainerInsights-Prometheus-Sample-Workloads-appmesh-EKS"></a>

Use estas instruções ao configurar o App Mesh em um cluster que executa o Amazon EKS com o tipo de inicialização do EC2 ou em um cluster do Kubernetes.

## Configurar permissões do IAM
<a name="ContainerInsights-Prometheus-Sample-Workloads-appmesh-iam"></a>

É necessário adicionar a política **AWSAppMeshFullAccess** à função do IAM para seu grupo de nós do Amazon EKS ou do Kubernetes. No Amazon EKS, esse nome de grupo de nós é semelhante a `eksctl-integ-test-eks-prometheus-NodeInstanceRole-ABCDEFHIJKL`. No Kubernetes, ele pode ser semelhante a `nodes.integ-test-kops-prometheus.k8s.local`.

## Instalar o App Mesh
<a name="ContainerInsights-Prometheus-Sample-Workloads-appmesh-install"></a>

Para instalar o controlador do App Mesh Kubernetes, siga as instruções em [Controlador do App Mesh](https://github.com/aws/eks-charts/tree/master/stable/appmesh-controller#app-mesh-controller).

## Instalar uma amostra de aplicação
<a name="ContainerInsights-Prometheus-Sample-Workloads-appmesh-application"></a>

[aws-app-mesh-examples](https://github.com/aws/aws-app-mesh-examples) contém várias demonstrações do Kubernetes App Mesh. Com este tutorial, você instala uma amostra de aplicação de cor que mostra como as rotas http podem usar cabeçalhos para correspondência de solicitações recebidas.

**Para usar uma amostra de aplicação do App Mesh amostra para testar Insights de contêiner**

1. Instale a aplicação usando estas instruções: [https://github.com/aws/aws-app-mesh-examples/tree/main/walkthroughs/howto-k8s-http-headers](https://github.com/aws/aws-app-mesh-examples/tree/main/walkthroughs/howto-k8s-http-headers). 

1. Inicie um pod de curler para gerar tráfego:

   ```
   kubectl -n default run -it curler --image=tutum/curl /bin/bash
   ```

1. Execute curl em diferentes endpoints alterando cabeçalhos HTTP. Execute o comando curl várias vezes, conforme mostrado:

   ```
   curl -H "color_header: blue" front.howto-k8s-http-headers.svc.cluster.local:8080/; echo;
   
   curl -H "color_header: red" front.howto-k8s-http-headers.svc.cluster.local:8080/; echo;
   
   curl -H "color_header: yellow" front.howto-k8s-http-headers.svc.cluster.local:8080/; echo;
   ```

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

1. Na região da AWS em que o cluster está em execução, escolha **Metrics** (Métricas) no painel de navegação. A métrica está no namespace **ContainerInsights/Prometheus**.

1. Para visualizar os eventos do CloudWatch Logs, escolha **Log Groups** (Grupos de logs) no painel de navegação. Os eventos estão no grupo de logs ` /aws/containerinsights/your_cluster_name/prometheus ` no fluxo de logs `kubernetes-pod-appmesh-envoy`.

## Excluir o ambiente de teste do App Mesh
<a name="ContainerInsights-Prometheus-Sample-Workloads-appmesh-delete"></a>

Ao terminar de usar o App Mesh e a aplicação de exemplo, use os comandos a seguir para excluir os recursos desnecessários. Excluir a aplicação de exemplo inserindo o comando a seguir:

```
cd aws-app-mesh-examples/walkthroughs/howto-k8s-http-headers/
kubectl delete -f _output/manifest.yaml
```

Excluir o controlador do App Mesh inserindo o comando a seguir:

```
helm delete appmesh-controller -n appmesh-system
```

# Configurar a amostra de workload AWS App Mesh em um cluster do Amazon EKS com o tipo de inicialização do Fargate
<a name="ContainerInsights-Prometheus-Sample-Workloads-appmesh-Fargate"></a>

Use estas instruções ao configurar o App Mesh em um cluster que executa o Amazon EKS com o tipo de inicialização do Fargate.

## Configurar permissões do IAM
<a name="ContainerInsights-Prometheus-Sample-Workloads-appmesh--fargate-iam"></a>

Insira o seguinte comando para definir as permissões do IAM. Substitua *MyCluster* pelo nome do cluster.

```
eksctl create iamserviceaccount --cluster MyCluster \
 --namespace howto-k8s-fargate \
 --name appmesh-pod \
 --attach-policy-arn arn:aws:iam::aws:policy/AWSAppMeshEnvoyAccess \
 --attach-policy-arn arn:aws:iam::aws:policy/AWSCloudMapDiscoverInstanceAccess \
 --attach-policy-arn arn:aws:iam::aws:policy/AWSXRayDaemonWriteAccess \
 --attach-policy-arn arn:aws:iam::aws:policy/CloudWatchLogsFullAccess \
 --attach-policy-arn arn:aws:iam::aws:policy/AWSAppMeshFullAccess \
 --attach-policy-arn arn:aws:iam::aws:policy/AWSCloudMapFullAccess \
 --override-existing-serviceaccounts \
 --approve
```

## Instalar o App Mesh
<a name="ContainerInsights-Prometheus-Sample-Workloads-appmesh-fargate-install"></a>

Para instalar o controlador do App Mesh Kubernetes, siga as instruções em [Controlador do App Mesh](https://github.com/aws/eks-charts/tree/master/stable/appmesh-controller#app-mesh-controller). Siga as instruções para o Amazon EKS com o tipo de inicialização do Fargate.

## Instalar uma amostra de aplicação
<a name="ContainerInsights-Prometheus-Sample-Workloads-appmesh-fargate-application"></a>

[aws-app-mesh-examples](https://github.com/aws/aws-app-mesh-examples) contém várias demonstrações do Kubernetes App Mesh. Neste tutorial, você instala uma amostra de aplicaçao de cor que funciona para clusters do Amazon EKS com o tipo de inicialização do Fargate.

**Para usar uma amostra de aplicação do App Mesh amostra para testar Insights de contêiner**

1. Instale a aplicação usando estas instruções: [https://github.com/aws/aws-app-mesh-examples/tree/main/walkthroughs/howto-k8s-fargate](https://github.com/aws/aws-app-mesh-examples/tree/main/walkthroughs/howto-k8s-fargate). 

   Essas instruções pressupõem que você esteja criando um novo cluster com o perfil correto do Fargate. Caso queira usar um cluster do Amazon EKS que você já configurou, use os seguintes comandos para configurar o cluster para esta demonstração. Substitua *MyCluster* pelo nome do cluster.

   ```
   eksctl create iamserviceaccount --cluster MyCluster \
    --namespace howto-k8s-fargate \
    --name appmesh-pod \
    --attach-policy-arn arn:aws:iam::aws:policy/AWSAppMeshEnvoyAccess \
    --attach-policy-arn arn:aws:iam::aws:policy/AWSCloudMapDiscoverInstanceAccess \
    --attach-policy-arn arn:aws:iam::aws:policy/AWSXRayDaemonWriteAccess \
    --attach-policy-arn arn:aws:iam::aws:policy/CloudWatchLogsFullAccess \
    --attach-policy-arn arn:aws:iam::aws:policy/AWSAppMeshFullAccess \
    --attach-policy-arn arn:aws:iam::aws:policy/AWSCloudMapFullAccess \
    --override-existing-serviceaccounts \
    --approve
   ```

   ```
   eksctl create fargateprofile --cluster MyCluster \
   --namespace howto-k8s-fargate --name howto-k8s-fargate
   ```

1. Encaminhe pela porta a implantação frontal da aplicação:

   ```
   kubectl -n howto-k8s-fargate port-forward deployment/front 8080:8080
   ```

1. Execute curl na aplicação frontal:

   ```
   while true; do  curl -s http://localhost:8080/color; sleep 0.1; echo ; done
   ```

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

1. Na região da AWS em que o cluster está em execução, escolha **Metrics** (Métricas) no painel de navegação. A métrica está no namespace **ContainerInsights/Prometheus**.

1. Para visualizar os eventos do CloudWatch Logs, escolha **Log Groups** (Grupos de logs) no painel de navegação. Os eventos estão no grupo de logs ` /aws/containerinsights/your_cluster_name/prometheus ` no fluxo de logs `kubernetes-pod-appmesh-envoy`.

## Excluir o ambiente de teste do App Mesh
<a name="ContainerInsights-Prometheus-Sample-Workloads-appmesh-fargate-delete"></a>

Ao terminar de usar o App Mesh e a aplicação de exemplo, use os comandos a seguir para excluir os recursos desnecessários. Excluir a aplicação de exemplo inserindo o comando a seguir:

```
cd aws-app-mesh-examples/walkthroughs/howto-k8s-fargate/
kubectl delete -f _output/manifest.yaml
```

Excluir o controlador do App Mesh inserindo o comando a seguir:

```
helm delete appmesh-controller -n appmesh-system
```

# Configurar o NGINX com tráfego de amostra no Amazon EKS e no Kubernetes
<a name="ContainerInsights-Prometheus-Sample-Workloads-nginx"></a>

O NGINX é um servidor web que também pode ser usado como load balancer e proxy reverso. Para obter mais informações sobre como o Kubernetes usa o NGINX para entrada, consulte [kubernetes/ingress-nginx](https://github.com/kubernetes/ingress-nginx).

**Como instalar o Ingress-NGINX com uma amostra de serviço de tráfego para testar o suporte ao Container Insights Prometheus**

1. Insira comando a seguir para adicionar o repositório ingress-nginx do Helm:

   ```
   helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
   ```

1. Insira os comandos a seguir:

   ```
   kubectl create namespace nginx-ingress-sample
   
   helm install my-nginx ingress-nginx/ingress-nginx \
   --namespace nginx-ingress-sample \
   --set controller.metrics.enabled=true \
   --set-string controller.metrics.service.annotations."prometheus\.io/port"="10254" \
   --set-string controller.metrics.service.annotations."prometheus\.io/scrape"="true"
   ```

1. Verifique se os serviços foram iniciados corretamente inserindo o comando a seguir:

   ```
   kubectl get service -n nginx-ingress-sample
   ```

   A saída deste comando deve exibir várias colunas, incluindo uma coluna `EXTERNAL-IP`.

1. Defina uma variável `EXTERNAL-IP` para o valor da coluna `EXTERNAL-IP` na linha do controlador de entrada do NGINX.

   ```
   EXTERNAL_IP=your-nginx-controller-external-ip
   ```

1. Inicie alguns exemplos de tráfego do NGINX inserindo o comando a seguir. 

   ```
   SAMPLE_TRAFFIC_NAMESPACE=nginx-sample-traffic
   curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/sample_traffic/nginx-traffic/nginx-traffic-sample.yaml | 
   sed "s/{{external_ip}}/$EXTERNAL_IP/g" | 
   sed "s/{{namespace}}/$SAMPLE_TRAFFIC_NAMESPACE/g" | 
   kubectl apply -f -
   ```

1. Insira o comando a seguir para confirmar se todos os três pods estão no status `Running`.

   ```
   kubectl get pod -n $SAMPLE_TRAFFIC_NAMESPACE
   ```

   Se eles estiverem em execução, logo você verá as métricas no namespace **ContainerInsights/Prometheus** .

**Como desinstalar o NGINX e o aplicativo de tráfego de exemplo**

1. Exclua o serviço de tráfego de exemplo inserindo o comando a seguir:

   ```
   kubectl delete namespace $SAMPLE_TRAFFIC_NAMESPACE
   ```

1. Exclua a saída do NGINX pelo nome da versão do Helm. 

   ```
   helm uninstall my-nginx --namespace nginx-ingress-sample
   kubectl delete namespace nginx-ingress-sample
   ```

# Configurar memcached com um exportador de métricas no Amazon EKS e no Kubernetes
<a name="ContainerInsights-Prometheus-Sample-Workloads-memcached"></a>

memcached é um sistema de armazenamento em cache de objetos na memória de código aberto. Para obter mais informações, consulte [O que é Memcached](https://www.memcached.org)?

Se você estiver executando o memcached em um cluster com o tipo de inicialização do Fargate, precisará configurar um perfil do Fargate antes de executar as etapas deste procedimento. Para configurar o perfil, insira o comando a seguir. Substitua *MyCluster* pelo nome do cluster.

```
eksctl create fargateprofile --cluster MyCluster \
--namespace memcached-sample --name memcached-sample
```

**Como instalar memcached com um exportador de métricas para testar o suporte do Container Insights Prometheus**

1. Insira comando a seguir para adicionar o repositório:

   ```
   helm repo add bitnami https://charts.bitnami.com/bitnami
   ```

1. Insira o comando a seguir para criar um novo namespace:

   ```
   kubectl create namespace memcached-sample
   ```

1. Insira o comando a seguir para instalar o Memcached

   ```
   helm install my-memcached bitnami/memcached --namespace memcached-sample \
   --set metrics.enabled=true \
   --set-string serviceAnnotations.prometheus\\.io/port="9150" \
   --set-string serviceAnnotations.prometheus\\.io/scrape="true"
   ```

1. Insira o comando a seguir para confirmar a anotação do serviço em execução:

   ```
   kubectl describe service my-memcached-metrics -n memcached-sample
   ```

   Você verá as duas anotações a seguir:

   ```
   Annotations:   prometheus.io/port: 9150
                  prometheus.io/scrape: true
   ```

**Como desinstalar o memcached**
+ Insira os comandos a seguir:

  ```
  helm uninstall my-memcached --namespace memcached-sample
  kubectl delete namespace memcached-sample
  ```

# Configurar amostra de workload do Java/JMX para o Amazon EKS e o Kubernetes
<a name="ContainerInsights-Prometheus-Sample-Workloads-javajmx"></a>

O JMX Exporter é um exportador oficial do Prometheus que pode extrair conteúdo e expor mBeans da JMX como métricas do Prometheus. Para obter mais informações, consulte [prometheus/jmx\$1exporter](https://github.com/prometheus/jmx_exporter).

O Container Insights pode coletar métricas predefinidas do Prometheus a partir da Java Virtual Machine (JVM), Java e Tomcat (Catalina) usando o JMX Exporter.

## Configuração padrão de extração do Prometheus
<a name="ContainerInsights-Prometheus-Sample-Workloads-javajmx-default"></a>

Por padrão, o atendente do CloudWatch com suporte ao Prometheus extrai as métricas do Java/JMX do Prometheus de `http://CLUSTER_IP:9404/metrics` em cada pod em um cluster do Amazon EKS ou do Kubernetes. Isso é feito pela detecção `role: pod` do Prometheus `kubernetes_sd_config`. 9404 é a porta padrão alocada para o JMX Exporter pelo Prometheus. Para obter mais informações sobre a detecção `role: pod`, consulte [pod](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#pod). Você pode configurar o JMX Exporter de modo a expor as métricas em uma porta ou metrics\$1path diferente. Se você alterar a porta ou o caminho, atualize o jmx scrape\$1config padrão no mapa de configuração do atendente do CloudWatch. Execute o comando a seguir para obter a configuração do Prometheus atual do atendente do CloudWatch:

```
kubectl describe cm prometheus-config -n amazon-cloudwatch
```

Os campos a serem alterados são os campos `/metrics` e `regex: '.*:9404$'`, conforme destacado no exemplo a seguir.

```
job_name: 'kubernetes-jmx-pod'
sample_limit: 10000
metrics_path: /metrics
kubernetes_sd_configs:
- role: pod
relabel_configs:
- source_labels: [__address__]
  action: keep
  regex: '.*:9404$'
- action: replace
  regex: (.+)
  source_labels:
```

## Outra configuração de extração do Prometheus
<a name="ContainerInsights-Prometheus-Sample-Workloads-javajmx-other"></a>

Se você expuser sua aplicação em execução em um conjunto de pods com exportadores Java/JMX Prometheus por um Kubernetes Service, também será possível alternar para usar detecção `role: service` ou detecção `role: endpoint` do Prometheus `kubernetes_sd_config`. Para obter mais informações sobre esses métodos de detecção, consulte [serviço](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#service), [endpoints](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#endpoints) e[<kubernetes\$1sd\$1config>.](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#kubernetes_sd_config). 

Mais meta rótulos são fornecidos por esses dois modos de detecção de serviço que podem ser úteis para você criar as dimensões de métricas do CloudWatch. Por exemplo, é possível rotular `__meta_kubernetes_service_name` como `Service` e incluí-lo na dimensão de suas métricas. Para obter mais informações sobre como personalizar suas métricas do CloudWatch e suas dimensões, consulte [Configuração do atendente do CloudWatch para o Prometheus](ContainerInsights-Prometheus-Setup-configure-ECS.md#ContainerInsights-Prometheus-Setup-cw-agent-config).

## Imagem do docker com o JMX Exporter
<a name="ContainerInsights-Prometheus-Sample-Workloads-javajmx-docker"></a>

Crie uma imagem do Docker. As seções a seguir fornecem dois exemplos de Dockerfiles.

Quando você tiver compilado a imagem, carregue-a no Amazon EKS ou no Kubernetes e execute o comando a seguir para verificar se as métricas do Prometheus são expostas por `JMX_EXPORTER` na porta 9404. Substitua *\$1JAR\$1SAMPLE\$1TRAFFIC\$1POD* pelo nome do pod em execução e substitua *\$1JAR\$1SAMPLE\$1TRAFFIC\$1NAMESPACE* pelo namespace do aplicativo. 

Se você estiver executando o JMX Exporter em um cluster com o tipo de inicialização do Fargate, precisará configurar um perfil do Fargate antes de executar as etapas deste procedimento. Para configurar o perfil, insira o comando a seguir. Substitua *MyCluster* pelo nome do cluster.

```
eksctl create fargateprofile --cluster MyCluster \
--namespace $JAR_SAMPLE_TRAFFIC_NAMESPACE\
 --name $JAR_SAMPLE_TRAFFIC_NAMESPACE
```

```
kubectl exec $JAR_SAMPLE_TRAFFIC_POD -n $JARCAT_SAMPLE_TRAFFIC_NAMESPACE -- curl http://localhost:9404
```

## Exemplo: imagem do Docker do Apache Tomcat com métricas do Prometheus
<a name="ContainerInsights-Prometheus-Sample-Workloads-javajmx-tomcat"></a>

O servidor Apache Tomcat expõe mBeans da JMX por padrão. Você pode integrar o JMX Exporter ao Tomcat para expor o mBeans da JMX como métricas do Prometheus. O exemplo de dockerfile a seguir mostra as etapas para criação de uma imagem de teste: 

```
# From Tomcat 9.0 JDK8 OpenJDK 
FROM tomcat:9.0-jdk8-openjdk 

RUN mkdir -p /opt/jmx_exporter

COPY ./jmx_prometheus_javaagent-0.12.0.jar /opt/jmx_exporter
COPY ./config.yaml /opt/jmx_exporter
COPY ./setenv.sh /usr/local/tomcat/bin 
COPY your web application.war /usr/local/tomcat/webapps/

RUN chmod  o+x /usr/local/tomcat/bin/setenv.sh

ENTRYPOINT ["catalina.sh", "run"]
```

A lista a seguir explica as quatro linhas `COPY` deste dockerfile.
+ Faça download do arquivo jar mais recente do JMX Exporter em [https://github.com/prometheus/jmx\$1exporter](https://github.com/prometheus/jmx_exporter).
+ `config.yaml` é o arquivo de configuração do JMX Exporter. Para obter mais informações, consulte [https://github.com/prometheus/jmx\$1exporter\$1Configuration](https://github.com/prometheus/jmx_exporter#Configuration ).

  Veja a seguir um arquivo de configuração de exemplo para Java e Tomcat:

  ```
  lowercaseOutputName: true
  lowercaseOutputLabelNames: true
  
  rules:
  - pattern: 'java.lang<type=OperatingSystem><>(FreePhysicalMemorySize|TotalPhysicalMemorySize|FreeSwapSpaceSize|TotalSwapSpaceSize|SystemCpuLoad|ProcessCpuLoad|OpenFileDescriptorCount|AvailableProcessors)'
    name: java_lang_OperatingSystem_$1
    type: GAUGE
  
  - pattern: 'java.lang<type=Threading><>(TotalStartedThreadCount|ThreadCount)'
    name: java_lang_threading_$1
    type: GAUGE
  
  - pattern: 'Catalina<type=GlobalRequestProcessor, name=\"(\w+-\w+)-(\d+)\"><>(\w+)'
    name: catalina_globalrequestprocessor_$3_total
    labels:
      port: "$2"
      protocol: "$1"
    help: Catalina global $3
    type: COUNTER
  
  - pattern: 'Catalina<j2eeType=Servlet, WebModule=//([-a-zA-Z0-9+&@#/%?=~_|!:.,;]*[-a-zA-Z0-9+&@#/%=~_|]), name=([-a-zA-Z0-9+/$%~_-|!.]*), J2EEApplication=none, J2EEServer=none><>(requestCount|maxTime|processingTime|errorCount)'
    name: catalina_servlet_$3_total
    labels:
      module: "$1"
      servlet: "$2"
    help: Catalina servlet $3 total
    type: COUNTER
  
  - pattern: 'Catalina<type=ThreadPool, name="(\w+-\w+)-(\d+)"><>(currentThreadCount|currentThreadsBusy|keepAliveCount|pollerThreadCount|connectionCount)'
    name: catalina_threadpool_$3
    labels:
      port: "$2"
      protocol: "$1"
    help: Catalina threadpool $3
    type: GAUGE
  
  - pattern: 'Catalina<type=Manager, host=([-a-zA-Z0-9+&@#/%?=~_|!:.,;]*[-a-zA-Z0-9+&@#/%=~_|]), context=([-a-zA-Z0-9+/$%~_-|!.]*)><>(processingTime|sessionCounter|rejectedSessions|expiredSessions)'
    name: catalina_session_$3_total
    labels:
      context: "$2"
      host: "$1"
    help: Catalina session $3 total
    type: COUNTER
  
  - pattern: ".*"
  ```
+ `setenv.sh` é um script de inicialização do Tomcat para iniciar o JMX exporter com o Tomcat e expor métricas do Prometheus na porta 9404 do localhost. Ele também fornece ao JMX Exporter o caminho do arquivo `config.yaml`.

  ```
  $ cat setenv.sh 
  export JAVA_OPTS="-javaagent:/opt/jmx_exporter/jmx_prometheus_javaagent-0.12.0.jar=9404:/opt/jmx_exporter/config.yaml $JAVA_OPTS"
  ```
+ o aplicativo web .war é o arquivo de aplicativo web `war` a ser carregado pelo Tomcat.

Crie uma imagem do Docker com essa configuração e carregue para um repositório de imagens.

## Exemplo: imagem do Docker da aplicação Java Jar com métricas do Prometheus
<a name="ContainerInsights-Prometheus-Sample-Workloads-javajmx-jar"></a>

O exemplo de dockerfile a seguir mostra as etapas para criação de uma imagem de teste: 

```
# Alpine Linux with OpenJDK JRE
FROM openjdk:8-jre-alpine

RUN mkdir -p /opt/jmx_exporter

COPY ./jmx_prometheus_javaagent-0.12.0.jar /opt/jmx_exporter
COPY ./SampleJavaApplication-1.0-SNAPSHOT.jar /opt/jmx_exporter
COPY ./start_exporter_example.sh /opt/jmx_exporter
COPY ./config.yaml /opt/jmx_exporter

RUN chmod -R o+x /opt/jmx_exporter
RUN apk add curl

ENTRYPOINT exec /opt/jmx_exporter/start_exporter_example.sh
```

A lista a seguir explica as quatro linhas `COPY` deste dockerfile.
+ Faça download do arquivo jar mais recente do JMX Exporter em [https://github.com/prometheus/jmx\$1exporter](https://github.com/prometheus/jmx_exporter).
+ `config.yaml` é o arquivo de configuração do JMX Exporter. Para obter mais informações, consulte [https://github.com/prometheus/jmx\$1exporter\$1Configuration](https://github.com/prometheus/jmx_exporter#Configuration ).

  Veja a seguir um arquivo de configuração de exemplo para Java e Tomcat:

  ```
  lowercaseOutputName: true
  lowercaseOutputLabelNames: true
  
  rules:
  - pattern: 'java.lang<type=OperatingSystem><>(FreePhysicalMemorySize|TotalPhysicalMemorySize|FreeSwapSpaceSize|TotalSwapSpaceSize|SystemCpuLoad|ProcessCpuLoad|OpenFileDescriptorCount|AvailableProcessors)'
    name: java_lang_OperatingSystem_$1
    type: GAUGE
  
  - pattern: 'java.lang<type=Threading><>(TotalStartedThreadCount|ThreadCount)'
    name: java_lang_threading_$1
    type: GAUGE
  
  - pattern: 'Catalina<type=GlobalRequestProcessor, name=\"(\w+-\w+)-(\d+)\"><>(\w+)'
    name: catalina_globalrequestprocessor_$3_total
    labels:
      port: "$2"
      protocol: "$1"
    help: Catalina global $3
    type: COUNTER
  
  - pattern: 'Catalina<j2eeType=Servlet, WebModule=//([-a-zA-Z0-9+&@#/%?=~_|!:.,;]*[-a-zA-Z0-9+&@#/%=~_|]), name=([-a-zA-Z0-9+/$%~_-|!.]*), J2EEApplication=none, J2EEServer=none><>(requestCount|maxTime|processingTime|errorCount)'
    name: catalina_servlet_$3_total
    labels:
      module: "$1"
      servlet: "$2"
    help: Catalina servlet $3 total
    type: COUNTER
  
  - pattern: 'Catalina<type=ThreadPool, name="(\w+-\w+)-(\d+)"><>(currentThreadCount|currentThreadsBusy|keepAliveCount|pollerThreadCount|connectionCount)'
    name: catalina_threadpool_$3
    labels:
      port: "$2"
      protocol: "$1"
    help: Catalina threadpool $3
    type: GAUGE
  
  - pattern: 'Catalina<type=Manager, host=([-a-zA-Z0-9+&@#/%?=~_|!:.,;]*[-a-zA-Z0-9+&@#/%=~_|]), context=([-a-zA-Z0-9+/$%~_-|!.]*)><>(processingTime|sessionCounter|rejectedSessions|expiredSessions)'
    name: catalina_session_$3_total
    labels:
      context: "$2"
      host: "$1"
    help: Catalina session $3 total
    type: COUNTER
  
  - pattern: ".*"
  ```
+ `start_exporter_example.sh` é o script para iniciar o aplicativo JAR com as métricas exportadas do Prometheus. Ele também fornece ao JMX Exporter o caminho do arquivo `config.yaml`.

  ```
  $ cat start_exporter_example.sh 
  java -javaagent:/opt/jmx_exporter/jmx_prometheus_javaagent-0.12.0.jar=9404:/opt/jmx_exporter/config.yaml -cp  /opt/jmx_exporter/SampleJavaApplication-1.0-SNAPSHOT.jar com.gubupt.sample.app.App
  ```
+ SampleJavaApplication-1.0-SNAPSHOT.jar é o arquivo jar do aplicativo Java de amostra. Substitua-o pelo aplicativo Java que você deseja monitorar.

Crie uma imagem do Docker com essa configuração e carregue para um repositório de imagens.

# Configurar HAProxycom um exportador de métricas no Amazon EKS e no Kubernetes
<a name="ContainerInsights-Prometheus-Sample-Workloads-haproxy"></a>

HAProxy é um aplicativo proxy de código aberto. Para obter mais informações, consulte [HAProxy](https://www.haproxy.org).

Se você estiver executando o HAProxyem um cluster com o tipo de inicialização do Fargate, precisará configurar um perfil do Fargate antes de executar as etapas deste procedimento. Para configurar o perfil, insira o comando a seguir. Substitua *MyCluster* pelo nome do cluster.

```
eksctl create fargateprofile --cluster MyCluster \
--namespace haproxy-ingress-sample --name haproxy-ingress-sample
```

**Como instalar o HAProxy com um exportador de métricas para testar o suporte do Container Insights Prometheus**

1. Insira o comando a seguir para adicionar o repositório da incubadora do Helm:

   ```
   helm repo add haproxy-ingress https://haproxy-ingress.github.io/charts
   ```

1. Insira o comando a seguir para criar um novo namespace:

   ```
   kubectl create namespace haproxy-ingress-sample
   ```

1. Insira os comandos a seguir para instalar o HAProxy:

   ```
   helm install haproxy haproxy-ingress/haproxy-ingress \
   --namespace haproxy-ingress-sample \
   --set defaultBackend.enabled=true \
   --set controller.stats.enabled=true \
   --set controller.metrics.enabled=true \
   --set-string controller.metrics.service.annotations."prometheus\.io/port"="9101" \
   --set-string controller.metrics.service.annotations."prometheus\.io/scrape"="true"
   ```

1. Insira o comando a seguir para confirmar a anotação do serviço:

   ```
   kubectl describe service haproxy-haproxy-ingress-metrics -n haproxy-ingress-sample
   ```

   Você verá as anotações a seguir.

   ```
   Annotations:   prometheus.io/port: 9101
                  prometheus.io/scrape: true
   ```

**Como desinstalar o HAProxy**
+ Insira os comandos a seguir:

  ```
  helm uninstall haproxy --namespace haproxy-ingress-sample
  kubectl delete namespace haproxy-ingress-sample
  ```

# Tutorial para adicionar um novo destino de extração do Prometheus: Redis OSS em clusters do Amazon EKS e do Kubernetes
<a name="ContainerInsights-Prometheus-Setup-redis-eks"></a>

Este tutorial apresenta uma introdução prática para extrair as métricas do Prometheus de um exemplo de aplicação do Redis em um cluster do Amazon EKS e do Kubernetes. O Redis OSS (https://redis.io/) é um armazenamento de estrutura de dados em memória com código aberto (licença BSD), usado como banco de dados, cache e agente de mensagens. Para obter mais informações, consulte [ redis](https://redis.io/).

O redis\$1exporter (licença MIT) é usado para expor as métricas do Prometheus no Redis OSS na porta especificada (padrão: 0.0.0.0:9121). Para obter mais informações, consulte [redis\$1exporter](https://github.com/oliver006/redis_exporter).

As imagens do Docker dos dois repositórios do Docker Hub a seguir são usadas neste tutorial: 
+ [ redis](https://hub.docker.com/_/redis?tab=description)
+ [ redis\$1exporter](https://hub.docker.com/r/oliver006/redis_exporter)

**Para instalar um exemplo de workload do Redis OSS que expõe as métricas do Prometheus**

1. Defina o namespace para a workload de exemplo do Redis OSS.

   ```
   REDIS_NAMESPACE=redis-sample
   ```

1. Se você estiver executando o Redis OSS em um cluster com o tipo de inicialização do Fargate, precisará configurar um perfil do Fargate. Para configurar o perfil, insira o comando a seguir. Substitua *MyCluster* pelo nome do cluster.

   ```
   eksctl create fargateprofile --cluster MyCluster \
   --namespace $REDIS_NAMESPACE --name $REDIS_NAMESPACE
   ```

1. Instale a workload de exemplo do Redis inserindo o comando a seguir.

   ```
   curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/sample_traffic/redis/redis-traffic-sample.yaml \
   | sed "s/{{namespace}}/$REDIS_NAMESPACE/g" \
   | kubectl apply -f -
   ```

1. A instalação inclui um serviço chamado `my-redis-metrics` que expõe a métrica do Prometheus no Redis OSS na porta 9121. Insira o seguinte comando para obter os detalhes do serviço: 

   ```
   kubectl describe service/my-redis-metrics  -n $REDIS_NAMESPACE
   ```

   Na seção `Annotations` dos resultados, você verá duas anotações que correspondem à configuração de extração do Prometheus do atendente do CloudWatch, para que ele possa detectar as workloads automaticamente:

   ```
   prometheus.io/port: 9121
   prometheus.io/scrape: true
   ```

   A configuração de extração do Prometheus relacionada pode ser encontrada na seção `- job_name: kubernetes-service-endpoints` de`kubernetes-eks.yaml` ou `kubernetes-k8s.yaml`.

**Para começar a coletar métricas do Prometheus no Redis OSS no CloudWatch**

1. Baixe a versão mais recente do arquivo `kubernetes-eks.yaml` ou `kubernetes-k8s.yaml` inserindo um dos comandos a seguir. Para um cluster do Amazon EKS com o tipo de inicialização do EC2, insira este comando.

   ```
   curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/prometheus-eks.yaml
   ```

   Para um cluster do Amazon EKS com o tipo de inicialização do Fargate, insira este comando.

   ```
   curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/prometheus-eks-fargate.yaml
   ```

   Para um cluster do Kubernetes em execução em uma instância do Amazon EC2, insira este comando.

   ```
   curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/prometheus-k8s.yaml
   ```

1. Abra o arquivo com um editor de textos e localize a seção `cwagentconfig.json`. Adicione a seguinte subseção e salve as alterações. Verifique se o recuo segue o padrão existente.

   ```
   {
     "source_labels": ["pod_name"],
     "label_matcher": "^redis-instance$",
     "dimensions": [["Namespace","ClusterName"]],
     "metric_selectors": [
       "^redis_net_(in|out)put_bytes_total$",
       "^redis_(expired|evicted)_keys_total$",
       "^redis_keyspace_(hits|misses)_total$",
       "^redis_memory_used_bytes$",
       "^redis_connected_clients$"
     ]
   },
   {
     "source_labels": ["pod_name"],
     "label_matcher": "^redis-instance$",
     "dimensions": [["Namespace","ClusterName","cmd"]],
     "metric_selectors": [
       "^redis_commands_total$"
     ]
   },
   {
     "source_labels": ["pod_name"],
     "label_matcher": "^redis-instance$",
     "dimensions": [["Namespace","ClusterName","db"]],
     "metric_selectors": [
       "^redis_db_keys$"
     ]
   },
   ```

   A seção que você adicionou coloca as métricas do Redis OSS na lista de permissões do agente do CloudWatch. Para obter a lista dessas métricas, consulte a seção a seguir.

1. Se você já tem o atendente do CloudWatch com suporte ao Prometheus implantado nesse cluster, exclua-o inserindo o comando a seguir.

   ```
   kubectl delete deployment cwagent-prometheus -n amazon-cloudwatch
   ```

1. Implante o atendente do CloudWatch com a configuração atualizada inserindo um dos comandos a seguir. Substitua *MyCluster* e *region* para corresponder a suas configurações.

   Para um cluster do Amazon EKS com o tipo de inicialização do EC2, insira este comando.

   ```
   kubectl apply -f prometheus-eks.yaml
   ```

   Para um cluster do Amazon EKS com o tipo de inicialização do Fargate, insira este comando.

   ```
   cat prometheus-eks-fargate.yaml \
   | sed "s/{{cluster_name}}/MyCluster/;s/{{region_name}}/region/" \
   | kubectl apply -f -
   ```

   Para um cluster do Kubernetes, insira este comando.

   ```
   cat prometheus-k8s.yaml \
   | sed "s/{{cluster_name}}/MyCluster/;s/{{region_name}}/region/" \
   | kubectl apply -f -
   ```

## Visualizar suas métricas do Prometheus no Redis OSS
<a name="ContainerInsights-Prometheus-Setup-redis-eks-view"></a>

Este tutorial envia as seguintes métricas ao namespace **ContainerInsights/Prometheus** no CloudWatch. É possível usar o console do CloudWatch para ver as métricas nesse namespace.


| Nome da métrica | Dimensões | 
| --- | --- | 
|  `redis_net_input_bytes_total` |  ClusterName, `Namespace`  | 
|  `redis_net_output_bytes_total` |  ClusterName, `Namespace`  | 
|  `redis_expired_keys_total` |  ClusterName, `Namespace`  | 
|  `redis_evicted_keys_total` |  ClusterName, `Namespace`  | 
|  `redis_keyspace_hits_total` |  ClusterName, `Namespace`  | 
|  `redis_keyspace_misses_total` |  ClusterName, `Namespace`  | 
|  `redis_memory_used_bytes` |  ClusterName, `Namespace`  | 
|  `redis_connected_clients` |  ClusterName, `Namespace`  | 
|  `redis_commands_total` |  ClusterName, `Namespace`, cmd  | 
|  `redis_db_keys` |  ClusterName, `Namespace`, db  | 

**nota**  
O valor da dimensão **cmd** pode ser: `append`, `client`, `command`, `config`, `dbsize`, `flushall`, `get`, `incr`, `info`, `latency` ou `slowlog`.  
Os valores da dimensão **db** podem ser `db0` ou `db15`. 

Também é possível criar um painel do CloudWatch para suas métricas do Prometheus no Redis OSS.

**Para criar um painel para métricas do Prometheus no Redis OSS**

1. Crie variáveis de ambiente, substituindo os valores abaixo para corresponder a sua implantação.

   ```
   DASHBOARD_NAME=your_cw_dashboard_name
   REGION_NAME=your_metric_region_such_as_us-east-1
   CLUSTER_NAME=your_k8s_cluster_name_here
   NAMESPACE=your_redis_service_namespace_here
   ```

1. Use o comando a seguir para criar o painel.

   ```
   curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/sample_cloudwatch_dashboards/redis/cw_dashboard_redis.json \
   | sed "s/{{YOUR_AWS_REGION}}/${REGION_NAME}/g" \
   | sed "s/{{YOUR_CLUSTER_NAME}}/${CLUSTER_NAME}/g" \
   | sed "s/{{YOUR_NAMESPACE}}/${NAMESPACE}/g" \
   ```

# Conversão de tipo de métrica do Prometheus pelo CloudWatch Agent
<a name="ContainerInsights-Prometheus-metrics-conversion"></a>

As bibliotecas cliente Prometheus oferecem quatro tipos de métricas principais: 
+ Contador
+ Medidor
+ Resumo
+ Histograma

O atendente do CloudWatch oferece suporte aos tipos de métricas de contador, medidor e resumo.

 As métricas do Prometheus com o tipo de métrica de histograma não compatível são descartadas pelo atendente do CloudWatch. Para obter mais informações, consulte [Registrar as métricas descartadas do Prometheus](ContainerInsights-Prometheus-troubleshooting-EKS.md#ContainerInsights-Prometheus-troubleshooting-droppedmetrics).

**Métricas de medidor**

Uma métrica de medidor Prometheus é uma métrica que representa um único valor numérico que pode aumentar e diminuir arbitrariamente. O atendente do CloudWatch extrai métricas de medidor e envia esses valores diretamente.

**Métricas de contador**

Uma métrica de contador Prometheus é uma métrica cumulativa que representa um único contador que aumenta de forma monotônica cujo valor só pode aumentar ou ser redefinido para zero. O atendente do CloudWatch calcula um delta da extração anterior e envia o valor delta como o valor da métrica no evento de log. Assim, o atendente do CloudWatch começará a produzir um evento de log a partir da segunda extração e continuará com as extrações subsequentes, se houver.

**Métricas de resumo**

Uma métrica de resumo do Prometheus é um tipo de métrica complexa que é representada por vários pontos de dados. Ela fornece uma contagem total de observações e uma soma de todos os valores observados. Calcula quantis configuráveis sobre uma janela de tempo deslizante.

A soma e a contagem de uma métrica resumida são cumulativas, mas os quantis não são. O exemplo a seguir mostra a variância dos quantis.

```
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 7.123e-06
go_gc_duration_seconds{quantile="0.25"} 9.204e-06
go_gc_duration_seconds{quantile="0.5"} 1.1065e-05
go_gc_duration_seconds{quantile="0.75"} 2.8731e-05
go_gc_duration_seconds{quantile="1"} 0.003841496
go_gc_duration_seconds_sum 0.37630427
go_gc_duration_seconds_count 9774
```

O atendente do CloudWatch lida com a soma e a contagem de uma métrica resumida da mesma forma que lida com métricas de contador, conforme descrito na seção anterior. O atendente do CloudWatch preserva os valores dos quantis conforme eles são originalmente informados.

# Métricas do Prometheus coletadas pelo atendente do CloudWatch
<a name="ContainerInsights-Prometheus-metrics"></a>

O atendente do CloudWatch com suporte ao Prometheus coleta automaticamente métricas de vários serviços e workloads. As métricas que são coletadas por padrão estão listadas nas seções a seguir. Você também pode configurar o atendente para coletar mais métricas desses serviços e coletar métricas do Prometheus de outras aplicações e serviços. Para obter mais informações sobre coletar outras métricas, consulte [Configuração do atendente do CloudWatch para o Prometheus](ContainerInsights-Prometheus-Setup-configure-ECS.md#ContainerInsights-Prometheus-Setup-cw-agent-config).

As métricas da Prometheus coletadas de clusters do Amazon EKS e do Kubernetes estão no namespace **ContainerInsights/Prometheus**. As métricas da Prometheus coletadas de clusters do Amazon ECS estão no namespace **ECS/ContainerInsights/Prometheus**. 

**Topics**
+ [Métricas do Prometheus para o App Mesh](#ContainerInsights-Prometheus-metrics-appmesh)
+ [Métricas do Prometheus para NGINX](#ContainerInsights-Prometheus-metrics-nginx)
+ [Métricas do Prometheus para Memcached](#ContainerInsights-Prometheus-metrics-memcached)
+ [Métricas do Prometheus para Java/JMX](#ContainerInsights-Prometheus-metrics-jmx)
+ [Métricas do Prometheus para HAProxy](#ContainerInsights-Prometheus-metrics-haproxy)

## Métricas do Prometheus para o App Mesh
<a name="ContainerInsights-Prometheus-metrics-appmesh"></a>

As métricas a seguir são coletadas automaticamente do App Mesh.

**Métricas do Prometheus para App Mesh em clusters do Amazon EKS e do Kubernetes**


| Nome da métrica | Dimensões | 
| --- | --- | 
|  `envoy_http_downstream_rq_total` |  ClusterName, `Namespace`  | 
|  `envoy_http_downstream_rq_xx` |  ClusterName, `Namespace` ClusterName, `Namespace`, envoy\$1http\$1conn\$1manager\$1prefix, envoy\$1response\$1code\$1class  | 
|  `envoy_cluster_upstream_cx_rx_bytes_total` |  ClusterName, `Namespace`  | 
|  `envoy_cluster_upstream_cx_tx_bytes_total` |  ClusterName, `Namespace`  | 
|  `envoy_cluster_membership_healthy` |  ClusterName, `Namespace`  | 
|  `envoy_cluster_membership_total` |  ClusterName, `Namespace`  | 
|  `envoy_server_memory_heap_size` |  ClusterName, `Namespace`  | 
|  `envoy_server_memory_allocated` |  ClusterName, `Namespace`  | 
|  `envoy_cluster_upstream_cx_connect_timeout` |  ClusterName, `Namespace`  | 
|  `envoy_cluster_upstream_rq_pending_failure_eject` |  ClusterName, `Namespace`  | 
|  `envoy_cluster_upstream_rq_pending_overflow` |  ClusterName, `Namespace`  | 
|  `envoy_cluster_upstream_rq_timeout` |  ClusterName, `Namespace`  | 
|  `envoy_cluster_upstream_rq_try_per_timeout` |  ClusterName, `Namespace`  | 
|  `envoy_cluster_upstream_rq_rx_reset` |  ClusterName, `Namespace`  | 
|  `envoy_cluster_upstream_cx_destroy_local_with_active_rq` |  ClusterName, `Namespace`  | 
|  `envoy_cluster_upstream_cx_destroy_remote_active_rq` |  ClusterName, `Namespace`  | 
|  `envoy_cluster_upstream_rq_maintenance_mode` |  ClusterName, `Namespace`  | 
|  `envoy_cluster_upstream_flow_control_paused_reading_total` |  ClusterName, `Namespace`  | 
|  `envoy_cluster_upstream_flow_control_resumed_reading_total` |  ClusterName, `Namespace`  | 
|  `envoy_cluster_upstream_flow_control_backed_up_total` |  ClusterName, `Namespace`  | 
|  `envoy_cluster_upstream_flow_control_drained_total` |  ClusterName, `Namespace`  | 
|  `envoy_cluster_upstream_rq_retry` |  ClusterName, `Namespace`  | 
|  `envoy_cluster_upstream_rq_retry_success` |  ClusterName, `Namespace`  | 
|  `envoy_cluster_upstream_rq_retry_overflow` |  ClusterName, `Namespace`  | 
|  `envoy_server_live` |  ClusterName, `Namespace`  | 
|  `envoy_server_uptime` |  ClusterName, `Namespace`  | 

**Métricas do Prometheus para App Mesh em clusters do Amazon ECS**


| Nome da métrica | Dimensões | 
| --- | --- | 
|  `envoy_http_downstream_rq_total` |  ClusterName, `TaskDefinitionFamily`  | 
|  `envoy_http_downstream_rq_xx` |  ClusterName, `TaskDefinitionFamily` | 
|  `envoy_cluster_upstream_cx_rx_bytes_total` |  ClusterName, `TaskDefinitionFamily`  | 
|  `envoy_cluster_upstream_cx_tx_bytes_total` |  ClusterName, `TaskDefinitionFamily`  | 
|  `envoy_cluster_membership_healthy` |  ClusterName, `TaskDefinitionFamily`  | 
|  `envoy_cluster_membership_total` |  ClusterName, `TaskDefinitionFamily`  | 
|  `envoy_server_memory_heap_size` |  ClusterName, `TaskDefinitionFamily`  | 
|  `envoy_server_memory_allocated` |  ClusterName, `TaskDefinitionFamily`  | 
|  `envoy_cluster_upstream_cx_connect_timeout` |  ClusterName, `TaskDefinitionFamily`  | 
|  `envoy_cluster_upstream_rq_pending_failure_eject` |  ClusterName, `TaskDefinitionFamily`  | 
|  `envoy_cluster_upstream_rq_pending_overflow` |  ClusterName, `TaskDefinitionFamily`  | 
|  `envoy_cluster_upstream_rq_timeout` |  ClusterName, `TaskDefinitionFamily`  | 
|  `envoy_cluster_upstream_rq_try_per_timeout` |  ClusterName, `TaskDefinitionFamily`  | 
|  `envoy_cluster_upstream_rq_rx_reset` |  ClusterName, `TaskDefinitionFamily`  | 
|  `envoy_cluster_upstream_cx_destroy_local_with_active_rq` |  ClusterName, `TaskDefinitionFamily`  | 
|  `envoy_cluster_upstream_cx_destroy_remote_active_rq` |  ClusterName, `TaskDefinitionFamily`  | 
|  `envoy_cluster_upstream_rq_maintenance_mode` |  ClusterName, `TaskDefinitionFamily`  | 
|  `envoy_cluster_upstream_flow_control_paused_reading_total` |  ClusterName, `TaskDefinitionFamily`  | 
|  `envoy_cluster_upstream_flow_control_resumed_reading_total` |  ClusterName, `TaskDefinitionFamily`  | 
|  `envoy_cluster_upstream_flow_control_backed_up_total` |  ClusterName, `TaskDefinitionFamily`  | 
|  `envoy_cluster_upstream_flow_control_drained_total` |  ClusterName, `TaskDefinitionFamily`  | 
|  `envoy_cluster_upstream_rq_retry` |  ClusterName, `TaskDefinitionFamily`  | 
|  `envoy_cluster_upstream_rq_retry_success` |  ClusterName, `TaskDefinitionFamily`  | 
|  `envoy_cluster_upstream_rq_retry_overflow` |  ClusterName, `TaskDefinitionFamily`  | 
|  `envoy_server_live` |  ClusterName, `TaskDefinitionFamily`  | 
|  `envoy_server_uptime` |  ClusterName, `TaskDefinitionFamily`  | 
|  `envoy_http_downstream_rq_xx` |  ClusterName, TaskDefinitionFamily, envoy\$1http\$1conn\$1manager\$1prefix, envoy\$1response\$1code\$1class ClusterName, TaskDefinitionFamily, envoy\$1response\$1code\$1class | 

**nota**  
`TaskDefinitionFamily` é o namespace do Kubernetes da malha.  
O valor de `envoy_http_conn_manager_prefix` pode ser `ingress`, `egress` ou `admin`.   
O valor de `envoy_response_code_class` pode ser `1` (significa `1xx`) , `2` (significa `2xx`) ,`3`significa `3xx`), `4` (significa `4xx`) ou `5` (significa`5xx`). 

## Métricas do Prometheus para NGINX
<a name="ContainerInsights-Prometheus-metrics-nginx"></a>

As métricas a seguir são coletadas automaticamente do NGINX em clusters do Amazon EKS e do Kubernetes.


| Nome da métrica | Dimensões | 
| --- | --- | 
|  `nginx_ingress_controller_nginx_process_cpu_seconds_total` |  ClusterName, `Namespace`, serviço  | 
|  `nginx_ingress_controller_success` |  ClusterName, `Namespace`, serviço  | 
|  `nginx_ingress_controller_requests` |  ClusterName, `Namespace`, serviço  | 
|  `nginx_ingress_controller_nginx_process_connections` |  ClusterName, `Namespace`, serviço  | 
|  `nginx_ingress_controller_nginx_process_connections_total` |  ClusterName, `Namespace`, serviço  | 
|  `nginx_ingress_controller_nginx_process_resident_memory_bytes` |  ClusterName, `Namespace`, serviço  | 
|  `nginx_ingress_controller_config_last_reload_successful` |  ClusterName, `Namespace`, serviço  | 
|  `nginx_ingress_controller_requests` |  ClusterName, `Namespace`, serviço, status  | 

## Métricas do Prometheus para Memcached
<a name="ContainerInsights-Prometheus-metrics-memcached"></a>

As métricas a seguir são coletadas automaticamente do Memcached em clusters do Amazon EKS e do Kubernetes.


| Nome da métrica | Dimensões | 
| --- | --- | 
|  `memcached_current_items` |  ClusterName, `Namespace`, serviço  | 
|  `memcached_current_connections` |  ClusterName, `Namespace`, serviço  | 
|  `memcached_limit_bytes` |  ClusterName, `Namespace`, serviço  | 
|  `memcached_current_bytes` |  ClusterName, `Namespace`, serviço  | 
|  `memcached_written_bytes_total` |  ClusterName, `Namespace`, serviço  | 
|  `memcached_read_bytes_total` |  ClusterName, `Namespace`, serviço  | 
|  `memcached_items_evicted_total` |  ClusterName, `Namespace`, serviço  | 
|  `memcached_items_reclaimed_total` |  ClusterName, `Namespace`, serviço  | 
|  `memcached_commands_total` |  ClusterName, `Namespace`, serviço ClusterName, `Namespace`, serviço, comando ClusterName, `Namespace`, serviço, status, comando  | 

## Métricas do Prometheus para Java/JMX
<a name="ContainerInsights-Prometheus-metrics-jmx"></a>

**Métricas coletadas em clusters do Amazon EKS e do Kubernetes**

Em clusters do Amazon EKS e do Kubernetes, o Container Insights pode coletar as seguintes métricas predefinidas do Prometheus do Java Virtual Machine (JVM), Java e Tomcat (Catalina) usando o JMX Exporter. Para obter mais informações, consulte [ prometheus/jmx\$1exporter](https://github.com/prometheus/jmx_exporter) no Github.

**Java/JMX em clusters do Amazon EKS e do Kubernetes**


| Nome da métrica | Dimensões | 
| --- | --- | 
|  `jvm_classes_loaded` |  `ClusterName`, `Namespace`  | 
|  `jvm_threads_current` |  `ClusterName`, `Namespace`  | 
|  `jvm_threads_daemon` |  `ClusterName`, `Namespace`  | 
|  `java_lang_operatingsystem_totalswapspacesize` |  `ClusterName`, `Namespace`  | 
|  `java_lang_operatingsystem_systemcpuload` |  `ClusterName`, `Namespace`  | 
|  `java_lang_operatingsystem_processcpuload` |  `ClusterName`, `Namespace`  | 
|  `java_lang_operatingsystem_freeswapspacesize` |  `ClusterName`, `Namespace`  | 
|  `java_lang_operatingsystem_totalphysicalmemorysize` |  `ClusterName`, `Namespace`  | 
|  `java_lang_operatingsystem_freephysicalmemorysize` |  `ClusterName`, `Namespace`  | 
|  `java_lang_operatingsystem_openfiledescriptorcount` |  `ClusterName`, `Namespace`  | 
|  `java_lang_operatingsystem_availableprocessors` |  `ClusterName`, `Namespace`  | 
|  `jvm_memory_bytes_used` |  `ClusterName`, `Namespace`, área  | 
|  `jvm_memory_pool_bytes_used` |  `ClusterName`, `Namespace`, grupo  | 

**nota**  
Os valores da dimensão `area` podem ser `heap` ou `nonheap`.  
Os valores da dimensão `pool` podem ser `Tenured Gen`, `Compress Class Space`, `Survivor Space`, `Eden Space`, `Code Cache` ou `Metaspace`.

**Tomcat/JMX em clusters do Amazon EKS e do Kubernetes**

Além das métricas Java/JMX na tabela anterior, as métricas a seguir também são coletadas para a workload do Tomcat.


| Nome da métrica | Dimensões | 
| --- | --- | 
|  `catalina_manager_activesessions` |  `ClusterName`, `Namespace`  | 
|  `catalina_manager_rejectedsessions` |  `ClusterName`, `Namespace`  | 
|  `catalina_globalrequestprocessor_bytesreceived` |  `ClusterName`, `Namespace`  | 
|  `catalina_globalrequestprocessor_bytessent` |  `ClusterName`, `Namespace`  | 
|  `catalina_globalrequestprocessor_requestcount` |  `ClusterName`, `Namespace`  | 
|  `catalina_globalrequestprocessor_errorcount` |  `ClusterName`, `Namespace`  | 
|  `catalina_globalrequestprocessor_processingtime` |  `ClusterName`, `Namespace`  | 

**Java/JMX em clusters do Amazon ECS**


| Nome da métrica | Dimensões | 
| --- | --- | 
|  `jvm_classes_loaded` |  `ClusterName`, `TaskDefinitionFamily`  | 
|  `jvm_threads_current` |  `ClusterName`, `TaskDefinitionFamily`  | 
|  `jvm_threads_daemon` |  `ClusterName`, `TaskDefinitionFamily`  | 
|  `java_lang_operatingsystem_totalswapspacesize` |  `ClusterName`, `TaskDefinitionFamily`  | 
|  `java_lang_operatingsystem_systemcpuload` |  `ClusterName`, `TaskDefinitionFamily`  | 
|  `java_lang_operatingsystem_processcpuload` |  `ClusterName`, `TaskDefinitionFamily`  | 
|  `java_lang_operatingsystem_freeswapspacesize` |  `ClusterName`, `TaskDefinitionFamily`  | 
|  `java_lang_operatingsystem_totalphysicalmemorysize` |  `ClusterName`, `TaskDefinitionFamily`  | 
|  `java_lang_operatingsystem_freephysicalmemorysize` |  `ClusterName`, `TaskDefinitionFamily`  | 
|  `java_lang_operatingsystem_openfiledescriptorcount` |  `ClusterName`, `TaskDefinitionFamily`  | 
|  `java_lang_operatingsystem_availableprocessors` |  `ClusterName`, `TaskDefinitionFamily`  | 
|  `jvm_memory_bytes_used` |  `ClusterName`, TaskDefinitionFamily, área  | 
|  `jvm_memory_pool_bytes_used` |  `ClusterName`, TaskDefinitionFamily, grupo  | 

**nota**  
Os valores da dimensão `area` podem ser `heap` ou `nonheap`.  
Os valores da dimensão `pool` podem ser `Tenured Gen`, `Compress Class Space`, `Survivor Space`, `Eden Space`, `Code Cache` ou `Metaspace`.

**Tomcat/JMX em clusters do Amazon ECS**

Além das métricas Java/JMX na tabela anterior, as métricas a seguir também são coletadas para a workload do Tomcat em clusters do Amazon ECS.


| Nome da métrica | Dimensões | 
| --- | --- | 
|  `catalina_manager_activesessions` |  `ClusterName`, `TaskDefinitionFamily`  | 
|  `catalina_manager_rejectedsessions` |  `ClusterName`, `TaskDefinitionFamily`  | 
|  `catalina_globalrequestprocessor_bytesreceived` |  `ClusterName`, `TaskDefinitionFamily`  | 
|  `catalina_globalrequestprocessor_bytessent` |  `ClusterName`, `TaskDefinitionFamily`  | 
|  `catalina_globalrequestprocessor_requestcount` |  `ClusterName`, `TaskDefinitionFamily`  | 
|  `catalina_globalrequestprocessor_errorcount` |  `ClusterName`, `TaskDefinitionFamily`  | 
|  `catalina_globalrequestprocessor_processingtime` |  `ClusterName`, `TaskDefinitionFamily`  | 

## Métricas do Prometheus para HAProxy
<a name="ContainerInsights-Prometheus-metrics-haproxy"></a>

As métricas a seguir são coletadas automaticamente do HAProxy em clusters do Amazon EKS e do Kubernetes.

As métricas coletadas dependem da versão do HAProxy Ingress que você está usando. Para obter mais informações sobre o HAProxy Ingress e suas versões, consulte [haproxy-ingress](https://artifacthub.io/packages/helm/haproxy-ingress/haproxy-ingress).


| Nome da métrica | Dimensões | Disponibilidade | 
| --- | --- | --- | 
|  `haproxy_backend_bytes_in_total` |  `ClusterName`, `Namespace`, serviço  | Todas as versões do HAProxy Ingress | 
|  `haproxy_backend_bytes_out_total` |  `ClusterName`, `Namespace`, serviço  | Todas as versões do HAProxy Ingress | 
|  `haproxy_backend_connection_errors_total` |  `ClusterName`, `Namespace`, serviço  | Todas as versões do HAProxy Ingress | 
|  `haproxy_backend_connections_total` |  `ClusterName`, `Namespace`, serviço  | Todas as versões do HAProxy Ingress | 
|  `haproxy_backend_current_sessions` |  `ClusterName`, `Namespace`, serviço  | Todas as versões do HAProxy Ingress | 
|  `haproxy_backend_http_responses_total` |  `ClusterName`, `Namespace`, Serviço, código, backend  | Todas as versões do HAProxy Ingress | 
|  `haproxy_backend_status` |  `ClusterName`, `Namespace`, serviço  |  Somente nas versões 0.10 ou posteriores do HAProxy Ingress  | 
|  `haproxy_backend_up` |  `ClusterName`, `Namespace`, serviço  |  Somente nas versões do HAProxy Ingress anteriores à 0.10  | 
|  `haproxy_frontend_bytes_in_total` |  `ClusterName`, `Namespace`, serviço  | Todas as versões do HAProxy Ingress | 
|  `haproxy_frontend_bytes_out_total` |  `ClusterName`, `Namespace`, serviço  | Todas as versões do HAProxy Ingress | 
|  `haproxy_frontend_connections_total` |  `ClusterName`, `Namespace`, serviço  | Todas as versões do HAProxy Ingress | 
|  `haproxy_frontend_current_sessions` |  `ClusterName`, `Namespace`, serviço  | Todas as versões do HAProxy Ingress | 
|  `haproxy_frontend_http_requests_total` |  `ClusterName`, `Namespace`, serviço  | Todas as versões do HAProxy Ingress | 
|  `haproxy_frontend_http_responses_total` |  `ClusterName`, `Namespace`, Serviço, código, frontend  | Todas as versões do HAProxy Ingress | 
|  `haproxy_frontend_request_errors_total` |  `ClusterName`, `Namespace`, serviço  | Todas as versões do HAProxy Ingress | 
|  `haproxy_frontend_requests_denied_total` |  `ClusterName`, `Namespace`, serviço  | Todas as versões do HAProxy Ingress | 

**nota**  
Os valores da dimensão `code` podem ser `1xx`, `2xx`, `3xx`, `4xx`, `5xx` ou `other`.  
Os valores da dimensão `backend` podem ser:  
`http-default-backend`, `http-shared-backend` ou `httpsback-shared-backend` para HAProxy Ingress versão 0.0.27 ou anteriores.
`_default_backend` para versões HAProxy Ingress posteriores a 0.0.27.
Os valores da dimensão `frontend` podem ser:  
`httpfront-default-backend`, `httpfront-shared-frontend` ou `httpfronts` para HAProxy Ingress versão 0.0.27 ou anteriores.
`_front_http` ou `_front_https` para versões HAProxy Ingress posteriores a 0.0.27.

# Visualizar as métricas do Prometheus
<a name="ContainerInsights-Prometheus-viewmetrics"></a>

Você pode monitorar e utilizar alarmes com todas as métricas do Prometheus, incluindo as métricas selecionadas e pré-agregadas do App Mesh, NGINX, Java/JMX, Memcached e HAProxy, e qualquer outro exportador do Prometheus, configurado manualmente, que você possa ter adicionado. Para obter mais informações sobre como coletar métricas de outros exportadores do Prometheus, consulte [Tutorial para adicionar um novo destino de extração do Prometheus: métricas do servidor de API do Prometheus](ContainerInsights-Prometheus-Setup-configure.md#ContainerInsights-Prometheus-Setup-new-exporters).

No console do CloudWatch, o Container Insights fornece os seguintes relatórios pré-criados: 
+ Para clusters do Amazon EKS e do Kubernetes, há relatórios pré-criados para App Mesh, NGINX, HAPROXY, Memcached e Java/JMX.
+ Para clusters do Amazon ECS, há relatórios pré-compilados para App Mesh e Java/JMX.

O Container Insights também fornece painéis personalizados para cada uma das workloads das quais o Container Insights coleta métricas selecionadas. É possível baixar esses painéis no GitHub 

**Como visualizar todas as métricas do Prometheus**

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

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

1. Na lista de namespaces, escolha **ContainerInsights/Prometheus** or **ECS/ContainerInsights/Prometheus**.

1. Escolha um dos conjuntos de dimensões na lista a seguir. Marque a caixa de seleção ao lado das métricas que você deseja visualizar.

**Como visualizar relatórios pré-compilados sobre as métricas do Prometheus**

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

1. No painel de navegação, selecione **Performance Monitoring (Monitoramento de performance)**.

1. Na caixa suspensa perto da parte superior da página, escolha qualquer uma das opções do Prometheus.

   Na outra caixa suspensa, escolha um cluster a ser visualizado

Também fornecemos painéis personalizados para NGINX, App Mesh, Memcached, HAProxy e Java/JMX.

**Como usar um painel personalizado fornecido pela Amazon**

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

1. No painel de navegação, escolha **Painéis**.

1. Escolha **Create dashboard (Criar painel)**. Insira um nome para o novo painel e escolha **Create dashboard (Criar painel)**.

1. Em **Add to this dashboard (Adicionar a este painel)**, escolha **Cancel (Cancelar)**.

1. Escolha **Actions (Ações)**, **View/edit source (Exibir/editar origem)**.

1. Faça download de um dos arquivos JSON a seguir:
   + [ Origem do painel personalizado NGINX no Github](https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/sample_cloudwatch_dashboards/nginx-ingress/cw_dashboard_nginx_ingress_controller.json).
   + [ Origem do painel personalizado App Mesh no Github](https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/sample_cloudwatch_dashboards/appmesh/cw_dashboard_awsappmesh.json).
   + [ Origem do painel personalizado Memcached no Github](https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/sample_cloudwatch_dashboards/memcached/cw_dashboard_memcached.json)
   + [ Origem do painel personalizado HAProxy-Ingress no Github](https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/sample_cloudwatch_dashboards/haproxy-ingress/cw_dashboard_haproxy_ingress.json)
   + [ Origem do painel personalizado Java/JMX no Github](https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/sample_cloudwatch_dashboards/javajmx/cw_dashboard_javajmx.json).

1. Abra o arquivo JSON obtido por download com um editor de textos e faça as seguintes alterações:
   + Substitua todas as strings `{{YOUR_CLUSTER_NAME}}` pelo nome exato do cluster. Não adicione espaços em branco antes ou depois do texto.
   + Substitua todos as strings `{{YOUR_REGION}}` pela região da AWS em que o cluster está em execução. Por exemplo, **us-west-1** Não adicione espaços em branco antes ou depois do texto. 
   + Substitua todas as strings `{{YOUR_NAMESPACE}}` pelo namespace exato da workload.
   + Substitua todas as strings `{{YOUR_SERVICE_NAME}}` pelo nome de serviço exato da workload. Por exemplo, **haproxy-haproxy-ingress-controller-metrics**

1. Copie todo o blob JSON e cole-o na caixa de texto no console do CloudWatch, substituindo o que já está na caixa.

1. Escolha **Update (Atualizar)**, **Save dashboard (Salvar painel)**.

# Solucionar problemas de métricas do Prometheus
<a name="ContainerInsights-Prometheus-troubleshooting"></a>

Esta seção fornece ajuda para solucionar problemas de configuração de métricas do Prometheus. 

**Topics**
+ [Solucionar problemas de métricas do Prometheus no Amazon ECS](ContainerInsights-Prometheus-troubleshooting-ECS.md)
+ [Solucionar problemas de métricas do Prometheus em clusters do Amazon EKS e do Kubernetes](ContainerInsights-Prometheus-troubleshooting-EKS.md)

# Solucionar problemas de métricas do Prometheus no Amazon ECS
<a name="ContainerInsights-Prometheus-troubleshooting-ECS"></a>

Esta seção fornece ajuda para solucionar problemas de configuração de métricas do Prometheus em clusters do Amazon ECS. 

## Não visualizo as métricas do Prometheus enviadas ao CloudWatch Logs
<a name="ContainerInsights-Prometheus-troubleshooting-ECS-nometrics"></a>

As métricas do Prometheus devem ser ingeridas como eventos de log no grupo de logs **/aws/ecs/containerinsights/cluster-name/Prometheus**. Se o grupo de logs não estiver criado ou se as métricas do Prometheus não forem enviadas ao grupo de logs, primeiro você precisará conferir se os destinos do Prometheus foram detectados corretamente pelo atendente do CloudWatch. Em seguida, confira o grupo de segurança e as configurações de permissão do atendente do CloudWatch. As etapas a seguir orientam a fazer a depuração.

**Etapa 1: habilitar o modo de depuração do atendente do CloudWatch**

Primeiro, altere o atendente do CloudWatch para o modo de depuração adicionando as seguintes linhas em negrito ao modelo de arquivo do CloudFormation: `cwagent-ecs-prometheus-metric-for-bridge-host.yaml` ou `cwagent-ecs-prometheus-metric-for-awsvpc.yaml`. Salve o arquivo.

```
cwagentconfig.json: |
    {
      "agent": {
        "debug": true
      },
      "logs": {
        "metrics_collected": {
```

Criar um novo changeset do CloudFormation em relação à pilha existente. Defina outros parâmetros do changeset para os mesmos valores de sua pilha do CloudFormation existente. O exemplo a seguir é de um atendente do CloudWatch instalado em um cluster do Amazon ECS usando o tipo de inicialização do EC2 e o modo de rede de ponte.

```
ECS_NETWORK_MODE=bridge
 CREATE_IAM_ROLES=True
ECS_TASK_ROLE_NAME=your_selected_ecs_task_role_name
ECS_EXECUTION_ROLE_NAME=your_selected_ecs_execution_role_name
NEW_CHANGESET_NAME=your_selected_ecs_execution_role_name

aws cloudformation create-change-set --stack-name CWAgent-Prometheus-ECS-${ECS_CLUSTER_NAME}-EC2-${ECS_NETWORK_MODE} \
    --template-body file://cwagent-ecs-prometheus-metric-for-bridge-host.yaml \
    --parameters ParameterKey=ECSClusterName,ParameterValue=$ECS_CLUSTER_NAME \
                 ParameterKey=CreateIAMRoles,ParameterValue=$CREATE_IAM_ROLES \
                 ParameterKey=ECSNetworkMode,ParameterValue=$ECS_NETWORK_MODE \
                 ParameterKey=TaskRoleName,ParameterValue=$ECS_TASK_ROLE_NAME \
                 ParameterKey=ExecutionRoleName,ParameterValue=$ECS_EXECUTION_ROLE_NAME \
    --capabilities CAPABILITY_NAMED_IAM \
    --region $AWS_REGION \
    --change-set-name $NEW_CHANGESET_NAME
```

Acesse o console do CloudFormation para revisar o novo changeset, `$NEW_CHANGESET_NAME`. Deve haver uma alteração aplicada ao recurso **CWAgentConfigSSMParameter**. Execute o changeset e reinicie a tarefa do atendente do CloudWatch inserindo os comandos a seguir.

```
aws ecs update-service --cluster $ECS_CLUSTER_NAME \
--desired-count 0 \
--service your_service_name_here \
--region $AWS_REGION
```

Aguarde cerca de 10 segundos e insira o comando a seguir.

```
aws ecs update-service --cluster $ECS_CLUSTER_NAME \
--desired-count 1 \
--service your_service_name_here \
--region $AWS_REGION
```

**Etapa 2: verificar os logs de detecção de serviço do ECS**

Por padrão, a definição de tarefa do ECS do atendente do CloudWatch habilita os logs na seção abaixo. Os logs são enviados ao CloudWatch Logs no grupo de logs **/ecs/ecs-cwagent-prometheus**.

```
LogConfiguration:
  LogDriver: awslogs
    Options:
      awslogs-create-group: 'True'
      awslogs-group: "/ecs/ecs-cwagent-prometheus"
      awslogs-region: !Ref AWS::Region
      awslogs-stream-prefix: !Sub 'ecs-${ECSLaunchType}-awsvpc'
```

Filtrar os logs pela string `ECS_SD_Stats` para obter as métricas relacionadas à detecção de serviços do ECS, conforme mostrado no exemplo a seguir.

```
2020-09-1T01:53:14Z D! ECS_SD_Stats: AWSCLI_DescribeContainerInstances: 1
2020-09-1T01:53:14Z D! ECS_SD_Stats: AWSCLI_DescribeInstancesRequest: 1
2020-09-1T01:53:14Z D! ECS_SD_Stats: AWSCLI_DescribeTaskDefinition: 2
2020-09-1T01:53:14Z D! ECS_SD_Stats: AWSCLI_DescribeTasks: 1
2020-09-1T01:53:14Z D! ECS_SD_Stats: AWSCLI_ListTasks: 1
2020-09-1T01:53:14Z D! ECS_SD_Stats: Exporter_DiscoveredTargetCount: 1
2020-09-1T01:53:14Z D! ECS_SD_Stats: LRUCache_Get_EC2MetaData: 1
2020-09-1T01:53:14Z D! ECS_SD_Stats: LRUCache_Get_TaskDefinition: 2
2020-09-1T01:53:14Z D! ECS_SD_Stats: LRUCache_Size_ContainerInstance: 1
2020-09-1T01:53:14Z D! ECS_SD_Stats: LRUCache_Size_TaskDefinition: 2
2020-09-1T01:53:14Z D! ECS_SD_Stats: Latency: 43.399783ms
```

O significado de cada métrica para determinado ciclo de detecção de serviços do ECS é o seguinte:
+ **AWSCLI\$1DescribeContainerInstances**: o número de chamadas de API `ECS::DescribeContainerInstances` realizadas.
+ **AWSCLI\$1DescribeInstancesRequest**: o número de chamadas de API `ECS::DescribeInstancesRequest` realizadas.
+ **AWSCLI\$1DescribeTaskDefinition**: o número de chamadas de API `ECS::DescribeTaskDefinition` realizadas.
+ **AWSCLI\$1DescribeTasks**: o número de chamadas de API `ECS::DescribeTasks` realizadas.
+ **AWSCLI\$1ListTasks**: o número de chamadas de API `ECS::ListTasks` realizadas.
+ **ExporterDiscoveredTargetCount**: o número de destinos do Prometheus que foram detectados e exportados corretamente para o arquivo de resultados de destino dentro do contêiner.
+ **LRUCache\$1Get\$1EC2MetaData**: o número de vezes em que os metadados de instâncias de contêiner foram recuperados do cache.
+ **LRUCache\$1Get\$1TaskDefinition**: o número de vezes que os metadados de definição de tarefa do ECS foram recuperados do cache.
+ **LRUCache\$1Size\$1ContainerInstance**: o número de metadados da instância de contêiner exclusiva armazenados em cache na memória.
+ **LRUCache\$1Size\$1TaskDefinition**: o número de definições de tarefa de ECS exclusivas armazenadas em cache na memória.
+ **Latency**: quanto tempo demora o ciclo de detecção de serviços.

Confira o valor de `ExporterDiscoveredTargetCount` para ver se os destinos detectados do Prometheus correspondem a suas expectativas. Caso contrário, os possíveis motivos são:
+ A configuração da detecção de serviços do ECS pode não corresponder à configuração de sua aplicação. Para a detecção de serviços baseada em rótulos do docker, seus contêineres de destino talvez não tenham o rótulo do docker necessário configurado no atendente do CloudWatch para detectá-los automaticamente. Para a detecção de serviços baseada em expressão regular do ARN da definição de tarefa do ECS, a configuração regex no atendente do CloudWatch pode não corresponder à definição de tarefa da aplicação. 
+ A função da tarefa do ECS do atendente do CloudWatch pode não ter permissão para recuperar os metadados das tarefas do ECS. Verifique se o atendente do CloudWatch recebeu as seguintes permissões somente para leitura:
  + `ec2:DescribeInstances`
  + `ecs:ListTasks`
  + `ecs:DescribeContainerInstances`
  + `ecs:DescribeTasks`
  + `ecs:DescribeTaskDefinition`

**Etapa 3: verificar a conexão de rede e a política de função de tarefa do ECS**

Se ainda não houver eventos de log enviados ao grupo de logs do CloudWatch Logs de destino, mesmo que o valor de `Exporter_DiscoveredTargetCount` indique que há destinos do Prometheus detectados, isso pode ser causado por uma destas situações:
+ O atendente do CloudWatch talvez não consiga se conectar às portas de destino do Prometheus. Verifique a configuração do grupo de segurança por trás do atendente do CloudWatch. O IP privado deve permitir que o atendente do CloudWatch se conecte às portas do exportador do Prometheus. 
+ A função da tarefa do ECS do atendente do CloudWatch talvez não tenha a política gerenciada **CloudWatchAgentServerPolicy**. A função da tarefa do ECS do atendente do CloudWatch precisa ter essa política para poder enviar as métricas do Prometheus como eventos de log. Se você usou o modelo do CloudFormation para criar as funções do IAM automaticamente, tanto a função da tarefa do ECS como a função de execução do ECS são concedidas com o menor privilégio para executar o monitoramento do Prometheus. 

# Solucionar problemas de métricas do Prometheus em clusters do Amazon EKS e do Kubernetes
<a name="ContainerInsights-Prometheus-troubleshooting-EKS"></a>

Esta seção fornece ajuda para solucionar problemas de configuração de métricas do Prometheus em clusters do Amazon EKS e do Kubernetes. 

## Etapas gerais de solução de problemas no Amazon EKS
<a name="ContainerInsights-Prometheus-troubleshooting-general"></a>

Insira o comando a seguir para confirmar se o atendente do CloudWatch está em execução.

```
kubectl get pod -n amazon-cloudwatch
```

A saída deve incluir uma linha com `cwagent-prometheus-id` na coluna `NAME`, e `Running` no campo `STATUS column.`

Para exibir detalhes sobre o pod em execução, insira o comando a seguir. Substitua o *pod-name* pelo nome completo do pod que tem o nome que começa com `cw-agent-prometheus`.

```
kubectl describe pod pod-name -n amazon-cloudwatch
```

Se você tiver o CloudWatch Container Insights instalado, poderá usar o CloudWatch Logs Insights para consultar os logs do atendente do CloudWatch que coleta as métricas do Prometheus.

**Como consultar os logs do aplicativo**

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

1. No painel de navegação, em Logs, escolha **CloudWatch Logs Insights**.

1. Selecione o grupo de logs para os logs do aplicativo, **/aws/containerinsights/*cluster-name*/application**

1. Substitua a expressão de consulta de pesquisa pela seguinte consulta e escolha **Run query (Executar consulta)**

   ```
   fields ispresent(kubernetes.pod_name) as haskubernetes_pod_name, stream, kubernetes.pod_name, log | 
   filter haskubernetes_pod_name and kubernetes.pod_name like /cwagent-prometheus
   ```

Você também pode confirmar se as métricas e os metadados do Prometheus estão sendo ingeridos como eventos do CloudWatch Logs.

**Como confirmar se os dados do Prometheus estão sendo ingeridos**

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

1. No painel de navegação, em Logs, escolha **CloudWatch Logs Insights**.

1. Selecione **/aws/containerinsights/*cluster-name*/prometheus**

1. Substitua a expressão de consulta de pesquisa pela seguinte consulta e escolha **Run query (Executar consulta)**

   ```
   fields @timestamp, @message | sort @timestamp desc | limit 20
   ```

## Registrar as métricas descartadas do Prometheus
<a name="ContainerInsights-Prometheus-troubleshooting-droppedmetrics"></a>

Essa versão não coleta métricas do Prometheus do tipo histograma. Você pode usar o atendente do CloudWatch para verificar se alguma métrica do Prometheus está sendo descartada por ser de uma métrica de histograma. Também é possível registrar em log uma lista das primeiras 500 métricas do Prometheus que forem descartadas e não enviadas ao CloudWatch por serem métricas de histograma.

Para ver se alguma métrica está sendo descartada, insira o comando a seguir:

```
kubectl logs -l "app=cwagent-prometheus" -n amazon-cloudwatch --tail=-1
```

Se alguma métrica estiver sendo descartada, você verá as seguintes linhas no arquivo `/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log`.

```
I! Drop Prometheus metrics with unsupported types. Only Gauge, Counter and Summary are supported.
I! Please enable CWAgent debug mode to view the first 500 dropped metrics
```

Se você vir essas linhas e quiser saber quais métricas estão sendo descartadas, siga as etapas a seguir.

**Como registrar em log uma lista de métricas descartadas do Prometheus**

1. Altere o atendente do CloudWatch para o modo de depuração adicionando as seguintes linhas em negrito ao arquivo `prometheus-eks.yaml` ou `prometheus-k8s.yaml` e salve o arquivo.

   ```
   {
         "agent": {
           "debug": true
         },
   ```

   Esta seção do arquivo deve ser semelhante ao seguinte:

   ```
   cwagentconfig.json: |
       {
         "agent": {
           "debug": true
         },
         "logs": {
           "metrics_collected": {
   ```

1. Reinstale o atendente do CloudWatch para habilitar o modo de depuração inserindo os comandos a seguir:

   ```
   kubectl delete deployment cwagent-prometheus -n amazon-cloudwatch
   kubectl apply -f prometheus.yaml
   ```

   As métricas descartadas são registradas no pod do atendente do CloudWatch.

1. Para recuperar os logs do pod do atendente do CloudWatch, insira o comando a seguir:

   ```
   kubectl logs -l "app=cwagent-prometheus" -n amazon-cloudwatch --tail=-1
   ```

   Ou, se você tiver a geração de logs do Fluentd do Container Insights instalada, os logs também serão salvos no grupo de logs do CloudWatch Logs **/aws/containerinsights/*cluster\$1name*/application**.

   Para consultar esses logs, você pode seguir as etapas para consultar os logs do aplicativo em [Etapas gerais de solução de problemas no Amazon EKS](#ContainerInsights-Prometheus-troubleshooting-general).

## Onde estão as métricas do Prometheus ingeridas como eventos de log do CloudWatch Logs?
<a name="ContainerInsights-Prometheus-troubleshooting-metrics_ingested"></a>

O atendente do CloudWatch cria um fluxo de logs para cada configuração do trabalho de extração do Prometheus. Por exemplo, nos arquivos `prometheus-eks.yaml` e `prometheus-k8s.yaml`, a linha `job_name: 'kubernetes-pod-appmesh-envoy'` extrai conteúdo de métricas do App Mesh. O alvo do Prometheus é definido como `kubernetes-pod-appmesh-envoy`. Portanto, todas as métricas do App Mesh Prometheus são ingeridas como eventos do CloudWatch Logs no fluxo de logs **kubernetes-pod-appmesh-envoy** no grupo de logs chamado **/aws/containerinsights/cluster-name/Prometheus**.

## Não visualizo métricas do Amazon EKS ou do Kubernetes Prometheus nas métricas do CloudWatch
<a name="ContainerInsights-Prometheus-troubleshooting-no-metrics"></a>

Primeiro, verifique se as métricas do Prometheus são ingeridas como eventos de log no grupo de logs **/aws/containerinsights/cluster-name/Prometheus**. Use as informações em [Onde estão as métricas do Prometheus ingeridas como eventos de log do CloudWatch Logs?](#ContainerInsights-Prometheus-troubleshooting-metrics_ingested) para ajudar a verificar o fluxo de logs de destino. Se o fluxo de logs não foi criado ou não houver novos eventos de log no fluxo de logs, confira o seguinte:
+ Verifique se os endpoints do exportador de métricas do Prometheus estão configurados corretamente
+ Verifique se as configurações de extração de conteúdo do Prometheus na seção `config map: cwagent-prometheus` do arquivo YAML do atendente do CloudWatch estão corretas. A configuração deve ser a mesma de um arquivo de configuração do Prometheus. Para obter mais informações, consulte [<scrape\$1config>](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config) na documentação do Prometheus.

Se as métricas do Prometheus foram corretamente ingeridas como eventos de log, verifique se as configurações de formato de métrica incorporadas foram adicionadas aos eventos de log para gerar as métricas do CloudWatch.

```
"CloudWatchMetrics":[
   {
      "Metrics":[
         {
            "Name":"envoy_http_downstream_cx_destroy_remote_active_rq"
         }
      ],
      "Dimensions":[
         [
            "ClusterName",
            "Namespace"
         ]
      ],
      "Namespace":"ContainerInsights/Prometheus"
   }
],
```

Para obter mais informações sobre o formato de métrica incorporado, consulte [Especificação: formato de métricas incorporadas](CloudWatch_Embedded_Metric_Format_Specification.md).

Se não houver nenhum formato de métrica incorporado nos eventos de log, verifique se a seção `metric_declaration` está configurada corretamente na seção `config map: prometheus-cwagentconfig` do arquivo YAML de instalação do atendente do CloudWatch. Para obter mais informações, consulte [Tutorial para adicionar um novo destino de extração do Prometheus: métricas do servidor de API do Prometheus](ContainerInsights-Prometheus-Setup-configure.md#ContainerInsights-Prometheus-Setup-new-exporters).

# Integração ao Application Insights
<a name="container-insights-appinsights"></a>

O Amazon CloudWatch Application Insights ajuda a monitorar suas aplicações, além de identificar e configurar as principais métricas, logs e alarmes nos recursos da aplicação e pilha de tecnologia. Para obter mais informações, consulte [Detectar problemas comuns de aplicações com o CloudWatch Application Insights](cloudwatch-application-insights.md).

Você pode habilitar o Application Insights para coletar dados adicionais de suas aplicações e microsserviços conteinerizados. Se ainda não fez isso, poderá habilitá-lo escolhendo **Auto-configure Application Insights** (Configurar automaticamente o Application Insights) abaixo da visualização de performance no painel Container Insights.

Se você já configurou o CloudWatch Application Insights para monitorar suas aplicações em contêiner, o painel do Application Insights aparecerá abaixo do painel do Container Insights.

Para obter mais informações sobre o Application Insights e aplicações em contêiner, consulte [Habilitar o Application Insights para monitoramento de recursos do Amazon ECS e do Amazon EKS](appinsights-setting-up-console.md#appinsights-container-insights).

# Visualização dos eventos do ciclo de vida do Amazon ECS no Container Insights
<a name="container-insights-ECS-lifecycle-events"></a>

É possível visualizar os eventos do ciclo de vida do Amazon ECS no console do Container Insights. Isso ajuda a correlacionar suas métricas, logs e eventos de contêiner em uma única visualização para oferecer uma visibilidade operacional mais completa.

Os eventos incluem eventos de alteração de estado da instância de contêiner, eventos de alteração de estado de tarefas e eventos de ação de serviços. São enviados automaticamente pelo Amazon ECS ao Amazon EventBridge e também são coletados no CloudWatch no formato de log de eventos. Para obter mais informações sobre esses eventos, consulte [Eventos do Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_cwe_events.html).

Os preços padrão do Container Insights se aplicam a eventos de ciclo de vida do Amazon ECS. Para obter mais informações, consulte [Preços do Amazon CloudWatch](https://aws.amazon.com/cloudwatch/pricing/).

Para configurar a tabela de eventos do ciclo de vida e criar regras para um cluster, é necessário ter as permissões `events:PutRule`, `events:PutTargets` e `logs:CreateLogGroup`. Você também deve se certificar de que há uma política de recursos que permite que o EventBridge crie o fluxo de logs e envie os logs para o CloudWatch Logs. Se essa política de recursos não existir, você pode digitar o seguinte comando para criá-la:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogStream",
        "logs:PutLogEvents"
      ],
      "Principal": {
        "Service": ["events.amazonaws.com", "delivery.logs.amazonaws.com"]
      },
      "Resource": "arn:aws:logs:us-east-1:111122223333:log-group:/aws/events/ecs/containerinsights/*:*",
      "Condition": {
        "StringEquals": {
        "aws:SourceAccount": "111122223333"
        },
        "ArnLike": {
        "aws:SourceArn": "arn:aws:events:us-east-1:111122223333:rule/eventsToLog*"
        }
      },
      "Sid": "TrustEventBridgeToStoreECSLifecycleLogEvents"
    }
  ]
}
```

------

Você pode usar o comando a seguir para verificar se você já possui essa política e para confirmar se a anexação funcionou corretamente.

```
aws logs describe-resource-policies --region region --output json
```

Para visualizar a tabela de eventos do ciclo de vida, é necessário ter as permissões `events:DescribeRule`, `events:ListTargetsByRule` e `logs:DescribeLogGroups`.

**Como visualizar os eventos do ciclo de vida do Amazon ECS no console do CloudWatch Container Insights**

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

1. Escolha **Insights**, **Container Insights**.

1. Escolha **Exibir painéis de desempenho**. 

1. No próximo menu suspenso, escolha entre **ECS Clusters** (Clusters do ECS), **ECS Services** (Serviços do ECS) ou **ECS Tasks** (Tarefas do ECS).

1. Se você escolheu **ECS Services** (Serviços do ECS) ou **ECS Tasks** (Tarefas do ECS) na etapa anterior, escolha a guia **Lifecycle events** (Eventos do ciclo de vida).

1. Na parte inferior da página, se você visualizar **Configure lifecycle events** (Configurar eventos do ciclo de vida), escolha essa opção para criar regras do EventBridge para o cluster.

   Os eventos são exibidos abaixo dos painéis do Container Insights e acima da seção Application Insights. Para executar mais analytics e criar outras visualizações sobre esses eventos, escolha **Exibir no Logs Insights** na tabela Eventos do ciclo de vida.

# Solução de problemas do Container Insights
<a name="ContainerInsights-troubleshooting"></a>

As seções a seguir podem ajudar se você estiver tendo problemas com o Container Insights.

## Falha na implantação no Amazon EKS ou no Kubernetes
<a name="ContainerInsights-setup-EKS-troubleshooting-general"></a>

Se o atendente não for implantado corretamente em um cluster do Kubernetes, tente o seguinte:
+ Execute o comando a seguir para obter a lista de pods.

  ```
  kubectl get pods -n amazon-cloudwatch
  ```
+ Execute o comando a seguir e verifique os eventos na parte inferior da saída.

  ```
  kubectl describe pod pod-name -n amazon-cloudwatch
  ```
+ Execute o comando a seguir para verificar os logs.

  ```
  kubectl logs pod-name -n amazon-cloudwatch
  ```

## Pânico não autorizado: não é possível recuperar dados cadvisor do kubelet
<a name="ContainerInsights-setup-EKS-troubleshooting-permissions"></a>

Se a implantação falhar com o erro `Unauthorized panic: Cannot retrieve cadvisor data from kubelet`, o kubelet talvez não tenha o modo de autorização Webhook habilitado. Esse modo é necessário para o Container Insights. Para obter mais informações, consulte [Verificação dos pré-requisitos para o Container Insights no CloudWatch](Container-Insights-prerequisites.md).

## Implantar o Container Insights em um cluster excluído e recriado no Amazon ECS
<a name="ContainerInsights-troubleshooting-recreate"></a>

Se você excluir um cluster existente do Amazon ECS que não tenha o Container Insights habilitado e recriá-lo com o mesmo nome, não será possível habilitar o Container Insights nesse novo cluster ao recriá-lo. Você pode habilitá-lo recriando-o e inserindo o seguinte comando:

```
aws ecs update-cluster-settings --cluster myCICluster --settings name=container Insights,value=enabled
```

## Erro de endpoint inválido
<a name="ContainerInsights-setup-invalid-endpoint"></a>

Se você vir uma mensagem de erro semelhante à seguinte, verifique se você substituiu todos os espaços reservados, como *cluster-name* e *region-name* nos comandos que você está usando pelas informações corretas para sua implantação.

```
"log": "2020-04-02T08:36:16Z E! cloudwatchlogs: code: InvalidEndpointURL, message: invalid endpoint uri, original error: &url.Error{Op:\"parse\", URL:\"https://logs.{{region_name}}.amazonaws.com/\", Err:\"{\"}, &awserr.baseError{code:\"InvalidEndpointURL\", message:\"invalid endpoint uri\", errs:[]error{(*url.Error)(0xc0008723c0)}}\n",
```

## As métricas não são exibidas no console
<a name="ContainerInsights-setup-EKS-troubleshooting-nometrics"></a>

Se você não vir nenhuma métrica do Container Insights no Console de gerenciamento da AWS, certifique-se de que você tenha concluído a configuração do Container Insights. As métricas não serão exibidas antes de o Container Insights ser configurado completamente. Para obter mais informações, consulte [Configurar o Container Insights](deploy-container-insights.md).

## Métricas de pod ausentes no Amazon EKS ou no Kubernetes após a atualização do cluster
<a name="ContainerInsights-troubleshooting-podmetrics-missing"></a>

Esta seção pode ser útil se todas ou algumas métricas de pods estiverem ausentes depois de você implantar o agente do CloudWatch como daemonset em um cluster novo ou atualizado, ou se você vir um log de erros com a mensagem `W! No pod metric collected`.

Esses erros podem ser causados por alterações no runtime do contêiner, como containerd ou o driver cgroup systemd do docker. Normalmente, você pode resolver isso atualizando seu manifesto de implantação para que o soquete containerd do host seja montado no contêiner. Veja o exemplo a seguir:

```
# For full example see https://github.com/aws-samples/amazon-cloudwatch-container-insights/blob/latest/k8s-deployment-manifest-templates/deployment-mode/daemonset/container-insights-monitoring/cwagent/cwagent-daemonset.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: cloudwatch-agent
  namespace: amazon-cloudwatch
spec:
  template:
    spec:
      containers:
        - name: cloudwatch-agent
# ...
          # Don't change the mountPath
          volumeMounts:
# ...
            - name: dockersock
              mountPath: /var/run/docker.sock
              readOnly: true
            - name: varlibdocker
              mountPath: /var/lib/docker
              readOnly: true
            - name: containerdsock # NEW mount
              mountPath: /run/containerd/containerd.sock
              readOnly: true
# ...
      volumes:
# ...
        - name: dockersock
          hostPath:
            path: /var/run/docker.sock
        - name: varlibdocker
          hostPath:
            path: /var/lib/docker
        - name: containerdsock # NEW volume
          hostPath:
            path: /run/containerd/containerd.sock
```

## Nenhuma métrica de pod ao usar Bottlerocket para o Amazon EKS
<a name="ContainerInsights-troubleshooting-bottlerocket"></a>

O Bottlerocket é um sistema operacional de código aberto baseado em Linux que foi criado especificamente pela AWS para executar contêineres. 

O Bottlerocket usa um caminho de `containerd` diferente no host, então é necessário alterar os volumes para o local dele. Se não fizer isso, você verá um erro nos logs que inclui `W! No pod metric collected`. Veja o exemplo a seguir.

```
volumes:
  # ... 
    - name: containerdsock
      hostPath:
        # path: /run/containerd/containerd.sock
        # bottlerocket does not mount containerd sock at normal place
        # https://github.com/bottlerocket-os/bottlerocket/commit/91810c85b83ff4c3660b496e243ef8b55df0973b
        path: /run/dockershim.sock
```

## Nenhuma métrica do filesystem de contêiner ao usar o runtime do containerd para Amazon EKS ou Kubernetes
<a name="ContainerInsights-troubleshooting-containerd"></a>

Esse é um problema conhecido, e colaboradores da comunidade estão trabalhando nele. Para obter mais informações, consulte [Métrica de uso de disco para conteinerd](https://github.com/google/cadvisor/issues/2785) e [métricas do sistema de arquivos de contêiner não são compatíves com o cadvisor para containerd](https://github.com/aws/amazon-cloudwatch-agent/issues/192) no GitHub.

## Aumento inesperado do volume de log do atendente do CloudWatch ao coletar métricas do Prometheus
<a name="ContainerInsights-troubleshooting-log-volume-increase"></a>

Essa foi uma regressão introduzida na versão 1.247347.6b250880 do atendente do CloudWatch. Essa regressão já foi corrigida em versões mais recentes do atendente. Seu impacto foi limitado a cenários em que os clientes coletavam os logs do próprio atendente do CloudWatch e estavam usando o Prometheus. Para obter mais informações, consulte [atendente [do prometheus] está imprimindo todas as métricas extraídas no log](https://github.com/aws/amazon-cloudwatch-agent/issues/209) no GitHub.

## A imagem do Docker mais recente mencionada nas notas de release não foi encontrada no Dockerhub
<a name="ContainerInsights-troubleshooting-docker-image"></a>

Atualizamos a nota de release e a etiqueta no Github antes de iniciarmos a versão real internamente. Normalmente, leva de 1 a 2 semanas para ver a imagem do Docker mais recente nos registros depois de bater o número da versão no Github. Não há versão noturna para a imagem do contêiner do atendente do CloudWatch. É possível criar a imagem diretamente da origem no seguinte local: [https://github.com/aws/amazon-cloudwatch-agent/tree/main/amazon-cloudwatch-container-insights/cloudwatch-agent-dockerfile](https://github.com/aws/amazon-cloudwatch-agent/tree/main/amazon-cloudwatch-container-insights/cloudwatch-agent-dockerfile)

## Erro CrashLoopBackoff no atendente do CloudWatch
<a name="ContainerInsights-troubleshooting-crashloopbackoff"></a>

Ao ver um erro `CrashLoopBackOff` do atendente do CloudWatch, verifique se suas permissões do IAM estão definidas corretamente. Para obter mais informações, consulte [Verificação dos pré-requisitos para o Container Insights no CloudWatch](Container-Insights-prerequisites.md).

## Agente do CloudWatch ou pod do Fluentd travado em pendente
<a name="ContainerInsights-troubleshooting-pending"></a>

Se você tiver um agente do CloudWatch ou pod do Fluentd travado em `Pending` ou com um erro `FailedScheduling`, determine se seus nós têm recursos de computação suficientes com base no número de núcleos e na quantidade de RAM exigida pelos agentes. Use o comando a seguir para descrever o pod:

```
kubectl describe pod cloudwatch-agent-85ppg -n amazon-cloudwatch
```

# Criar sua própria imagem do Docker do atendente do CloudWatch
<a name="ContainerInsights-build-docker-image"></a>

Você pode criar sua própria imagem do Docker do atendente do CloudWatch fazendo referência ao Dockerfile localizado em [ https://github.com/aws-samples/amazon-cloudwatch-container-insights/blob/latest/cloudwatch-agent-dockerfile/Dockerfile](https://github.com/aws-samples/amazon-cloudwatch-container-insights/blob/latest/cloudwatch-agent-dockerfile/Dockerfile).

O Dockerfile oferece suporte para criar imagens multiarquitetura diretamente usando `docker buildx`.

# Implantar outros recursos do atendente do CloudWatch nos contêineres
<a name="ContainerInsights-other-agent-features"></a>

Você pode implantar recursos de monitoramento adicionais em seus contêineres usando o atendente do CloudWatch. Esses recursos incluem o seguinte:
+ **Formato de métrica incorporado**: para obter mais informações, consulte [Incorporação de métricas em logs](CloudWatch_Embedded_Metric_Format.md).
+ **StatsD**: para obter mais informações, consulte [Recuperar métricas personalizadas com o StatsD](CloudWatch-Agent-custom-metrics-statsd.md).

Instruções e arquivos necessários estão localizados nos seguintes locais do GitHub:
+ Para contêineres do Amazon ECS, consulte [Exemplo de definições de tarefas do Amazon ECS com base nos modos de implantação](https://github.com/aws-samples/amazon-cloudwatch-container-insights/tree/latest/ecs-task-definition-templates/deployment-mode).
+ Para contêineres do Amazon EKS e do Kubernetes, consulte [ Exemplo de arquivos YAML do Kubernetes com base nos modos de implantação](https://github.com/aws-samples/amazon-cloudwatch-container-insights/tree/latest/k8s-deployment-manifest-templates/deployment-mode).

# Lambda Insights
<a name="Lambda-Insights"></a>

O Lambda Insights do CloudWatch Lambda é uma solução de monitoramento e solução de problemas para aplicações sem servidor em execução no AWS Lambda. A solução coleta, agrega e resume métricas no nível do sistema, incluindo tempo da CPU, memória, disco e rede. Ele também coleta, agrega e resume informações de diagnóstico, como inicializações a frio e desligamentos do operador do Lambda para ajudar a isolar problemas com as funções do Lambda e resolvê-los rapidamente.

O Lambda Insights usa uma nova extensão do CloudWatch Lambda, que é fornecida como uma camada do Lambda. Quando você instala essa extensão em uma função Lambda, ela coleta métricas no nível do sistema e emite um único evento de log de performance para cada invocação dessa função Lambda. O CloudWatch usa formatação métrica incorporada para extrair métricas dos eventos de log.

**nota**  
O agente do Lambda Insights é compatível somente com os runtimes do Lambda que usam o Amazon Linux 2 e o Amazon Linux 2023.

Para obter mais informações sobre as extensões do Lambda, consulte [Usar extensões do AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/using-extensions.html). Para obter mais informações sobre o formato de métrica incorporado, consulte [Incorporação de métricas em logs](CloudWatch_Embedded_Metric_Format.md).

Você pode usar o Lambda Insights com qualquer função Lambda que utilize um runtime do Lambda compatível com extensões do Lambda. Para obter uma lista desses tempos de execução, consulte [API de extensões do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-extensions-api.html).

**Preços**

Para cada função do Lambda habilitada para o Lambda Insights, você paga apenas pelo que usar com relação a métricas e logs. Para obter exemplos de preço, consulte [Preço do Amazon CloudWatch](https://aws.amazon.com/cloudwatch/pricing/).

O runtime consumido pela extensão do Lambda (em incrementos de 1 ms) será cobrado. Para obter mais informações sobre preços do Lambda, consulte [Preço do AWS Lambda](https://aws.amazon.com/lambda/pricing/).

# Conceitos básicos do Lambda Insights
<a name="Lambda-Insights-Getting-Started"></a>

Para habilitar o Lambda Insights em uma função Lambda, é possível usar uma alternância de um clique no console do Lambda. Se preferir, você pode usar a AWS CLI, o CloudFormation, a CLI do AWS Serverless Application Model ou o AWS Cloud Development Kit (AWS CDK). 

As seções a seguir fornecem instruções detalhadas para concluir essas etapas.

**Topics**
+ [Versões disponíveis da extensão do Lambda Insights](Lambda-Insights-extension-versions.md)
+ [Usar o console para habilitar o Lambda Insights em uma função existente do Lambda](Lambda-Insights-Getting-Started-console.md)
+ [Usar a AWS CLI para habilitar o Lambda Insights em uma função existente do Lambda](Lambda-Insights-Getting-Started-cli.md)
+ [Usar a CLI do AWS SAM para habilitar o Lambda Insights em uma função existente do Lambda](Lambda-Insights-Getting-Started-SAM-CLI.md)
+ [Usar o CloudFormation para habilitar o Lambda Insights em uma função existente do Lambda](Lambda-Insights-Getting-Started-cloudformation.md)
+ [Usar a AWS CDK para habilitar o Lambda Insights em uma função existente do Lambda](Lambda-Insights-Getting-Started-clouddevelopmentkit.md)
+ [Usar Framework Sem Servidor para habilitar o Lambda Insights em uma função existente do Lambda](Lambda-Insights-Getting-Started-serverless.md)
+ [Habilitar o Lambda Insights em uma implantação de imagem de contêiner do Lambda](Lambda-Insights-Getting-Started-docker.md)
+ [Atualizar a versão da extensão do Lambda Insights em uma função](Lambda-Insights-Update-Extension.md)

# Versões disponíveis da extensão do Lambda Insights
<a name="Lambda-Insights-extension-versions"></a>

Esta seção relaciona as versões da extensão do Lambda Insights e os ARNs a serem usados para essas extensões em cada região da AWS.

**Topics**
+ [plataformas x86-64](Lambda-Insights-extension-versionsx86-64.md)
+ [Plataformas ARM64](Lambda-Insights-extension-versionsARM.md)

# plataformas x86-64
<a name="Lambda-Insights-extension-versionsx86-64"></a>

Esta seção relaciona as versões da extensão do Lambda Insights para plataformas x84-64, bem como os ARNs a serem usados para essas extensões em cada região da AWS.

**Importante**  
As extensões do Lambda Insights na versão 1.0.317.0 e em versões posteriores não são compatíveis com o Amazon Linux 1.

## 1.0.660.0
<a name="Lambda-Insights-extension-1.0.660.0"></a>

A versão 1.0.660.0 é compatível com a extensão Lambda Insights para funções do Lambda executadas em instâncias gerenciadas do Lambda. Para funções executadas em instâncias gerenciadas do Lambda, a extensão enviará um evento de log EMF uma vez por minuto, criando 12 métricas do CloudWatch com granularidade de um minuto.

**ARNs para a versão 1.0.660.0**

A tabela a seguir reaciona os ARNs a serem usados para essa versão da extensão em cada região da AWS onde está disponível.


| Região | ARN | 
| --- | --- | 
|  Leste dos EUA (Norte da Virgínia) |  `arn:aws:lambda:us-east-1:580247275435:layer:LambdaInsightsExtension:64`  | 
|  Leste dos EUA (Ohio) |  `arn:aws:lambda:us-east-2:580247275435:layer:LambdaInsightsExtension:64`  | 
|  Oeste dos EUA (N. da Califórnia) |  `arn:aws:lambda:us-west-1:580247275435:layer:LambdaInsightsExtension:64`  | 
|  Oeste dos EUA (Oregon) |  `arn:aws:lambda:us-west-2:580247275435:layer:LambdaInsightsExtension:64`  | 
|  África (Cidade do Cabo) |  `arn:aws:lambda:af-south-1:012438385374:layer:LambdaInsightsExtension:56`  | 
|  Ásia-Pacífico (Hong Kong) |  `arn:aws:lambda:ap-east-1:519774774795:layer:LambdaInsightsExtension:56`  | 
|  Ásia-Pacífico (Hyderabad) |  `arn:aws:lambda:ap-south-2:891564319516:layer:LambdaInsightsExtension:38`  | 
|  Ásia-Pacífico (Jacarta) |  `arn:aws:lambda:ap-southeast-3:439286490199:layer:LambdaInsightsExtension:40`  | 
|  Ásia-Pacífico (Malásia) |  `arn:aws:lambda:ap-southeast-5:590183865173:layer:LambdaInsightsExtension:13`  | 
|  Ásia-Pacífico (Melbourne) |  `arn:aws:lambda:ap-southeast-4:158895979263:layer:LambdaInsightsExtension:33`  | 
|  Ásia-Pacífico (Mumbai) |  `arn:aws:lambda:ap-south-1:580247275435:layer:LambdaInsightsExtension:62`  | 
|  Ásia-Pacífico (Nova Zelândia) |  `arn:aws:lambda:ap-southeast-6:727646510379:layer:LambdaInsightsExtension:6`  | 
|  Ásia-Pacífico (Osaka) |  `arn:aws:lambda:ap-northeast-3:194566237122:layer:LambdaInsightsExtension:45`  | 
|  Ásia-Pacífico (Seul) |  `arn:aws:lambda:ap-northeast-2:580247275435:layer:LambdaInsightsExtension:63`  | 
|  Ásia-Pacífico (Singapura) |  `arn:aws:lambda:ap-southeast-1:580247275435:layer:LambdaInsightsExtension:64`  | 
|  Ásia-Pacífico (Sydney) |  `arn:aws:lambda:ap-southeast-2:580247275435:layer:LambdaInsightsExtension:64`  | 
|  Ásia-Pacífico (Taipei) |  `arn:aws:lambda:ap-east-2:145023102084:layer:LambdaInsightsExtension:13`  | 
|  Ásia-Pacífico (Tailândia) |  `arn:aws:lambda:ap-southeast-7:761018874580:layer:LambdaInsightsExtension:13`  | 
|  Ásia-Pacífico (Tóquio) |  `arn:aws:lambda:ap-northeast-1:580247275435:layer:LambdaInsightsExtension:91`  | 
|  Canadá (Central) |  `arn:aws:lambda:ca-central-1:580247275435:layer:LambdaInsightsExtension:63`  | 
|  Oeste do Canadá (Calgary) |  `arn:aws:lambda:ca-west-1:946466191631:layer:LambdaInsightsExtension:25`  | 
|  China (Pequim) |  `arn:aws-cn:lambda:cn-north-1:488211338238:layer:LambdaInsightsExtension:51`  | 
|  China (Ningxia) |  `arn:aws-cn:lambda:cn-northwest-1:488211338238:layer:LambdaInsightsExtension:51`  | 
|  Europa (Frankfurt) |  `arn:aws:lambda:eu-central-1:580247275435:layer:LambdaInsightsExtension:64`  | 
|  Europa (Irlanda) |  `arn:aws:lambda:eu-west-1:580247275435:layer:LambdaInsightsExtension:64`  | 
|  Europa (Londres) |  `arn:aws:lambda:eu-west-2:580247275435:layer:LambdaInsightsExtension:64`  | 
|  Europa (Milão) |  `arn:aws:lambda:eu-south-1:339249233099:layer:LambdaInsightsExtension:56`  | 
|  Europe (Paris) |  `arn:aws:lambda:eu-west-3:580247275435:layer:LambdaInsightsExtension:63`  | 
|  Europa (Espanha) |  `arn:aws:lambda:eu-south-2:352183217350:layer:LambdaInsightsExtension:40`  | 
|  Europa (Estocolmo) |  `arn:aws:lambda:eu-north-1:580247275435:layer:LambdaInsightsExtension:61`  | 
|  Europa (Zurique) |  `arn:aws:lambda:eu-central-2:033019950311:layer:LambdaInsightsExtension:39`  | 
|  Israel (Tel Aviv) |  `arn:aws:lambda:il-central-1:459530977127:layer:LambdaInsightsExtension:33`  | 
|  México (Centro) |  `arn:aws:lambda:mx-central-1:879381266642:layer:LambdaInsightsExtension:13`  | 
|  Oriente Médio (Bahrein) |  `arn:aws:lambda:me-south-1:285320876703:layer:LambdaInsightsExtension:56`  | 
|  Oriente Médio (Emirados Árabes Unidos) |  `arn:aws:lambda:me-central-1:732604637566:layer:LambdaInsightsExtension:39`  | 
|  América do Sul (São Paulo) |  `arn:aws:lambda:sa-east-1:580247275435:layer:LambdaInsightsExtension:63`  | 
|  AWS GovCloud (Leste dos EUA) |  `arn:aws-us-gov:lambda:us-gov-east-1:122132214140:layer:LambdaInsightsExtension:24`  | 
|  AWS GovCloud (Oeste dos EUA) |  `arn:aws-us-gov:lambda:us-gov-west-1:751350123760:layer:LambdaInsightsExtension:24`  | 

## 1.0.498.0
<a name="Lambda-Insights-extension-1.0.498.0"></a>

A versão 1.0.498.0 inclui. correções de bugs e melhorias na performance.

**ARNs para a versão 1.0.498.0**

A tabela a seguir reaciona os ARNs a serem usados para essa versão da extensão em cada região da AWS onde está disponível.


| Região | ARN | 
| --- | --- | 
|  Leste dos EUA (Norte da Virgínia) |  `arn:aws:lambda:us-east-1:580247275435:layer:LambdaInsightsExtension:60`  | 
|  Leste dos EUA (Ohio) |  `arn:aws:lambda:us-east-2:580247275435:layer:LambdaInsightsExtension:60`  | 
|  Oeste dos EUA (N. da Califórnia) |  `arn:aws:lambda:us-west-1:580247275435:layer:LambdaInsightsExtension:60`  | 
|  Oeste dos EUA (Oregon) |  `arn:aws:lambda:us-west-2:580247275435:layer:LambdaInsightsExtension:60`  | 
|  África (Cidade do Cabo) |  `arn:aws:lambda:af-south-1:012438385374:layer:LambdaInsightsExtension:52`  | 
|  Ásia-Pacífico (Tailândia) |  `arn:aws:lambda:ap-southeast-7:761018874580:layer:LambdaInsightsExtension:8`  | 
|  Ásia-Pacífico (Hong Kong) |  `arn:aws:lambda:ap-east-1:519774774795:layer:LambdaInsightsExtension:52`  | 
|  Ásia-Pacífico (Hyderabad) |  `arn:aws:lambda:ap-south-2:891564319516:layer:LambdaInsightsExtension:34`  | 
|  Ásia-Pacífico (Jacarta) |  `arn:aws:lambda:ap-southeast-3:439286490199:layer:LambdaInsightsExtension:36`  | 
|  Ásia-Pacífico (Malásia) |  `arn:aws:lambda:ap-southeast-5:590183865173:layer:LambdaInsightsExtension:9`  | 
|  Ásia-Pacífico (Melbourne) |  `arn:aws:lambda:ap-southeast-4:158895979263:layer:LambdaInsightsExtension:29`  | 
|  Ásia-Pacífico (Mumbai) |  `arn:aws:lambda:ap-south-1:580247275435:layer:LambdaInsightsExtension:58`  | 
|  Ásia-Pacífico (Osaka) |  `arn:aws:lambda:ap-northeast-3:194566237122:layer:LambdaInsightsExtension:41`  | 
|  Ásia-Pacífico (Seul) |  `arn:aws:lambda:ap-northeast-2:580247275435:layer:LambdaInsightsExtension:59`  | 
|  Ásia-Pacífico (Singapura) |  `arn:aws:lambda:ap-southeast-1:580247275435:layer:LambdaInsightsExtension:60`  | 
|  Ásia-Pacífico (Sydney) |  `arn:aws:lambda:ap-southeast-2:580247275435:layer:LambdaInsightsExtension:60`  | 
|  Ásia-Pacífico (Tóquio) |  `arn:aws:lambda:ap-northeast-1:580247275435:layer:LambdaInsightsExtension:87`  | 
|  Canadá (Central) |  `arn:aws:lambda:ca-central-1:580247275435:layer:LambdaInsightsExtension:59`  | 
|  Oeste do Canadá (Calgary) |  `arn:aws:lambda:ca-west-1:946466191631:layer:LambdaInsightsExtension:21`  | 
|  China (Pequim) |  `arn:aws-cn:lambda:cn-north-1:488211338238:layer:LambdaInsightsExtension:48`  | 
|  China (Ningxia); |  `arn:aws-cn:lambda:cn-northwest-1:488211338238:layer:LambdaInsightsExtension:48`  | 
|  Europa (Frankfurt) |  `arn:aws:lambda:eu-central-1:580247275435:layer:LambdaInsightsExtension:60`  | 
|  Europa (Irlanda) |  `arn:aws:lambda:eu-west-1:580247275435:layer:LambdaInsightsExtension:60`  | 
|  Europa (Londres) |  `arn:aws:lambda:eu-west-2:580247275435:layer:LambdaInsightsExtension:60`  | 
|  Europa (Milão) |  `arn:aws:lambda:eu-south-1:339249233099:layer:LambdaInsightsExtension:52`  | 
|  Europe (Paris) |  `arn:aws:lambda:eu-west-3:580247275435:layer:LambdaInsightsExtension:59`  | 
|  Europa (Espanha) |  `arn:aws:lambda:eu-south-2:352183217350:layer:LambdaInsightsExtension:36`  | 
|  Europa (Estocolmo) |  `arn:aws:lambda:eu-north-1:580247275435:layer:LambdaInsightsExtension:57`  | 
|  Europa (Zurique) |  `arn:aws:lambda:eu-central-2:033019950311:layer:LambdaInsightsExtension:35`  | 
|  Israel (Tel Aviv) |  `arn:aws:lambda:il-central-1:459530977127:layer:LambdaInsightsExtension:29`  | 
|  México (Centro) |  `arn:aws:lambda:mx-central-1:879381266642:layer:LambdaInsightsExtension:8`  | 
|  Oriente Médio (Bahrein) |  `arn:aws:lambda:me-south-1:285320876703:layer:LambdaInsightsExtension:52`  | 
|  Oriente Médio (Emirados Árabes Unidos) |  `arn:aws:lambda:me-central-1:732604637566:layer:LambdaInsightsExtension:35`  | 
|  América do Sul (São Paulo) |  `arn:aws:lambda:sa-east-1:580247275435:layer:LambdaInsightsExtension:59`  | 
|  AWS GovCloud (Leste dos EUA) |  `arn:aws-us-gov:lambda:us-gov-east-1:122132214140:layer:LambdaInsightsExtension:24`  | 
|  AWS GovCloud (Oeste dos EUA) |  `arn:aws-us-gov:lambda:us-gov-west-1:751350123760:layer:LambdaInsightsExtension:24`  | 
|  Ásia-Pacífico (Nova Zelândia) |  `arn:aws:lambda:ap-southeast-6:727646510379:layer:LambdaInsightsExtension:1`  | 
|  Ásia-Pacífico (Taipei) |  `arn:aws:lambda:ap-east-2:145023102084:layer:LambdaInsightsExtension:8`  | 

## 1.0.404.0
<a name="Lambda-Insights-extension-1.0.404.0"></a>

A versão 1.0.404.0 reduz o tamanho binário da extensão do Lambda Insights de \$110 MB para \$16 MB e, subsequentemente, reduz o tamanho do zip da camada de extensão do Lambda Insights de \$14 MB para \$12,7 MB. Ela também reduz o consumo geral de memória do agente de \$110 MB para \$17 MB.

**ARNs para a versão 1.0.404.0**

A tabela a seguir reaciona os ARNs a serem usados para essa versão da extensão em cada região da AWS onde está disponível.


| Região | ARN | 
| --- | --- | 
|  Leste dos EUA (Norte da Virgínia) |  `arn:aws:lambda:us-east-1:580247275435:layer:LambdaInsightsExtension:56`  | 
|  Leste dos EUA (Ohio) |  `arn:aws:lambda:us-east-2:580247275435:layer:LambdaInsightsExtension:56`  | 
|  Oeste dos EUA (N. da Califórnia) |  `arn:aws:lambda:us-west-1:580247275435:layer:LambdaInsightsExtension:56`  | 
|  Oeste dos EUA (Oregon) |  `arn:aws:lambda:us-west-2:580247275435:layer:LambdaInsightsExtension:56`  | 
|  África (Cidade do Cabo) |  `arn:aws:lambda:af-south-1:012438385374:layer:LambdaInsightsExtension:47`  | 
|  Ásia-Pacífico (Tailândia) |  `arn:aws:lambda:ap-southeast-7:761018874580:layer:LambdaInsightsExtension:3`  | 
|  Ásia-Pacífico (Hong Kong) |  `arn:aws:lambda:ap-east-1:519774774795:layer:LambdaInsightsExtension:47`  | 
|  Ásia-Pacífico (Hyderabad) |  `arn:aws:lambda:ap-south-2:891564319516:layer:LambdaInsightsExtension:29`  | 
|  Ásia-Pacífico (Jacarta) |  `arn:aws:lambda:ap-southeast-3:439286490199:layer:LambdaInsightsExtension:33`  | 
|  Ásia-Pacífico (Malásia) |  `arn:aws:lambda:ap-southeast-5:590183865173:layer:LambdaInsightsExtension:4`  | 
|  Ásia-Pacífico (Melbourne) |  `arn:aws:lambda:ap-southeast-4:158895979263:layer:LambdaInsightsExtension:24`  | 
|  Ásia-Pacífico (Mumbai) |  `arn:aws:lambda:ap-south-1:580247275435:layer:LambdaInsightsExtension:54`  | 
|  Ásia-Pacífico (Osaka) |  `arn:aws:lambda:ap-northeast-3:194566237122:layer:LambdaInsightsExtension:37`  | 
|  Ásia-Pacífico (Seul) |  `arn:aws:lambda:ap-northeast-2:580247275435:layer:LambdaInsightsExtension:55`  | 
|  Ásia-Pacífico (Singapura) |  `arn:aws:lambda:ap-southeast-1:580247275435:layer:LambdaInsightsExtension:56`  | 
|  Ásia-Pacífico (Sydney) |  `arn:aws:lambda:ap-southeast-2:580247275435:layer:LambdaInsightsExtension:56`  | 
|  Ásia-Pacífico (Tóquio) |  `arn:aws:lambda:ap-northeast-1:580247275435:layer:LambdaInsightsExtension:83`  | 
|  Canadá (Central) |  `arn:aws:lambda:ca-central-1:580247275435:layer:LambdaInsightsExtension:55`  | 
|  Oeste do Canadá (Calgary) |  `arn:aws:lambda:ca-west-1:946466191631:layer:LambdaInsightsExtension:16`  | 
|  China (Pequim) |  `arn:aws-cn:lambda:cn-north-1:488211338238:layer:LambdaInsightsExtension:46`  | 
|  China (Ningxia); |  `arn:aws-cn:lambda:cn-northwest-1:488211338238:layer:LambdaInsightsExtension:46`  | 
|  Europa (Frankfurt) |  `arn:aws:lambda:eu-central-1:580247275435:layer:LambdaInsightsExtension:56`  | 
|  Europa (Irlanda) |  `arn:aws:lambda:eu-west-1:580247275435:layer:LambdaInsightsExtension:56`  | 
|  Europa (Londres) |  `arn:aws:lambda:eu-west-2:580247275435:layer:LambdaInsightsExtension:56`  | 
|  Europa (Milão) |  `arn:aws:lambda:eu-south-1:339249233099:layer:LambdaInsightsExtension:47`  | 
|  Europe (Paris) |  `arn:aws:lambda:eu-west-3:580247275435:layer:LambdaInsightsExtension:55`  | 
|  Europa (Espanha) |  `arn:aws:lambda:eu-south-2:352183217350:layer:LambdaInsightsExtension:31`  | 
|  Europa (Estocolmo) |  `arn:aws:lambda:eu-north-1:580247275435:layer:LambdaInsightsExtension:53`  | 
|  Europa (Zurique) |  `arn:aws:lambda:eu-central-2:033019950311:layer:LambdaInsightsExtension:30`  | 
|  Israel (Tel Aviv) |  `arn:aws:lambda:il-central-1:459530977127:layer:LambdaInsightsExtension:23`  | 
|  México (Centro) |  `arn:aws:lambda:mx-central-1:879381266642:layer:LambdaInsightsExtension:3`  | 
|  Oriente Médio (Bahrein) |  `arn:aws:lambda:me-south-1:285320876703:layer:LambdaInsightsExtension:47`  | 
|  Oriente Médio (Emirados Árabes Unidos) |  `arn:aws:lambda:me-central-1:732604637566:layer:LambdaInsightsExtension:30`  | 
|  América do Sul (São Paulo) |  `arn:aws:lambda:sa-east-1:580247275435:layer:LambdaInsightsExtension:55`  | 
|  AWS GovCloud (Leste dos EUA) |  `arn:aws-us-gov:lambda:us-gov-east-1:122132214140:layer:LambdaInsightsExtension:24`  | 
|  AWS GovCloud (Oeste dos EUA) |  `arn:aws-us-gov:lambda:us-gov-west-1:751350123760:layer:LambdaInsightsExtension:24`  | 

## 1.0.391.0
<a name="Lambda-Insights-extension-1.0.391.0"></a>

**Importante**  
A versão 1.0.391.0 altera a forma como o Lambda Insights coleta e relata o uso de threads. Nas versões anteriores da extensão, a métrica `threads_max` relatava o número máximo de threads em execução no processo com o ID de processo 1. A partir da versão 1.0.391.0, essa métrica relata o número máximo de threads que estavam em execução em qualquer ponto do tempo durante a execução da função, em todos os processos no ambiente de execução. Isso inclui os processos da função do Lambda, os processos das extensões, os processos específicos do sistema/runtime e assim por diante. Isso torna a métrica `threads_max` mais abrangente ao avaliar os threads restantes deixados para seu uso. Para obter mais informações sobre cotas de threads e processos, consulte [Cotas do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html).

A versão 1.0.391.0 também adiciona suporte às regiões Ásia-Pacífico (Tailândia) e México (Central).

**ARNs para a versão 1.0.391.0**

A tabela a seguir reaciona os ARNs a serem usados para essa versão da extensão em cada região da AWS onde está disponível.


| Região | ARN | 
| --- | --- | 
|  Leste dos EUA (Norte da Virgínia) |  `arn:aws:lambda:us-east-1:580247275435:layer:LambdaInsightsExtension:55`  | 
|  Leste dos EUA (Ohio) |  `arn:aws:lambda:us-east-2:580247275435:layer:LambdaInsightsExtension:55`  | 
|  Oeste dos EUA (N. da Califórnia) |  `arn:aws:lambda:us-west-1:580247275435:layer:LambdaInsightsExtension:55`  | 
|  Oeste dos EUA (Oregon) |  `arn:aws:lambda:us-west-2:580247275435:layer:LambdaInsightsExtension:55`  | 
|  África (Cidade do Cabo) |  `arn:aws:lambda:af-south-1:012438385374:layer:LambdaInsightsExtension:46`  | 
|  Ásia-Pacífico (Tailândia) |  `arn:aws:lambda:ap-southeast-7:761018874580:layer:LambdaInsightsExtension:2`  | 
|  Ásia-Pacífico (Hong Kong) |  `arn:aws:lambda:ap-east-1:519774774795:layer:LambdaInsightsExtension:46`  | 
|  Ásia-Pacífico (Hyderabad) |  `arn:aws:lambda:ap-south-2:891564319516:layer:LambdaInsightsExtension:28`  | 
|  Ásia-Pacífico (Jacarta) |  `arn:aws:lambda:ap-southeast-3:439286490199:layer:LambdaInsightsExtension:32`  | 
|  Ásia-Pacífico (Malásia) |  `arn:aws:lambda:ap-southeast-5:590183865173:layer:LambdaInsightsExtension:3`  | 
|  Ásia-Pacífico (Melbourne) |  `arn:aws:lambda:ap-southeast-4:158895979263:layer:LambdaInsightsExtension:23`  | 
|  Ásia-Pacífico (Mumbai) |  `arn:aws:lambda:ap-south-1:580247275435:layer:LambdaInsightsExtension:53`  | 
|  Ásia-Pacífico (Osaka) |  `arn:aws:lambda:ap-northeast-3:194566237122:layer:LambdaInsightsExtension:36`  | 
|  Ásia-Pacífico (Seul) |  `arn:aws:lambda:ap-northeast-2:580247275435:layer:LambdaInsightsExtension:54`  | 
|  Ásia-Pacífico (Singapura) |  `arn:aws:lambda:ap-southeast-1:580247275435:layer:LambdaInsightsExtension:55`  | 
|  Ásia-Pacífico (Sydney) |  `arn:aws:lambda:ap-southeast-2:580247275435:layer:LambdaInsightsExtension:55`  | 
|  Ásia-Pacífico (Tóquio) |  `arn:aws:lambda:ap-northeast-1:580247275435:layer:LambdaInsightsExtension:82`  | 
|  Canadá (Central) |  `arn:aws:lambda:ca-central-1:580247275435:layer:LambdaInsightsExtension:54`  | 
|  Oeste do Canadá (Calgary) |  `arn:aws:lambda:ca-west-1:946466191631:layer:LambdaInsightsExtension:15`  | 
|  China (Pequim) |  `arn:aws-cn:lambda:cn-north-1:488211338238:layer:LambdaInsightsExtension:45`  | 
|  China (Ningxia); |  `arn:aws-cn:lambda:cn-northwest-1:488211338238:layer:LambdaInsightsExtension:45`  | 
|  Europa (Frankfurt) |  `arn:aws:lambda:eu-central-1:580247275435:layer:LambdaInsightsExtension:55`  | 
|  Europa (Irlanda) |  `arn:aws:lambda:eu-west-1:580247275435:layer:LambdaInsightsExtension:55`  | 
|  Europa (Londres) |  `arn:aws:lambda:eu-west-2:580247275435:layer:LambdaInsightsExtension:55`  | 
|  Europa (Milão) |  `arn:aws:lambda:eu-south-1:339249233099:layer:LambdaInsightsExtension:46`  | 
|  Europe (Paris) |  `arn:aws:lambda:eu-west-3:580247275435:layer:LambdaInsightsExtension:54`  | 
|  Europa (Espanha) |  `arn:aws:lambda:eu-south-2:352183217350:layer:LambdaInsightsExtension:30`  | 
|  Europa (Estocolmo) |  `arn:aws:lambda:eu-north-1:580247275435:layer:LambdaInsightsExtension:52`  | 
|  Europa (Zurique) |  `arn:aws:lambda:eu-central-2:033019950311:layer:LambdaInsightsExtension:29`  | 
|  Israel (Tel Aviv) |  `arn:aws:lambda:il-central-1:459530977127:layer:LambdaInsightsExtension:23`  | 
|  México (Centro) |  `arn:aws:lambda:mx-central-1:879381266642:layer:LambdaInsightsExtension:2`  | 
|  Oriente Médio (Bahrein) |  `arn:aws:lambda:me-south-1:285320876703:layer:LambdaInsightsExtension:46`  | 
|  Oriente Médio (Emirados Árabes Unidos) |  `arn:aws:lambda:me-central-1:732604637566:layer:LambdaInsightsExtension:29`  | 
|  América do Sul (São Paulo) |  `arn:aws:lambda:sa-east-1:580247275435:layer:LambdaInsightsExtension:54`  | 
|  AWS GovCloud (Leste dos EUA) |  `arn:aws-us-gov:lambda:us-gov-east-1:122132214140:layer:LambdaInsightsExtension:23`  | 
|  AWS GovCloud (Oeste dos EUA) |  `arn:aws-us-gov:lambda:us-gov-west-1:751350123760:layer:LambdaInsightsExtension:23`  | 

## 1.0.333.0
<a name="Lambda-Insights-extension-1.0.333.0"></a>

A versão 1.0.333.0 inclui correções de bugs.

**ARNs para a versão 1.0.333.0**

A tabela a seguir reaciona os ARNs a serem usados para essa versão da extensão em cada região da AWS onde está disponível.


| Região | ARN | 
| --- | --- | 
|  Leste dos EUA (Norte da Virgínia) |  `arn:aws:lambda:us-east-1:580247275435:layer:LambdaInsightsExtension:53`  | 
|  Leste dos EUA (Ohio) |  `arn:aws:lambda:us-east-2:580247275435:layer:LambdaInsightsExtension:53`  | 
|  Oeste dos EUA (N. da Califórnia) |  `arn:aws:lambda:us-west-1:580247275435:layer:LambdaInsightsExtension:53`  | 
|  Oeste dos EUA (Oregon) |  `arn:aws:lambda:us-west-2:580247275435:layer:LambdaInsightsExtension:53`  | 
|  África (Cidade do Cabo) |  `arn:aws:lambda:af-south-1:012438385374:layer:LambdaInsightsExtension:44`  | 
|  Ásia-Pacífico (Hong Kong) |  `arn:aws:lambda:ap-east-1:519774774795:layer:LambdaInsightsExtension:44`  | 
|  Ásia-Pacífico (Hyderabad) |  `arn:aws:lambda:ap-south-2:891564319516:layer:LambdaInsightsExtension:26`  | 
|  Ásia-Pacífico (Jacarta) |  `arn:aws:lambda:ap-southeast-3:439286490199:layer:LambdaInsightsExtension:30`  | 
|  Ásia-Pacífico (Malásia) |  `arn:aws:lambda:ap-southeast-5:590183865173:layer:LambdaInsightsExtension:1`  | 
|  Ásia-Pacífico (Melbourne) |  `arn:aws:lambda:ap-southeast-4:158895979263:layer:LambdaInsightsExtension:21`  | 
|  Ásia-Pacífico (Mumbai) |  `arn:aws:lambda:ap-south-1:580247275435:layer:LambdaInsightsExtension:51`  | 
|  Ásia-Pacífico (Osaka) |  `arn:aws:lambda:ap-northeast-3:194566237122:layer:LambdaInsightsExtension:34`  | 
|  Ásia-Pacífico (Seul) |  `arn:aws:lambda:ap-northeast-2:580247275435:layer:LambdaInsightsExtension:52`  | 
|  Ásia-Pacífico (Singapura) |  `arn:aws:lambda:ap-southeast-1:580247275435:layer:LambdaInsightsExtension:53`  | 
|  Ásia-Pacífico (Sydney) |  `arn:aws:lambda:ap-southeast-2:580247275435:layer:LambdaInsightsExtension:53`  | 
|  Ásia-Pacífico (Tóquio) |  `arn:aws:lambda:ap-northeast-1:580247275435:layer:LambdaInsightsExtension:80`  | 
|  Canadá (Central) |  `arn:aws:lambda:ca-central-1:580247275435:layer:LambdaInsightsExtension:52`  | 
|  Oeste do Canadá (Calgary) |  `arn:aws:lambda:ca-west-1:946466191631:layer:LambdaInsightsExtension:13`  | 
|  China (Pequim) |  `arn:aws-cn:lambda:cn-north-1:488211338238:layer:LambdaInsightsExtension:43`  | 
|  China (Ningxia); |  `arn:aws-cn:lambda:cn-northwest-1:488211338238:layer:LambdaInsightsExtension:43`  | 
|  Europa (Frankfurt) |  `arn:aws:lambda:eu-central-1:580247275435:layer:LambdaInsightsExtension:53`  | 
|  Europa (Irlanda) |  `arn:aws:lambda:eu-west-1:580247275435:layer:LambdaInsightsExtension:53`  | 
|  Europa (Londres) |  `arn:aws:lambda:eu-west-2:580247275435:layer:LambdaInsightsExtension:53`  | 
|  Europa (Milão) |  `arn:aws:lambda:eu-south-1:339249233099:layer:LambdaInsightsExtension:44`  | 
|  Europe (Paris) |  `arn:aws:lambda:eu-west-3:580247275435:layer:LambdaInsightsExtension:52`  | 
|  Europa (Espanha) |  `arn:aws:lambda:eu-south-2:352183217350:layer:LambdaInsightsExtension:28`  | 
|  Europa (Estocolmo) |  `arn:aws:lambda:eu-north-1:580247275435:layer:LambdaInsightsExtension:50`  | 
|  Europa (Zurique) |  `arn:aws:lambda:eu-central-2:033019950311:layer:LambdaInsightsExtension:27`  | 
|  Israel (Tel Aviv) |  `arn:aws:lambda:il-central-1:459530977127:layer:LambdaInsightsExtension:21`  | 
|  Oriente Médio (Bahrein) |  `arn:aws:lambda:me-south-1:285320876703:layer:LambdaInsightsExtension:44`  | 
|  Oriente Médio (Emirados Árabes Unidos) |  `arn:aws:lambda:me-central-1:732604637566:layer:LambdaInsightsExtension:27`  | 
|  América do Sul (São Paulo) |  `arn:aws:lambda:sa-east-1:580247275435:layer:LambdaInsightsExtension:52`  | 
|  AWS GovCloud (Leste dos EUA) |  `arn:aws-us-gov:lambda:us-gov-east-1:122132214140:layer:LambdaInsightsExtension:21`  | 
|  AWS GovCloud (Oeste dos EUA) |  `arn:aws-us-gov:lambda:us-gov-west-1:751350123760:layer:LambdaInsightsExtension:21`  | 

## 1.0.317.0
<a name="Lambda-Insights-extension-1.0.317.0"></a>

A versão 1.0.317.0 inclui a remoção do suporte para a plataforma Amazon Linux 1 e correções de bugs. Além disso, há a inclusão de suporte para regiões AWS GovCloud (US).

**ARNs para a versão 1.0.317.0**

A tabela a seguir reaciona os ARNs a serem usados para essa versão da extensão em cada região da AWS onde está disponível.


| Região | ARN | 
| --- | --- | 
|  Leste dos EUA (Norte da Virgínia) |  `arn:aws:lambda:us-east-1:580247275435:layer:LambdaInsightsExtension:52`  | 
|  Leste dos EUA (Ohio) |  `arn:aws:lambda:us-east-2:580247275435:layer:LambdaInsightsExtension:52`  | 
|  Oeste dos EUA (N. da Califórnia) |  `arn:aws:lambda:us-west-1:580247275435:layer:LambdaInsightsExtension:52`  | 
|  Oeste dos EUA (Oregon) |  `arn:aws:lambda:us-west-2:580247275435:layer:LambdaInsightsExtension:52`  | 
|  África (Cidade do Cabo) |  `arn:aws:lambda:af-south-1:012438385374:layer:LambdaInsightsExtension:43`  | 
|  Ásia-Pacífico (Hong Kong) |  `arn:aws:lambda:ap-east-1:519774774795:layer:LambdaInsightsExtension:43`  | 
|  Ásia-Pacífico (Hyderabad) |  `arn:aws:lambda:ap-south-2:891564319516:layer:LambdaInsightsExtension:25`  | 
|  Ásia-Pacífico (Jacarta) |  `arn:aws:lambda:ap-southeast-3:439286490199:layer:LambdaInsightsExtension:29`  | 
|  Ásia-Pacífico (Melbourne) |  `arn:aws:lambda:ap-southeast-4:158895979263:layer:LambdaInsightsExtension:20`  | 
|  Ásia-Pacífico (Mumbai) |  `arn:aws:lambda:ap-south-1:580247275435:layer:LambdaInsightsExtension:50`  | 
|  Ásia-Pacífico (Osaka) |  `arn:aws:lambda:ap-northeast-3:194566237122:layer:LambdaInsightsExtension:33`  | 
|  Ásia-Pacífico (Seul) |  `arn:aws:lambda:ap-northeast-2:580247275435:layer:LambdaInsightsExtension:51`  | 
|  Ásia-Pacífico (Singapura) |  `arn:aws:lambda:ap-southeast-1:580247275435:layer:LambdaInsightsExtension:52`  | 
|  Ásia-Pacífico (Sydney) |  `arn:aws:lambda:ap-southeast-2:580247275435:layer:LambdaInsightsExtension:52`  | 
|  Ásia-Pacífico (Tóquio) |  `arn:aws:lambda:ap-northeast-1:580247275435:layer:LambdaInsightsExtension:79`  | 
|  Canadá (Central) |  `arn:aws:lambda:ca-central-1:580247275435:layer:LambdaInsightsExtension:51`  | 
|  Oeste do Canadá (Calgary) |  `arn:aws:lambda:ca-west-1:946466191631:layer:LambdaInsightsExtension:12`  | 
|  China (Pequim) |  `arn:aws-cn:lambda:cn-north-1:488211338238:layer:LambdaInsightsExtension:42`  | 
|  China (Ningxia); |  `arn:aws-cn:lambda:cn-northwest-1:488211338238:layer:LambdaInsightsExtension:42`  | 
|  Europa (Frankfurt) |  `arn:aws:lambda:eu-central-1:580247275435:layer:LambdaInsightsExtension:52`  | 
|  Europa (Irlanda) |  `arn:aws:lambda:eu-west-1:580247275435:layer:LambdaInsightsExtension:52`  | 
|  Europa (Londres) |  `arn:aws:lambda:eu-west-2:580247275435:layer:LambdaInsightsExtension:52`  | 
|  Europa (Milão) |  `arn:aws:lambda:eu-south-1:339249233099:layer:LambdaInsightsExtension:43`  | 
|  Europe (Paris) |  `arn:aws:lambda:eu-west-3:580247275435:layer:LambdaInsightsExtension:51`  | 
|  Europa (Espanha) |  `arn:aws:lambda:eu-south-2:352183217350:layer:LambdaInsightsExtension:27`  | 
|  Europa (Estocolmo) |  `arn:aws:lambda:eu-north-1:580247275435:layer:LambdaInsightsExtension:49`  | 
|  Europa (Zurique) |  `arn:aws:lambda:eu-central-2:033019950311:layer:LambdaInsightsExtension:26`  | 
|  Israel (Tel Aviv) |  `arn:aws:lambda:il-central-1:459530977127:layer:LambdaInsightsExtension:20`  | 
|  Oriente Médio (Bahrein) |  `arn:aws:lambda:me-south-1:285320876703:layer:LambdaInsightsExtension:43`  | 
|  Oriente Médio (Emirados Árabes Unidos) |  `arn:aws:lambda:me-central-1:732604637566:layer:LambdaInsightsExtension:26`  | 
|  América do Sul (São Paulo) |  `arn:aws:lambda:sa-east-1:580247275435:layer:LambdaInsightsExtension:51`  | 
|  AWS GovCloud (Leste dos EUA) |  `arn:aws-us-gov:lambda:us-gov-east-1:122132214140:layer:LambdaInsightsExtension:19`  | 
|  AWS GovCloud (Oeste dos EUA) |  `arn:aws-us-gov:lambda:us-gov-west-1:751350123760:layer:LambdaInsightsExtension:19`  | 

## 1.0.295.0
<a name="Lambda-Insights-extension-1.0.295.0"></a>

A versão 1.0.295.0 inclui atualizações de dependência para todos os runtimes compatíveis.

**ARNs para a versão 1.0.295.0**

A tabela a seguir reaciona os ARNs a serem usados para essa versão da extensão em cada região da AWS onde está disponível.


| Região | ARN | 
| --- | --- | 
|  Leste dos EUA (Norte da Virgínia) |  `arn:aws:lambda:us-east-1:580247275435:layer:LambdaInsightsExtension:51`  | 
|  Leste dos EUA (Ohio) |  `arn:aws:lambda:us-east-2:580247275435:layer:LambdaInsightsExtension:51`  | 
|  Oeste dos EUA (N. da Califórnia) |  `arn:aws:lambda:us-west-1:580247275435:layer:LambdaInsightsExtension:51`  | 
|  Oeste dos EUA (Oregon) |  `arn:aws:lambda:us-west-2:580247275435:layer:LambdaInsightsExtension:51`  | 
|  África (Cidade do Cabo) |  `arn:aws:lambda:af-south-1:012438385374:layer:LambdaInsightsExtension:42`  | 
|  Ásia-Pacífico (Hong Kong) |  `arn:aws:lambda:ap-east-1:519774774795:layer:LambdaInsightsExtension:42`  | 
|  Ásia-Pacífico (Hyderabad) |  `arn:aws:lambda:ap-south-2:891564319516:layer:LambdaInsightsExtension:24`  | 
|  Ásia-Pacífico (Jacarta) |  `arn:aws:lambda:ap-southeast-3:439286490199:layer:LambdaInsightsExtension:28`  | 
|  Ásia-Pacífico (Melbourne) |  `arn:aws:lambda:ap-southeast-4:158895979263:layer:LambdaInsightsExtension:19`  | 
|  Ásia-Pacífico (Mumbai) |  `arn:aws:lambda:ap-south-1:580247275435:layer:LambdaInsightsExtension:49`  | 
|  Ásia-Pacífico (Osaka) |  `arn:aws:lambda:ap-northeast-3:194566237122:layer:LambdaInsightsExtension:32`  | 
|  Ásia-Pacífico (Seul) |  `arn:aws:lambda:ap-northeast-2:580247275435:layer:LambdaInsightsExtension:50`  | 
|  Ásia-Pacífico (Singapura) |  `arn:aws:lambda:ap-southeast-1:580247275435:layer:LambdaInsightsExtension:51`  | 
|  Ásia-Pacífico (Sydney) |  `arn:aws:lambda:ap-southeast-2:580247275435:layer:LambdaInsightsExtension:51`  | 
|  Ásia-Pacífico (Tóquio) |  `arn:aws:lambda:ap-northeast-1:580247275435:layer:LambdaInsightsExtension:78`  | 
|  Canadá (Central) |  `arn:aws:lambda:ca-central-1:580247275435:layer:LambdaInsightsExtension:50`  | 
|  Oeste do Canadá (Calgary) |  `arn:aws:lambda:ca-west-1:946466191631:layer:LambdaInsightsExtension:11`  | 
|  China (Pequim) |  `arn:aws-cn:lambda:cn-north-1:488211338238:layer:LambdaInsightsExtension:41`  | 
|  China (Ningxia); |  `arn:aws-cn:lambda:cn-northwest-1:488211338238:layer:LambdaInsightsExtension:41`  | 
|  Europa (Frankfurt) |  `arn:aws:lambda:eu-central-1:580247275435:layer:LambdaInsightsExtension:51`  | 
|  Europa (Irlanda) |  `arn:aws:lambda:eu-west-1:580247275435:layer:LambdaInsightsExtension:51`  | 
|  Europa (Londres) |  `arn:aws:lambda:eu-west-2:580247275435:layer:LambdaInsightsExtension:51`  | 
|  Europa (Milão) |  `arn:aws:lambda:eu-south-1:339249233099:layer:LambdaInsightsExtension:42`  | 
|  Europe (Paris) |  `arn:aws:lambda:eu-west-3:580247275435:layer:LambdaInsightsExtension:50`  | 
|  Europa (Espanha) |  `arn:aws:lambda:eu-south-2:352183217350:layer:LambdaInsightsExtension:26`  | 
|  Europa (Estocolmo) |  `arn:aws:lambda:eu-north-1:580247275435:layer:LambdaInsightsExtension:48`  | 
|  Europa (Zurique) |  `arn:aws:lambda:eu-central-2:033019950311:layer:LambdaInsightsExtension:25`  | 
|  Israel (Tel Aviv) |  `arn:aws:lambda:il-central-1:459530977127:layer:LambdaInsightsExtension:19`  | 
|  Oriente Médio (Bahrein) |  `arn:aws:lambda:me-south-1:285320876703:layer:LambdaInsightsExtension:42`  | 
|  Oriente Médio (Emirados Árabes Unidos) |  `arn:aws:lambda:me-central-1:732604637566:layer:LambdaInsightsExtension:25`  | 
|  América do Sul (São Paulo) |  `arn:aws:lambda:sa-east-1:580247275435:layer:LambdaInsightsExtension:50`  | 

## 1.0.275.0
<a name="Lambda-Insights-extension-1.0.275.0"></a>

A versão 1.0.275.0 inclui atualizações importantes de dependência para todos os runtimes compatíveis.

**ARNs para a versão 1.0.275.0**

A tabela a seguir reaciona os ARNs a serem usados para essa versão da extensão em cada região da AWS onde está disponível.


| Região | ARN | 
| --- | --- | 
|  Leste dos EUA (Norte da Virgínia) |  `arn:aws:lambda:us-east-1:580247275435:layer:LambdaInsightsExtension:49`  | 
|  Leste dos EUA (Ohio) |  `arn:aws:lambda:us-east-2:580247275435:layer:LambdaInsightsExtension:49`  | 
|  Oeste dos EUA (N. da Califórnia) |  `arn:aws:lambda:us-west-1:580247275435:layer:LambdaInsightsExtension:49`  | 
|  Oeste dos EUA (Oregon) |  `arn:aws:lambda:us-west-2:580247275435:layer:LambdaInsightsExtension:49`  | 
|  África (Cidade do Cabo) |  `arn:aws:lambda:af-south-1:012438385374:layer:LambdaInsightsExtension:40`  | 
|  Ásia-Pacífico (Hong Kong) |  `arn:aws:lambda:ap-east-1:519774774795:layer:LambdaInsightsExtension:40`  | 
|  Ásia-Pacífico (Hyderabad) |  `arn:aws:lambda:ap-south-2:891564319516:layer:LambdaInsightsExtension:22`  | 
|  Ásia-Pacífico (Jacarta) |  `arn:aws:lambda:ap-southeast-3:439286490199:layer:LambdaInsightsExtension:26`  | 
|  Ásia-Pacífico (Melbourne) |  `arn:aws:lambda:ap-southeast-4:158895979263:layer:LambdaInsightsExtension:17`  | 
|  Ásia-Pacífico (Mumbai) |  `arn:aws:lambda:ap-south-1:580247275435:layer:LambdaInsightsExtension:47`  | 
|  Ásia-Pacífico (Osaka) |  `arn:aws:lambda:ap-northeast-3:194566237122:layer:LambdaInsightsExtension:30`  | 
|  Ásia-Pacífico (Seul) |  `arn:aws:lambda:ap-northeast-2:580247275435:layer:LambdaInsightsExtension:48`  | 
|  Ásia-Pacífico (Singapura) |  `arn:aws:lambda:ap-southeast-1:580247275435:layer:LambdaInsightsExtension:49`  | 
|  Ásia-Pacífico (Sydney) |  `arn:aws:lambda:ap-southeast-2:580247275435:layer:LambdaInsightsExtension:49`  | 
|  Ásia-Pacífico (Tóquio) |  `arn:aws:lambda:ap-northeast-1:580247275435:layer:LambdaInsightsExtension:76`  | 
|  Canadá (Central) |  `arn:aws:lambda:ca-central-1:580247275435:layer:LambdaInsightsExtension:48`  | 
|  Oeste do Canadá (Calgary) |  `arn:aws:lambda:ca-west-1:946466191631:layer:LambdaInsightsExtension:9`  | 
|  China (Pequim) |  `arn:aws-cn:lambda:cn-north-1:488211338238:layer:LambdaInsightsExtension:39`  | 
|  China (Ningxia); |  `arn:aws-cn:lambda:cn-northwest-1:488211338238:layer:LambdaInsightsExtension:39`  | 
|  Europa (Frankfurt) |  `arn:aws:lambda:eu-central-1:580247275435:layer:LambdaInsightsExtension:49`  | 
|  Europa (Irlanda) |  `arn:aws:lambda:eu-west-1:580247275435:layer:LambdaInsightsExtension:49`  | 
|  Europa (Londres) |  `arn:aws:lambda:eu-west-2:580247275435:layer:LambdaInsightsExtension:49`  | 
|  Europa (Milão) |  `arn:aws:lambda:eu-south-1:339249233099:layer:LambdaInsightsExtension:40`  | 
|  Europe (Paris) |  `arn:aws:lambda:eu-west-3:580247275435:layer:LambdaInsightsExtension:48`  | 
|  Europa (Espanha) |  `arn:aws:lambda:eu-south-2:352183217350:layer:LambdaInsightsExtension:24`  | 
|  Europa (Estocolmo) |  `arn:aws:lambda:eu-north-1:580247275435:layer:LambdaInsightsExtension:46`  | 
|  Europa (Zurique) |  `arn:aws:lambda:eu-central-2:033019950311:layer:LambdaInsightsExtension:23`  | 
|  Israel (Tel Aviv) |  `arn:aws:lambda:il-central-1:459530977127:layer:LambdaInsightsExtension:17`  | 
|  Oriente Médio (Bahrein) |  `arn:aws:lambda:me-south-1:285320876703:layer:LambdaInsightsExtension:40`  | 
|  Oriente Médio (Emirados Árabes Unidos) |  `arn:aws:lambda:me-central-1:732604637566:layer:LambdaInsightsExtension:23`  | 
|  América do Sul (São Paulo) |  `arn:aws:lambda:sa-east-1:580247275435:layer:LambdaInsightsExtension:48`  | 

## 1.0.273.0
<a name="Lambda-Insights-extension-1.0.273.0"></a>

A versão 1.0.273.0 inclui correções de bugs importantes para todos os runtimes compatíveis e adiciona suporte para a região Oeste do Canadá (Calgary).

**ARNs para a versão 1.0.273.0**

A tabela a seguir reaciona os ARNs a serem usados para essa versão da extensão em cada região da AWS onde está disponível.


| Região | ARN | 
| --- | --- | 
|  Leste dos EUA (Norte da Virgínia) |  `arn:aws:lambda:us-east-1:580247275435:layer:LambdaInsightsExtension:45`  | 
|  Leste dos EUA (Ohio) |  `arn:aws:lambda:us-east-2:580247275435:layer:LambdaInsightsExtension:45`  | 
|  Oeste dos EUA (N. da Califórnia) |  `arn:aws:lambda:us-west-1:580247275435:layer:LambdaInsightsExtension:45`  | 
|  Oeste dos EUA (Oregon) |  `arn:aws:lambda:us-west-2:580247275435:layer:LambdaInsightsExtension:45`  | 
|  África (Cidade do Cabo) |  `arn:aws:lambda:af-south-1:012438385374:layer:LambdaInsightsExtension:35`  | 
|  Ásia-Pacífico (Hong Kong) |  `arn:aws:lambda:ap-east-1:519774774795:layer:LambdaInsightsExtension:35`  | 
|  Ásia-Pacífico (Hyderabad) |  `arn:aws:lambda:ap-south-2:891564319516:layer:LambdaInsightsExtension:17`  | 
|  Ásia-Pacífico (Jacarta) |  `arn:aws:lambda:ap-southeast-3:439286490199:layer:LambdaInsightsExtension:21`  | 
|  Ásia-Pacífico (Melbourne) |  `arn:aws:lambda:ap-southeast-4:158895979263:layer:LambdaInsightsExtension:12`  | 
|  Ásia-Pacífico (Mumbai) |  `arn:aws:lambda:ap-south-1:580247275435:layer:LambdaInsightsExtension:43`  | 
|  Ásia-Pacífico (Osaka) |  `arn:aws:lambda:ap-northeast-3:194566237122:layer:LambdaInsightsExtension:26`  | 
|  Ásia-Pacífico (Seul) |  `arn:aws:lambda:ap-northeast-2:580247275435:layer:LambdaInsightsExtension:44`  | 
|  Ásia-Pacífico (Singapura) |  `arn:aws:lambda:ap-southeast-1:580247275435:layer:LambdaInsightsExtension:45`  | 
|  Ásia-Pacífico (Sydney) |  `arn:aws:lambda:ap-southeast-2:580247275435:layer:LambdaInsightsExtension:45`  | 
|  Ásia-Pacífico (Tóquio) |  `arn:aws:lambda:ap-northeast-1:580247275435:layer:LambdaInsightsExtension:72`  | 
|  Canadá (Central) |  `arn:aws:lambda:ca-central-1:580247275435:layer:LambdaInsightsExtension:44`  | 
|  Oeste do Canadá (Calgary) |  `arn:aws:lambda:ca-west-1:946466191631:layer:LambdaInsightsExtension:4`  | 
|  China (Pequim) |  `arn:aws-cn:lambda:cn-north-1:488211338238:layer:LambdaInsightsExtension:36`  | 
|  China (Ningxia); |  `arn:aws-cn:lambda:cn-northwest-1:488211338238:layer:LambdaInsightsExtension:36`  | 
|  Europa (Frankfurt) |  `arn:aws:lambda:eu-central-1:580247275435:layer:LambdaInsightsExtension:45`  | 
|  Europa (Irlanda) |  `arn:aws:lambda:eu-west-1:580247275435:layer:LambdaInsightsExtension:45`  | 
|  Europa (Londres) |  `arn:aws:lambda:eu-west-2:580247275435:layer:LambdaInsightsExtension:45`  | 
|  Europa (Milão) |  `arn:aws:lambda:eu-south-1:339249233099:layer:LambdaInsightsExtension:35`  | 
|  Europe (Paris) |  `arn:aws:lambda:eu-west-3:580247275435:layer:LambdaInsightsExtension:44`  | 
|  Europa (Espanha) |  `arn:aws:lambda:eu-south-2:352183217350:layer:LambdaInsightsExtension:19`  | 
|  Europa (Estocolmo) |  `arn:aws:lambda:eu-north-1:580247275435:layer:LambdaInsightsExtension:42`  | 
|  Europa (Zurique) |  `arn:aws:lambda:eu-central-2:033019950311:layer:LambdaInsightsExtension:17`  | 
|  Israel (Tel Aviv) |  `arn:aws:lambda:il-central-1:459530977127:layer:LambdaInsightsExtension:12`  | 
|  Oriente Médio (Bahrein) |  `arn:aws:lambda:me-south-1:285320876703:layer:LambdaInsightsExtension:35`  | 
|  Oriente Médio (Emirados Árabes Unidos) |  `arn:aws:lambda:me-central-1:732604637566:layer:LambdaInsightsExtension:18`  | 
|  América do Sul (São Paulo) |  `arn:aws:lambda:sa-east-1:580247275435:layer:LambdaInsightsExtension:44`  | 

## 1.0.229.0
<a name="Lambda-Insights-extension-1.0.229.0"></a>

A versão 1.0.229.0 inclui correções de bugs importantes para todos os runtimes compatíveis e adiciona suporte para a região de Israel (Tel Aviv).

**ARNs para a versão 1.0.229.0**

A tabela a seguir reaciona os ARNs a serem usados para essa versão da extensão em cada região da AWS onde está disponível.


| Região | ARN | 
| --- | --- | 
|  Leste dos EUA (Norte da Virgínia) |  `arn:aws:lambda:us-east-1:580247275435:layer:LambdaInsightsExtension:38`  | 
|  Leste dos EUA (Ohio) |  `arn:aws:lambda:us-east-2:580247275435:layer:LambdaInsightsExtension:38`  | 
|  Oeste dos EUA (N. da Califórnia) |  `arn:aws:lambda:us-west-1:580247275435:layer:LambdaInsightsExtension:38`  | 
|  Oeste dos EUA (Oregon) |  `arn:aws:lambda:us-west-2:580247275435:layer:LambdaInsightsExtension:38`  | 
|  África (Cidade do Cabo) |  `arn:aws:lambda:af-south-1:012438385374:layer:LambdaInsightsExtension:28`  | 
|  Ásia-Pacífico (Hong Kong) |  `arn:aws:lambda:ap-east-1:519774774795:layer:LambdaInsightsExtension:28`  | 
|  Ásia-Pacífico (Hyderabad) |  `arn:aws:lambda:ap-south-2:891564319516:layer:LambdaInsightsExtension:10`  | 
|  Ásia-Pacífico (Jacarta) |  `arn:aws:lambda:ap-southeast-3:439286490199:layer:LambdaInsightsExtension:14`  | 
|  Ásia-Pacífico (Melbourne) |  `arn:aws:lambda:ap-southeast-4:158895979263:layer:LambdaInsightsExtension:5`  | 
|  Ásia-Pacífico (Mumbai) |  `arn:aws:lambda:ap-south-1:580247275435:layer:LambdaInsightsExtension:36`  | 
|  Ásia-Pacífico (Osaka) |  `arn:aws:lambda:ap-northeast-3:194566237122:layer:LambdaInsightsExtension:19`  | 
|  Ásia-Pacífico (Seul) |  `arn:aws:lambda:ap-northeast-2:580247275435:layer:LambdaInsightsExtension:37`  | 
|  Ásia-Pacífico (Singapura) |  `arn:aws:lambda:ap-southeast-1:580247275435:layer:LambdaInsightsExtension:38`  | 
|  Ásia-Pacífico (Sydney) |  `arn:aws:lambda:ap-southeast-2:580247275435:layer:LambdaInsightsExtension:38`  | 
|  Ásia-Pacífico (Tóquio) |  `arn:aws:lambda:ap-northeast-1:580247275435:layer:LambdaInsightsExtension:60`  | 
|  Canadá (Central) |  `arn:aws:lambda:ca-central-1:580247275435:layer:LambdaInsightsExtension:37`  | 
|  China (Pequim) |  `arn:aws-cn:lambda:cn-north-1:488211338238:layer:LambdaInsightsExtension:29`  | 
|  China (Ningxia); |  `arn:aws-cn:lambda:cn-northwest-1:488211338238:layer:LambdaInsightsExtension:29`  | 
|  Europa (Frankfurt) |  `arn:aws:lambda:eu-central-1:580247275435:layer:LambdaInsightsExtension:38`  | 
|  Europa (Irlanda) |  `arn:aws:lambda:eu-west-1:580247275435:layer:LambdaInsightsExtension:38`  | 
|  Europa (Londres) |  `arn:aws:lambda:eu-west-2:580247275435:layer:LambdaInsightsExtension:38`  | 
|  Europa (Milão) |  `arn:aws:lambda:eu-south-1:339249233099:layer:LambdaInsightsExtension:28`  | 
|  Europe (Paris) |  `arn:aws:lambda:eu-west-3:580247275435:layer:LambdaInsightsExtension:37`  | 
|  Europa (Espanha) |  `arn:aws:lambda:eu-south-2:352183217350:layer:LambdaInsightsExtension:12`  | 
|  Europa (Estocolmo) |  `arn:aws:lambda:eu-north-1:580247275435:layer:LambdaInsightsExtension:35`  | 
|  Europa (Zurique) |  `arn:aws:lambda:eu-central-2:033019950311:layer:LambdaInsightsExtension:11`  | 
|  Israel (Tel Aviv) |  `arn:aws:lambda:il-central-1:459530977127:layer:LambdaInsightsExtension:5`  | 
|  Oriente Médio (Bahrein) |  `arn:aws:lambda:me-south-1:285320876703:layer:LambdaInsightsExtension:28`  | 
|  Oriente Médio (Emirados Árabes Unidos) |  `arn:aws:lambda:me-central-1:732604637566:layer:LambdaInsightsExtension:11`  | 
|  América do Sul (São Paulo) |  `arn:aws:lambda:sa-east-1:580247275435:layer:LambdaInsightsExtension:37`  | 

## 1.0.178.0
<a name="Lambda-Insights-extension-1.0.178.0"></a>

A versão 1.0.178.0 adiciona suporte às regiões da AWS a seguir.
+ Ásia-Pacífico (Hyderabad)
+ Ásia-Pacífico (Jacarta)
+ Europa (Espanha)
+ Europa (Zurique)
+ Oriente Médio (Emirados Árabes Unidos)

**ARNs para a versão 1.0.178.0**

A tabela a seguir reaciona os ARNs a serem usados para essa versão da extensão em cada região da AWS onde está disponível.


| Região | ARN | 
| --- | --- | 
|  Leste dos EUA (Norte da Virgínia) |  `arn:aws:lambda:us-east-1:580247275435:layer:LambdaInsightsExtension:35`  | 
|  Leste dos EUA (Ohio) |  `arn:aws:lambda:us-east-2:580247275435:layer:LambdaInsightsExtension:33`  | 
|  Oeste dos EUA (N. da Califórnia) |  `arn:aws:lambda:us-west-1:580247275435:layer:LambdaInsightsExtension:33`  | 
|  Oeste dos EUA (Oregon) |  `arn:aws:lambda:us-west-2:580247275435:layer:LambdaInsightsExtension:33`  | 
|  África (Cidade do Cabo) |  `arn:aws:lambda:af-south-1:012438385374:layer:LambdaInsightsExtension:25`  | 
|  Ásia-Pacífico (Hong Kong) |  `arn:aws:lambda:ap-east-1:519774774795:layer:LambdaInsightsExtension:25`  | 
|  Ásia-Pacífico (Hyderabad) |  `arn:aws:lambda:ap-south-2:891564319516:layer:LambdaInsightsExtension:8`  | 
|  Ásia-Pacífico (Jacarta) |  `arn:aws:lambda:ap-southeast-3:439286490199:layer:LambdaInsightsExtension:11`  | 
|  Ásia-Pacífico (Mumbai) |  `arn:aws:lambda:ap-south-1:580247275435:layer:LambdaInsightsExtension:31`  | 
|  Ásia-Pacífico (Osaka) |  `arn:aws:lambda:ap-northeast-3:194566237122:layer:LambdaInsightsExtension:2`  | 
|  Ásia-Pacífico (Seul) |  `arn:aws:lambda:ap-northeast-2:580247275435:layer:LambdaInsightsExtension:32`  | 
|  Ásia-Pacífico (Singapura) |  `arn:aws:lambda:ap-southeast-1:580247275435:layer:LambdaInsightsExtension:33`  | 
|  Ásia-Pacífico (Sydney) |  `arn:aws:lambda:ap-southeast-2:580247275435:layer:LambdaInsightsExtension:33`  | 
|  Ásia-Pacífico (Tóquio) |  `arn:aws:lambda:ap-northeast-1:580247275435:layer:LambdaInsightsExtension:50`  | 
|  Canadá (Central) |  `arn:aws:lambda:ca-central-1:580247275435:layer:LambdaInsightsExtension:32`  | 
|  China (Pequim) |  `arn:aws-cn:lambda:cn-north-1:488211338238:layer:LambdaInsightsExtension:26`  | 
|  China (Ningxia); |  `arn:aws-cn:lambda:cn-northwest-1:488211338238:layer:LambdaInsightsExtension:26`  | 
|  Europa (Frankfurt) |  `arn:aws:lambda:eu-central-1:580247275435:layer:LambdaInsightsExtension:35`  | 
|  Europa (Irlanda) |  `arn:aws:lambda:eu-west-1:580247275435:layer:LambdaInsightsExtension:33`  | 
|  Europa (Londres) |  `arn:aws:lambda:eu-west-2:580247275435:layer:LambdaInsightsExtension:33`  | 
|  Europa (Milão) |  `arn:aws:lambda:eu-south-1:339249233099:layer:LambdaInsightsExtension:25`  | 
|  Europe (Paris) |  `arn:aws:lambda:eu-west-3:580247275435:layer:LambdaInsightsExtension:32`  | 
|  Europa (Espanha) |  `arn:aws:lambda:eu-south-2:352183217350:layer:LambdaInsightsExtension:10`  | 
|  Europa (Estocolmo) |  `arn:aws:lambda:eu-north-1:580247275435:layer:LambdaInsightsExtension:30`  | 
|  Europa (Zurique) |  `arn:aws:lambda:eu-central-2:033019950311:layer:LambdaInsightsExtension:7`  | 
|  Oriente Médio (Bahrein) |  `arn:aws:lambda:me-south-1:285320876703:layer:LambdaInsightsExtension:25`  | 
|  Oriente Médio (Emirados Árabes Unidos) |  `arn:aws:lambda:me-central-1:732604637566:layer:LambdaInsightsExtension:9`  | 
|  América do Sul (São Paulo) |  `arn:aws:lambda:sa-east-1:580247275435:layer:LambdaInsightsExtension:32`  | 

## 1.0.143.0
<a name="Lambda-Insights-extension-1.0.143.0"></a>

A versão 1.0.143.0 inclui correções de bugs em compatibilidade com Python 3.7 e Go 1.x. O runtime do Python 3.6 Lambda está sendo substituído. Para obter mais informações, consulte [Tempos de execução do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html).

**ARNs para a versão 1.0.143.0**

A tabela a seguir reaciona os ARNs a serem usados para essa versão da extensão em cada região da AWS onde está disponível.


| Região | ARN | 
| --- | --- | 
|  Leste dos EUA (Norte da Virgínia) |  `arn:aws:lambda:us-east-1:580247275435:layer:LambdaInsightsExtension:21`  | 
|  Leste dos EUA (Ohio) |  `arn:aws:lambda:us-east-2:580247275435:layer:LambdaInsightsExtension:21`  | 
|  Oeste dos EUA (N. da Califórnia) |  `arn:aws:lambda:us-west-1:580247275435:layer:LambdaInsightsExtension:20`  | 
|  Oeste dos EUA (Oregon) |  `arn:aws:lambda:us-west-2:580247275435:layer:LambdaInsightsExtension:21`  | 
|  África (Cidade do Cabo) |  `arn:aws:lambda:af-south-1:012438385374:layer:LambdaInsightsExtension:13`  | 
|  Ásia-Pacífico (Hong Kong) |  `arn:aws:lambda:ap-east-1:519774774795:layer:LambdaInsightsExtension:13`  | 
|  Ásia-Pacífico (Mumbai) |  `arn:aws:lambda:ap-south-1:580247275435:layer:LambdaInsightsExtension:21`  | 
|  Ásia-Pacífico (Osaka) |  `arn:aws:lambda:ap-northeast-3:194566237122:layer:LambdaInsightsExtension:2`  | 
|  Ásia-Pacífico (Seul) |  `arn:aws:lambda:ap-northeast-2:580247275435:layer:LambdaInsightsExtension:20`  | 
|  Ásia-Pacífico (Singapura) |  `arn:aws:lambda:ap-southeast-1:580247275435:layer:LambdaInsightsExtension:21`  | 
|  Ásia-Pacífico (Sydney) |  `arn:aws:lambda:ap-southeast-2:580247275435:layer:LambdaInsightsExtension:21`  | 
|  Ásia-Pacífico (Tóquio) |  `arn:aws:lambda:ap-northeast-1:580247275435:layer:LambdaInsightsExtension:32`  | 
|  Canadá (Central) |  `arn:aws:lambda:ca-central-1:580247275435:layer:LambdaInsightsExtension:20`  | 
|  China (Pequim) |  `arn:aws-cn:lambda:cn-north-1:488211338238:layer:LambdaInsightsExtension:14`  | 
|  China (Ningxia); |  `arn:aws-cn:lambda:cn-northwest-1:488211338238:layer:LambdaInsightsExtension:14`  | 
|  Europa (Frankfurt) |  `arn:aws:lambda:eu-central-1:580247275435:layer:LambdaInsightsExtension:21`  | 
|  Europa (Irlanda) |  `arn:aws:lambda:eu-west-1:580247275435:layer:LambdaInsightsExtension:21`  | 
|  Europa (Londres) |  `arn:aws:lambda:eu-west-2:580247275435:layer:LambdaInsightsExtension:21`  | 
|  Europa (Milão) |  `arn:aws:lambda:eu-south-1:339249233099:layer:LambdaInsightsExtension:13`  | 
|  Europa (Paris) |  `arn:aws:lambda:eu-west-3:580247275435:layer:LambdaInsightsExtension:20`  | 
|  Europa (Estocolmo) |  `arn:aws:lambda:eu-north-1:580247275435:layer:LambdaInsightsExtension:20`  | 
|  Oriente Médio (Bahrein) |  `arn:aws:lambda:me-south-1:285320876703:layer:LambdaInsightsExtension:13`  | 
|  South America (São Paulo) |  `arn:aws:lambda:sa-east-1:580247275435:layer:LambdaInsightsExtension:20`  | 

## 1.0.135.0
<a name="Lambda-Insights-extension-1.0.135.0"></a>

A versão 1.0.135.0 inclui correções de bugs relacionados a como o Lambda Insights coleta e relata o uso do descritor de disco e arquivo. Nas versões anteriores da extensão, a métrica `tmp_free` relatava o espaço livre máximo no diretório `/tmp`enquanto uma função era executada. Essa versão altera a métrica para relatar o valor mínimo, tornando-a mais útil ao avaliar o uso do disco. Para obter mais informações sobre cotas de armazenamento de diretórios `tmp`, consulte [Cotas do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html).

A versão 1.0.135.0 agora também relata o uso do descritor de arquivos (`fd_use` e `fd_max`) como o valor máximo entre os processos, em vez de relatar o nível do sistema operacional. 

**ARNs para a versão 1.0.135.0**

A tabela a seguir reaciona os ARNs a serem usados para essa versão da extensão em cada região da AWS onde está disponível.


| Região | ARN | 
| --- | --- | 
|  Leste dos EUA (Norte da Virgínia) |  `arn:aws:lambda:us-east-1:580247275435:layer:LambdaInsightsExtension:18`  | 
|  Leste dos EUA (Ohio) |  `arn:aws:lambda:us-east-2:580247275435:layer:LambdaInsightsExtension:18`  | 
|  Oeste dos EUA (N. da Califórnia) |  `arn:aws:lambda:us-west-1:580247275435:layer:LambdaInsightsExtension:18`  | 
|  Oeste dos EUA (Oregon) |  `arn:aws:lambda:us-west-2:580247275435:layer:LambdaInsightsExtension:18`  | 
|  África (Cidade do Cabo) |  `arn:aws:lambda:af-south-1:012438385374:layer:LambdaInsightsExtension:11`  | 
|  Ásia-Pacífico (Hong Kong) |  `arn:aws:lambda:ap-east-1:519774774795:layer:LambdaInsightsExtension:11`  | 
|  Ásia-Pacífico (Mumbai) |  `arn:aws:lambda:ap-south-1:580247275435:layer:LambdaInsightsExtension:18`  | 
|  Ásia-Pacífico (Osaka) |  `arn:aws:lambda:ap-northeast-3:194566237122:layer:LambdaInsightsExtension:1`  | 
|  Ásia-Pacífico (Seul) |  `arn:aws:lambda:ap-northeast-2:580247275435:layer:LambdaInsightsExtension:18`  | 
|  Ásia-Pacífico (Singapura) |  `arn:aws:lambda:ap-southeast-1:580247275435:layer:LambdaInsightsExtension:18`  | 
|  Ásia-Pacífico (Sydney) |  `arn:aws:lambda:ap-southeast-2:580247275435:layer:LambdaInsightsExtension:18`  | 
|  Ásia-Pacífico (Tóquio) |  `arn:aws:lambda:ap-northeast-1:580247275435:layer:LambdaInsightsExtension:25`  | 
|  Canadá (Central) |  `arn:aws:lambda:ca-central-1:580247275435:layer:LambdaInsightsExtension:18`  | 
|  China (Pequim) |  `arn:aws-cn:lambda:cn-north-1:488211338238:layer:LambdaInsightsExtension:11`  | 
|  China (Ningxia); |  `arn:aws-cn:lambda:cn-northwest-1:488211338238:layer:LambdaInsightsExtension:11`  | 
|  Europa (Frankfurt) |  `arn:aws:lambda:eu-central-1:580247275435:layer:LambdaInsightsExtension:18`  | 
|  Europa (Irlanda) |  `arn:aws:lambda:eu-west-1:580247275435:layer:LambdaInsightsExtension:18`  | 
|  Europa (Londres) |  `arn:aws:lambda:eu-west-2:580247275435:layer:LambdaInsightsExtension:18`  | 
|  Europa (Milão) |  `arn:aws:lambda:eu-south-1:339249233099:layer:LambdaInsightsExtension:11`  | 
|  Europa (Paris) |  `arn:aws:lambda:eu-west-3:580247275435:layer:LambdaInsightsExtension:18`  | 
|  Europa (Estocolmo) |  `arn:aws:lambda:eu-north-1:580247275435:layer:LambdaInsightsExtension:18`  | 
|  Oriente Médio (Bahrein) |  `arn:aws:lambda:me-south-1:285320876703:layer:LambdaInsightsExtension:11`  | 
|  South America (São Paulo) |  `arn:aws:lambda:sa-east-1:580247275435:layer:LambdaInsightsExtension:18`  | 

## 1.0.119.0
<a name="Lambda-Insights-extension-1.0.119.0"></a>

**ARNs para a versão 1.0.119.0**

A tabela a seguir reaciona os ARNs a serem usados para essa versão da extensão em cada região da AWS onde está disponível.


| Região | ARN | 
| --- | --- | 
|  Leste dos EUA (Norte da Virgínia) |  `arn:aws:lambda:us-east-1:580247275435:layer:LambdaInsightsExtension:16`  | 
|  Leste dos EUA (Ohio) |  `arn:aws:lambda:us-east-2:580247275435:layer:LambdaInsightsExtension:16`  | 
|  Oeste dos EUA (N. da Califórnia) |  `arn:aws:lambda:us-west-1:580247275435:layer:LambdaInsightsExtension:16`  | 
|  Oeste dos EUA (Oregon) |  `arn:aws:lambda:us-west-2:580247275435:layer:LambdaInsightsExtension:16`  | 
|  África (Cidade do Cabo) |  `arn:aws:lambda:af-south-1:012438385374:layer:LambdaInsightsExtension:9`  | 
|  Ásia-Pacífico (Hong Kong) |  `arn:aws:lambda:ap-east-1:519774774795:layer:LambdaInsightsExtension:9`  | 
|  Ásia-Pacífico (Mumbai) |  `arn:aws:lambda:ap-south-1:580247275435:layer:LambdaInsightsExtension:16`  | 
|  Ásia-Pacífico (Seul) |  `arn:aws:lambda:ap-northeast-2:580247275435:layer:LambdaInsightsExtension:16`  | 
|  Ásia-Pacífico (Singapura) |  `arn:aws:lambda:ap-southeast-1:580247275435:layer:LambdaInsightsExtension:16`  | 
|  Ásia-Pacífico (Sydney) |  `arn:aws:lambda:ap-southeast-2:580247275435:layer:LambdaInsightsExtension:16`  | 
|  Ásia-Pacífico (Tóquio) |  `arn:aws:lambda:ap-northeast-1:580247275435:layer:LambdaInsightsExtension:23`  | 
|  Canadá (Central) |  `arn:aws:lambda:ca-central-1:580247275435:layer:LambdaInsightsExtension:16`  | 
|  China (Pequim) |  `arn:aws-cn:lambda:cn-north-1:488211338238:layer:LambdaInsightsExtension:9`  | 
|  China (Ningxia); |  `arn:aws-cn:lambda:cn-northwest-1:488211338238:layer:LambdaInsightsExtension:9`  | 
|  Europa (Frankfurt) |  `arn:aws:lambda:eu-central-1:580247275435:layer:LambdaInsightsExtension:16`  | 
|  Europa (Irlanda) |  `arn:aws:lambda:eu-west-1:580247275435:layer:LambdaInsightsExtension:16`  | 
|  Europa (Londres) |  `arn:aws:lambda:eu-west-2:580247275435:layer:LambdaInsightsExtension:16`  | 
|  Europa (Milão) |  `arn:aws:lambda:eu-south-1:339249233099:layer:LambdaInsightsExtension:9`  | 
|  Europa (Paris) |  `arn:aws:lambda:eu-west-3:580247275435:layer:LambdaInsightsExtension:16`  | 
|  Europa (Estocolmo) |  `arn:aws:lambda:eu-north-1:580247275435:layer:LambdaInsightsExtension:16`  | 
|  Oriente Médio (Bahrein) |  `arn:aws:lambda:me-south-1:285320876703:layer:LambdaInsightsExtension:9`  | 
|  South America (São Paulo) |  `arn:aws:lambda:sa-east-1:580247275435:layer:LambdaInsightsExtension:16`  | 

## 1.0.98.0
<a name="Lambda-Insights-extension-1.0.98.0"></a>

Essa versão elimina registros desnecessários e resolve um problema com as chamadas locais da AWS Serverless Application Model CLI. Para obter mais informações sobre esse problema, consulte[Adicionar resultados do LambdaInsightsExTension em tempo limite com 'sam local invoke'](https://github.com/aws/aws-sam-cli/issues/2469).

**ARNs para a versão 1.0.98.0**

A tabela a seguir reaciona os ARNs a serem usados para essa versão da extensão em cada região da AWS onde está disponível.


| Região | ARN | 
| --- | --- | 
|  Leste dos EUA (Norte da Virgínia) |  `arn:aws:lambda:us-east-1:580247275435:layer:LambdaInsightsExtension:14`  | 
|  Leste dos EUA (Ohio) |  `arn:aws:lambda:us-east-2:580247275435:layer:LambdaInsightsExtension:14`  | 
|  Oeste dos EUA (N. da Califórnia) |  `arn:aws:lambda:us-west-1:580247275435:layer:LambdaInsightsExtension:14`  | 
|  Oeste dos EUA (Oregon) |  `arn:aws:lambda:us-west-2:580247275435:layer:LambdaInsightsExtension:14`  | 
|  África (Cidade do Cabo) |  `arn:aws:lambda:af-south-1:012438385374:layer:LambdaInsightsExtension:8`  | 
|  Ásia-Pacífico (Hong Kong) |  `arn:aws:lambda:ap-east-1:519774774795:layer:LambdaInsightsExtension:8`  | 
|  Ásia-Pacífico (Mumbai) |  `arn:aws:lambda:ap-south-1:580247275435:layer:LambdaInsightsExtension:14`  | 
|  Ásia-Pacífico (Seul) |  `arn:aws:lambda:ap-northeast-2:580247275435:layer:LambdaInsightsExtension:14`  | 
|  Ásia-Pacífico (Singapura) |  `arn:aws:lambda:ap-southeast-1:580247275435:layer:LambdaInsightsExtension:14`  | 
|  Ásia-Pacífico (Sydney) |  `arn:aws:lambda:ap-southeast-2:580247275435:layer:LambdaInsightsExtension:14`  | 
|  Ásia-Pacífico (Tóquio) |  `arn:aws:lambda:ap-northeast-1:580247275435:layer:LambdaInsightsExtension:14`  | 
|  Canadá (Central) |  `arn:aws:lambda:ca-central-1:580247275435:layer:LambdaInsightsExtension:14`  | 
|  China (Pequim) |  `arn:aws-cn:lambda:cn-north-1:488211338238:layer:LambdaInsightsExtension:8`  | 
|  China (Ningxia); |  `arn:aws-cn:lambda:cn-northwest-1:488211338238:layer:LambdaInsightsExtension:8`  | 
|  Europa (Frankfurt) |  `arn:aws:lambda:eu-central-1:580247275435:layer:LambdaInsightsExtension:14`  | 
|  Europa (Irlanda) |  `arn:aws:lambda:eu-west-1:580247275435:layer:LambdaInsightsExtension:14`  | 
|  Europa (Londres) |  `arn:aws:lambda:eu-west-2:580247275435:layer:LambdaInsightsExtension:14`  | 
|  Europa (Milão) |  `arn:aws:lambda:eu-south-1:339249233099:layer:LambdaInsightsExtension:8`  | 
|  Europa (Paris) |  `arn:aws:lambda:eu-west-3:580247275435:layer:LambdaInsightsExtension:14`  | 
|  Europa (Estocolmo) |  `arn:aws:lambda:eu-north-1:580247275435:layer:LambdaInsightsExtension:14`  | 
|  Oriente Médio (Bahrein) |  `arn:aws:lambda:me-south-1:285320876703:layer:LambdaInsightsExtension:8`  | 
|  South America (São Paulo) |  `arn:aws:lambda:sa-east-1:580247275435:layer:LambdaInsightsExtension:14`  | 

## 1.0.89.0
<a name="Lambda-Insights-extension-1.0.89.0"></a>

Essa versão corrige o carimbo de data/hora do evento de performance para representar sempre o início da chamada da função.

**ARNs para a versão 1.0.89.0**

A tabela a seguir reaciona os ARNs a serem usados para essa versão da extensão em cada região da AWS onde está disponível.


| Região | ARN | 
| --- | --- | 
|  Leste dos EUA (Norte da Virgínia) |  `arn:aws:lambda:us-east-1:580247275435:layer:LambdaInsightsExtension:12`  | 
|  Leste dos EUA (Ohio) |  `arn:aws:lambda:us-east-2:580247275435:layer:LambdaInsightsExtension:12`  | 
|  Oeste dos EUA (N. da Califórnia) |  `arn:aws:lambda:us-west-1:580247275435:layer:LambdaInsightsExtension:12`  | 
|  Oeste dos EUA (Oregon) |  `arn:aws:lambda:us-west-2:580247275435:layer:LambdaInsightsExtension:12`  | 
|  Ásia-Pacífico (Mumbai) |  `arn:aws:lambda:ap-south-1:580247275435:layer:LambdaInsightsExtension:12`  | 
|  Ásia-Pacífico (Seul) |  `arn:aws:lambda:ap-northeast-2:580247275435:layer:LambdaInsightsExtension:12`  | 
|  Ásia-Pacífico (Singapura) |  `arn:aws:lambda:ap-southeast-1:580247275435:layer:LambdaInsightsExtension:12`  | 
|  Ásia-Pacífico (Sydney) |  `arn:aws:lambda:ap-southeast-2:580247275435:layer:LambdaInsightsExtension:12`  | 
|  Ásia-Pacífico (Tóquio) |  `arn:aws:lambda:ap-northeast-1:580247275435:layer:LambdaInsightsExtension:12`  | 
|  Canadá (Central) |  `arn:aws:lambda:ca-central-1:580247275435:layer:LambdaInsightsExtension:12`  | 
|  Europa (Frankfurt) |  `arn:aws:lambda:eu-central-1:580247275435:layer:LambdaInsightsExtension:12`  | 
|  Europa (Irlanda) |  `arn:aws:lambda:eu-west-1:580247275435:layer:LambdaInsightsExtension:12`  | 
|  Europa (Londres) |  `arn:aws:lambda:eu-west-2:580247275435:layer:LambdaInsightsExtension:12`  | 
|  Europa (Paris) |  `arn:aws:lambda:eu-west-3:580247275435:layer:LambdaInsightsExtension:12`  | 
|  Europa (Estocolmo) |  `arn:aws:lambda:eu-north-1:580247275435:layer:LambdaInsightsExtension:12`  | 
|  América do Sul (São Paulo) |  `arn:aws:lambda:sa-east-1:580247275435:layer:LambdaInsightsExtension:12`  | 

## 1.0.86.0
<a name="Lambda-Insights-extension-1.0.86.0"></a>

Na versão 1.0.54.0 da extensão, as métricas de memória às vezes eram relatadas incorretamente e às vezes eram superiores a 100%. A versão 1.0.86.0 corrige o problema de medição de memória usando os mesmos dados de eventos como métricas da plataforma Lambda. Isso significa que é possível ver uma mudança dramática nos valores de métrica da memória registrada. Isso é possível com a nova API do Lambda Logs. Ela fornece uma medição mais precisa do uso de memória sandbox do Lambda. Porém, não se esqueça que a API do Lambda Logs não poderá entregar eventos de relatório de plataforma se uma sandbox de função expirar e for posteriormente girada para baixo. Nesse caso. O Lambda Insights não conseguirá gravar as métricas de invocação. Para obter mais informações sobre a API do Lambda Logs, consulte [API do AWS Lambda Logs](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-logs-api.html).

**Novos recursos na versão 1.0.86.0**
+ Usa a API do Lambda Logs para corrigir a métrica de memória. Assim, resolve o problema anterior em que as estatísticas de memória eram superiores a 100%.
+ Apresenta `Init Duration` como uma nova métrica do CloudWatch.
+ Usa o ARN de invocação para adicionar uma dimensão de **versão** para aliases e versões invocadas. Caso esteja usando aliases ou versões do Lambda para obter implantações incrementais (como implantações azul-verde), você poderá exibir suas métricas com base no alias invocado. A **versão** não será aplicada se a função não usar um alias ou uma versão. Para obter mais informações, consulte [Aliases de funções do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html).
+ Adiciona `billed_mb_ms field` aos eventos de performance para exibir o custo por invocação. Não considera nenhum custo associado à simultaneidade provisionada.
+ Adiciona os campo `billed_duration` e `duration` aos eventos de performance.

**ARNs para a versão 1.0.86.0**

A tabela a seguir reaciona os ARNs a serem usados para essa versão da extensão em cada região da AWS onde está disponível.


| Região | ARN | 
| --- | --- | 
|  Leste dos EUA (Norte da Virgínia) |  `arn:aws:lambda:us-east-1:580247275435:layer:LambdaInsightsExtension:11`  | 
|  Leste dos EUA (Ohio) |  `arn:aws:lambda:us-east-2:580247275435:layer:LambdaInsightsExtension:11`  | 
|  Oeste dos EUA (N. da Califórnia) |  `arn:aws:lambda:us-west-1:580247275435:layer:LambdaInsightsExtension:11`  | 
|  Oeste dos EUA (Oregon) |  `arn:aws:lambda:us-west-2:580247275435:layer:LambdaInsightsExtension:11`  | 
|  Ásia-Pacífico (Mumbai) |  `arn:aws:lambda:ap-south-1:580247275435:layer:LambdaInsightsExtension:11`  | 
|  Ásia-Pacífico (Seul) |  `arn:aws:lambda:ap-northeast-2:580247275435:layer:LambdaInsightsExtension:11`  | 
|  Ásia-Pacífico (Singapura) |  `arn:aws:lambda:ap-southeast-1:580247275435:layer:LambdaInsightsExtension:11`  | 
|  Ásia-Pacífico (Sydney) |  `arn:aws:lambda:ap-southeast-2:580247275435:layer:LambdaInsightsExtension:11`  | 
|  Ásia-Pacífico (Tóquio) |  `arn:aws:lambda:ap-northeast-1:580247275435:layer:LambdaInsightsExtension:11`  | 
|  Canadá (Central) |  `arn:aws:lambda:ca-central-1:580247275435:layer:LambdaInsightsExtension:11`  | 
|  Europa (Frankfurt) |  `arn:aws:lambda:eu-central-1:580247275435:layer:LambdaInsightsExtension:11`  | 
|  Europa (Irlanda) |  `arn:aws:lambda:eu-west-1:580247275435:layer:LambdaInsightsExtension:11`  | 
|  Europa (Londres) |  `arn:aws:lambda:eu-west-2:580247275435:layer:LambdaInsightsExtension:11`  | 
|  Europa (Paris) |  `arn:aws:lambda:eu-west-3:580247275435:layer:LambdaInsightsExtension:11`  | 
|  Europa (Estocolmo) |  `arn:aws:lambda:eu-north-1:580247275435:layer:LambdaInsightsExtension:11`  | 
|  América do Sul (São Paulo) |  `arn:aws:lambda:sa-east-1:580247275435:layer:LambdaInsightsExtension:11`  | 

## 1.0.54.0
<a name="Lambda-Insights-extension-1.0.54.0"></a>

A versão 1.0.54.0 foi a versão inicial da extensão do Lambda Insights.

**ARNs para a versão 1.0.54.0**

A tabela a seguir reaciona os ARNs a serem usados para essa versão da extensão em cada região da AWS onde está disponível.


| Região | ARN | 
| --- | --- | 
|  Leste dos EUA (Norte da Virgínia) |  `arn:aws:lambda:us-east-1:580247275435:layer:LambdaInsightsExtension:2`  | 
|  Leste dos EUA (Ohio) |  `arn:aws:lambda:us-east-2:580247275435:layer:LambdaInsightsExtension:2`  | 
|  Oeste dos EUA (N. da Califórnia) |  `arn:aws:lambda:us-west-1:580247275435:layer:LambdaInsightsExtension:2`  | 
|  Oeste dos EUA (Oregon) |  `arn:aws:lambda:us-west-2:580247275435:layer:LambdaInsightsExtension:2`  | 
|  Ásia-Pacífico (Mumbai) |  `arn:aws:lambda:ap-south-1:580247275435:layer:LambdaInsightsExtension:2`  | 
|  Ásia-Pacífico (Seul) |  `arn:aws:lambda:ap-northeast-2:580247275435:layer:LambdaInsightsExtension:2`  | 
|  Ásia-Pacífico (Singapura) |  `arn:aws:lambda:ap-southeast-1:580247275435:layer:LambdaInsightsExtension:2`  | 
|  Ásia-Pacífico (Sydney) |  `arn:aws:lambda:ap-southeast-2:580247275435:layer:LambdaInsightsExtension:2`  | 
|  Ásia-Pacífico (Tóquio) |  `arn:aws:lambda:ap-northeast-1:580247275435:layer:LambdaInsightsExtension:2`  | 
|  Canadá (Central) |  `arn:aws:lambda:ca-central-1:580247275435:layer:LambdaInsightsExtension:2`  | 
|  Europa (Frankfurt) |  `arn:aws:lambda:eu-central-1:580247275435:layer:LambdaInsightsExtension:2`  | 
|  Europa (Irlanda) |  `arn:aws:lambda:eu-west-1:580247275435:layer:LambdaInsightsExtension:2`  | 
|  Europa (Londres) |  `arn:aws:lambda:eu-west-2:580247275435:layer:LambdaInsightsExtension:2`  | 
|  Europa (Paris) |  `arn:aws:lambda:eu-west-3:580247275435:layer:LambdaInsightsExtension:2`  | 
|  Europa (Estocolmo) |  `arn:aws:lambda:eu-north-1:580247275435:layer:LambdaInsightsExtension:2`  | 
|  América do Sul (São Paulo) |  `arn:aws:lambda:sa-east-1:580247275435:layer:LambdaInsightsExtension:2`  | 

# Plataformas ARM64
<a name="Lambda-Insights-extension-versionsARM"></a>

Esta seção relaciona as versões da extensão do Lambda Insights para ARM64 e os ARNs a serem usados para essas extensões em cada região da AWS.

**Importante**  
As extensões do Lambda Insights na versão 1.0.317.0 e em versões posteriores não são compatíveis com o Amazon Linux 1.

## 1,0.660.0
<a name="Lambda-Insights-extension-ARM-1.0.660.0"></a>

A versão 1.0.660.0 é compatível com a extensão Lambda Insights para funções do Lambda executadas em instâncias gerenciadas do Lambda. Para funções executadas em instâncias gerenciadas do Lambda, a extensão enviará um evento de log EMF uma vez por minuto, criando 12 métricas do CloudWatch com granularidade de um minuto.


| Região | ARN | 
| --- | --- | 
|  Leste dos EUA (Norte da Virgínia) |  `arn:aws:lambda:us-east-1:580247275435:layer:LambdaInsightsExtension-Arm64:31`  | 
|  Leste dos EUA (Ohio) |  `arn:aws:lambda:us-east-2:580247275435:layer:LambdaInsightsExtension-Arm64:33`  | 
|  Oeste dos EUA (N. da Califórnia) |  `arn:aws:lambda:us-west-1:580247275435:layer:LambdaInsightsExtension-Arm64:29`  | 
|  Oeste dos EUA (Oregon) |  `arn:aws:lambda:us-west-2:580247275435:layer:LambdaInsightsExtension-Arm64:31`  | 
|  África (Cidade do Cabo) |  `arn:aws:lambda:af-south-1:012438385374:layer:LambdaInsightsExtension-Arm64:30`  | 
|  Ásia-Pacífico (Hong Kong) |  `arn:aws:lambda:ap-east-1:519774774795:layer:LambdaInsightsExtension-Arm64:30`  | 
|  Ásia-Pacífico (Hyderabad) |  `arn:aws:lambda:ap-south-2:891564319516:layer:LambdaInsightsExtension-Arm64:18`  | 
|  Ásia-Pacífico (Jacarta) |  `arn:aws:lambda:ap-southeast-3:439286490199:layer:LambdaInsightsExtension-Arm64:30`  | 
|  Ásia-Pacífico (Malásia) |  `arn:aws:lambda:ap-southeast-5:590183865173:layer:LambdaInsightsExtension-Arm64:7`  | 
|  Ásia-Pacífico (Melbourne) |  `arn:aws:lambda:ap-southeast-4:158895979263:layer:LambdaInsightsExtension-Arm64:7`  | 
|  Ásia-Pacífico (Mumbai) |  `arn:aws:lambda:ap-south-1:580247275435:layer:LambdaInsightsExtension-Arm64:33`  | 
|  Ásia-Pacífico (Nova Zelândia) |  `arn:aws:lambda:ap-southeast-6:727646510379:layer:LambdaInsightsExtension-Arm64:165`  | 
|  Ásia-Pacífico (Osaka) |  `arn:aws:lambda:ap-northeast-3:194566237122:layer:LambdaInsightsExtension-Arm64:28`  | 
|  Ásia-Pacífico (Seul) |  `arn:aws:lambda:ap-northeast-2:580247275435:layer:LambdaInsightsExtension-Arm64:30`  | 
|  Ásia-Pacífico (Singapura) |  `arn:aws:lambda:ap-southeast-1:580247275435:layer:LambdaInsightsExtension-Arm64:31`  | 
|  Ásia-Pacífico (Sydney) |  `arn:aws:lambda:ap-southeast-2:580247275435:layer:LambdaInsightsExtension-Arm64:31`  | 
|  Ásia-Pacífico (Taipei) |  `arn:aws:lambda:ap-east-2:145023102084:layer:LambdaInsightsExtension-Arm64:7`  | 
|  Ásia-Pacífico (Tailândia) |  `arn:aws:lambda:ap-southeast-7:761018874580:layer:LambdaInsightsExtension-Arm64:7`  | 
|  Ásia-Pacífico (Tóquio) |  `arn:aws:lambda:ap-northeast-1:580247275435:layer:LambdaInsightsExtension-Arm64:42`  | 
|  Canadá (Central) |  `arn:aws:lambda:ca-central-1:580247275435:layer:LambdaInsightsExtension-Arm64:29`  | 
|  Oeste do Canadá (Calgary) |  `arn:aws:lambda:ca-west-1:946466191631:layer:LambdaInsightsExtension-Arm64:7`  | 
|  China (Pequim) |  `arn:aws-cn:lambda:cn-north-1:488211338238:layer:LambdaInsightsExtension-Arm64:4`  | 
|  China (Ningxia) |  `arn:aws-cn:lambda:cn-northwest-1:488211338238:layer:LambdaInsightsExtension-Arm64:4`  | 
|  Europa (Frankfurt) |  `arn:aws:lambda:eu-central-1:580247275435:layer:LambdaInsightsExtension-Arm64:31`  | 
|  Europa (Irlanda) |  `arn:aws:lambda:eu-west-1:580247275435:layer:LambdaInsightsExtension-Arm64:31`  | 
|  Europa (Londres) |  `arn:aws:lambda:eu-west-2:580247275435:layer:LambdaInsightsExtension-Arm64:31`  | 
|  Europa (Milão) |  `arn:aws:lambda:eu-south-1:339249233099:layer:LambdaInsightsExtension-Arm64:30`  | 
|  Europe (Paris) |  `arn:aws:lambda:eu-west-3:580247275435:layer:LambdaInsightsExtension-Arm64:29`  | 
|  Europa (Espanha) |  `arn:aws:lambda:eu-south-2:352183217350:layer:LambdaInsightsExtension-Arm64:18`  | 
|  Europa (Estocolmo) |  `arn:aws:lambda:eu-north-1:580247275435:layer:LambdaInsightsExtension-Arm64:29`  | 
|  Europa (Zurique) |  `arn:aws:lambda:eu-central-2:033019950311:layer:LambdaInsightsExtension-Arm64:7`  | 
|  Israel (Tel Aviv) |  `arn:aws:lambda:il-central-1:459530977127:layer:LambdaInsightsExtension-Arm64:7`  | 
|  México (Centro) |  `arn:aws:lambda:mx-central-1:879381266642:layer:LambdaInsightsExtension-Arm64:7`  | 
|  Oriente Médio (Bahrein) |  `arn:aws:lambda:me-south-1:285320876703:layer:LambdaInsightsExtension-Arm64:30`  | 
|  Oriente Médio (Emirados Árabes Unidos) |  `arn:aws:lambda:me-central-1:732604637566:layer:LambdaInsightsExtension-Arm64:7`  | 
|  América do Sul (São Paulo) |  `arn:aws:lambda:sa-east-1:580247275435:layer:LambdaInsightsExtension-Arm64:29`  | 
|  AWS GovCloud (Leste dos EUA) |  `arn:aws-us-gov:lambda:us-gov-east-1:122132214140:layer:LambdaInsightsExtension-Arm64:6`  | 
|  AWS GovCloud (Oeste dos EUA) |  `arn:aws-us-gov:lambda:us-gov-west-1:751350123760:layer:LambdaInsightsExtension-Arm64:6`  | 

## 1.0.498.0
<a name="Lambda-Insights-extension-ARM-1.0.498.0"></a>

A versão 1.0.498.0 inclui. correções de bugs e melhorias na performance.


| Região | ARN | 
| --- | --- | 
|  Leste dos EUA (Norte da Virgínia) |  `arn:aws:lambda:us-east-1:580247275435:layer:LambdaInsightsExtension-Arm64:27`  | 
|  Leste dos EUA (Ohio) |  `arn:aws:lambda:us-east-2:580247275435:layer:LambdaInsightsExtension-Arm64:29`  | 
|  Oeste dos EUA (N. da Califórnia) |  `arn:aws:lambda:us-west-1:580247275435:layer:LambdaInsightsExtension-Arm64:25`  | 
|  Oeste dos EUA (Oregon) |  `arn:aws:lambda:us-west-2:580247275435:layer:LambdaInsightsExtension-Arm64:27`  | 
|  África (Cidade do Cabo) |  `arn:aws:lambda:af-south-1:012438385374:layer:LambdaInsightsExtension-Arm64:26`  | 
|  Ásia-Pacífico (Hong Kong) |  `arn:aws:lambda:ap-east-1:519774774795:layer:LambdaInsightsExtension-Arm64:26`  | 
|  Asia Pacific (Mumbai) |  `arn:aws:lambda:ap-south-1:580247275435:layer:LambdaInsightsExtension-Arm64:29`  | 
|  Ásia-Pacífico (Hyderabad) |  `arn:aws:lambda:ap-south-2:891564319516:layer:LambdaInsightsExtension-Arm64:14`  | 
|  Ásia-Pacífico (Singapura) |  `arn:aws:lambda:ap-southeast-1:580247275435:layer:LambdaInsightsExtension-Arm64:27`  | 
|  Ásia-Pacífico (Sydney) |  `arn:aws:lambda:ap-southeast-2:580247275435:layer:LambdaInsightsExtension-Arm64:27`  | 
|  Ásia-Pacífico (Jacarta) |  `arn:aws:lambda:ap-southeast-3:439286490199:layer:LambdaInsightsExtension-Arm64:26`  | 
|  Ásia-Pacífico (Melbourne) |  `arn:aws:lambda:ap-southeast-4:158895979263:layer:LambdaInsightsExtension-Arm64:3`  | 
|  Ásia-Pacífico (Malásia) |  `arn:aws:lambda:ap-southeast-5:590183865173:layer:LambdaInsightsExtension-Arm64:3`  | 
|  Ásia-Pacífico (Tailândia) |  `arn:aws:lambda:ap-southeast-7:761018874580:layer:LambdaInsightsExtension-Arm64:2`  | 
|  Ásia-Pacífico (Tóquio) |  `arn:aws:lambda:ap-northeast-1:580247275435:layer:LambdaInsightsExtension-Arm64:38`  | 
|  Ásia-Pacífico (Seul) |  `arn:aws:lambda:ap-northeast-2:580247275435:layer:LambdaInsightsExtension-Arm64:26`  | 
|  Asia Pacific (Osaka) |  `arn:aws:lambda:ap-northeast-3:194566237122:layer:LambdaInsightsExtension-Arm64:24`  | 
|  Canadá (Central) |  `arn:aws:lambda:ca-central-1:580247275435:layer:LambdaInsightsExtension-Arm64:25`  | 
|  Oeste do Canadá (Calgary) |  `arn:aws:lambda:ca-west-1:946466191631:layer:LambdaInsightsExtension-Arm64:3`  | 
|  Europa (Frankfurt) |  `arn:aws:lambda:eu-central-1:580247275435:layer:LambdaInsightsExtension-Arm64:27`  | 
|  Europa (Zurique) |  `arn:aws:lambda:eu-central-2:033019950311:layer:LambdaInsightsExtension-Arm64:3`  | 
|  Europa (Irlanda) |  `arn:aws:lambda:eu-west-1:580247275435:layer:LambdaInsightsExtension-Arm64:27`  | 
|  Europa (Londres) |  `arn:aws:lambda:eu-west-2:580247275435:layer:LambdaInsightsExtension-Arm64:27`  | 
|  Europa (Paris) |  `arn:aws:lambda:eu-west-3:580247275435:layer:LambdaInsightsExtension-Arm64:25`  | 
|  Europa (Estocolmo) |  `arn:aws:lambda:eu-north-1:580247275435:layer:LambdaInsightsExtension-Arm64:25`  | 
|  Europa (Milão) |  `arn:aws:lambda:eu-south-1:339249233099:layer:LambdaInsightsExtension-Arm64:26`  | 
|  Europa (Espanha) |  `arn:aws:lambda:eu-south-2:352183217350:layer:LambdaInsightsExtension-Arm64:14`  | 
|  Israel (Tel Aviv) |  `arn:aws:lambda:il-central-1:459530977127:layer:LambdaInsightsExtension-Arm64:3`  | 
|  México (Centro) |  `arn:aws:lambda:mx-central-1:879381266642:layer:LambdaInsightsExtension-Arm64:2`  | 
|  Oriente Médio (Bahrein) |  `arn:aws:lambda:me-south-1:285320876703:layer:LambdaInsightsExtension-Arm64:26`  | 
|  Oriente Médio (Emirados Árabes Unidos) |  `arn:aws:lambda:me-central-1:732604637566:layer:LambdaInsightsExtension-Arm64:3`  | 
|  América do Sul (São Paulo) |  `arn:aws:lambda:sa-east-1:580247275435:layer:LambdaInsightsExtension-Arm64:25`  | 
|  China (Pequim) |  `arn:aws-cn:lambda:cn-north-1:488211338238:layer:LambdaInsightsExtension-Arm64:1`  | 
|  China (Ningxia) |  `arn:aws-cn:lambda:cn-northwest-1:488211338238:layer:LambdaInsightsExtension-Arm64:1`  | 
|  AWS GovCloud (Leste dos EUA) |  `arn:aws-us-gov:lambda:us-gov-east-1:122132214140:layer:LambdaInsightsExtension-Arm64:6`  | 
|  AWS GovCloud (Oeste dos EUA) |  `arn:aws-us-gov:lambda:us-gov-west-1:751350123760:layer:LambdaInsightsExtension-Arm64:6`  | 

## 1.0.404.0
<a name="Lambda-Insights-extension-ARM-1.0.404.0"></a>

A versão 1.0.404.0 reduz o tamanho binário da extensão do Lambda Insights de \$19 MB para \$15 MB e, subsequentemente, reduz o tamanho do zip da camada de extensão do Lambda Insights de \$13,7 MB para \$12,5 MB. Ela também reduz o consumo geral de memória do agente de \$111 MB para \$17 MB.


| Região | ARN | 
| --- | --- | 
|  Leste dos EUA (Norte da Virgínia) |  `arn:aws:lambda:us-east-1:580247275435:layer:LambdaInsightsExtension-Arm64:23`  | 
|  Leste dos EUA (Ohio) |  `arn:aws:lambda:us-east-2:580247275435:layer:LambdaInsightsExtension-Arm64:25`  | 
|  Oeste dos EUA (N. da Califórnia) |  `arn:aws:lambda:us-west-1:580247275435:layer:LambdaInsightsExtension-Arm64:21`  | 
|  Oeste dos EUA (Oregon) |  `arn:aws:lambda:us-west-2:580247275435:layer:LambdaInsightsExtension-Arm64:23`  | 
|  África (Cidade do Cabo) |  `arn:aws:lambda:af-south-1:012438385374:layer:LambdaInsightsExtension-Arm64:21`  | 
|  Ásia-Pacífico (Hong Kong) |  `arn:aws:lambda:ap-east-1:519774774795:layer:LambdaInsightsExtension-Arm64:21`  | 
|  Ásia-Pacífico (Hyderabad) |  `arn:aws:lambda:ap-south-2:891564319516:layer:LambdaInsightsExtension-Arm64:9`  | 
|  Ásia-Pacífico (Jacarta) |  `arn:aws:lambda:ap-southeast-3:439286490199:layer:LambdaInsightsExtension-Arm64:21`  | 
|  Ásia-Pacífico (Mumbai) |  `arn:aws:lambda:ap-south-1:580247275435:layer:LambdaInsightsExtension-Arm64:25`  | 
|  Ásia-Pacífico (Osaka) |  `arn:aws:lambda:ap-northeast-3:194566237122:layer:LambdaInsightsExtension-Arm64:20`  | 
|  Ásia-Pacífico (Seul) |  `arn:aws:lambda:ap-northeast-2:580247275435:layer:LambdaInsightsExtension-Arm64:22`  | 
|  Ásia-Pacífico (Singapura) |  `arn:aws:lambda:ap-southeast-1:580247275435:layer:LambdaInsightsExtension-Arm64:23`  | 
|  Ásia-Pacífico (Sydney) |  `arn:aws:lambda:ap-southeast-2:580247275435:layer:LambdaInsightsExtension-Arm64:23`  | 
|  Ásia-Pacífico (Tóquio) |  `arn:aws:lambda:ap-northeast-1:580247275435:layer:LambdaInsightsExtension-Arm64:34`  | 
|  Canadá (Central) |  `arn:aws:lambda:ca-central-1:580247275435:layer:LambdaInsightsExtension-Arm64:21`  | 
|  Europa (Frankfurt) |  `arn:aws:lambda:eu-central-1:580247275435:layer:LambdaInsightsExtension-Arm64:23`  | 
|  Europa (Irlanda) |  `arn:aws:lambda:eu-west-1:580247275435:layer:LambdaInsightsExtension-Arm64:23`  | 
|  Europa (Londres) |  `arn:aws:lambda:eu-west-2:580247275435:layer:LambdaInsightsExtension-Arm64:23`  | 
|  Europa (Milão) |  `arn:aws:lambda:eu-south-1:339249233099:layer:LambdaInsightsExtension-Arm64:21`  | 
|  Europe (Paris) |  `arn:aws:lambda:eu-west-3:580247275435:layer:LambdaInsightsExtension-Arm64:21`  | 
|  Europa (Espanha) |  `arn:aws:lambda:eu-south-2:352183217350:layer:LambdaInsightsExtension-Arm64:9`  | 
|  Europe (Stockholm) |  `arn:aws:lambda:eu-north-1:580247275435:layer:LambdaInsightsExtension-Arm64:21`  | 
|  Oriente Médio (Bahrein) |  `arn:aws:lambda:me-south-1:285320876703:layer:LambdaInsightsExtension-Arm64:21`  | 
|  South America (São Paulo) |  `arn:aws:lambda:sa-east-1:580247275435:layer:LambdaInsightsExtension-Arm64:21`  | 
|  AWS GovCloud (Leste dos EUA) |  `arn:aws-us-gov:lambda:us-gov-east-1:122132214140:layer:LambdaInsightsExtension-Arm64:6`  | 
|  AWS GovCloud (Oeste dos EUA) |  `arn:aws-us-gov:lambda:us-gov-west-1:751350123760:layer:LambdaInsightsExtension-Arm64:6`  | 

## 1.0.391.0
<a name="Lambda-Insights-extension-ARM-1.0.391.0"></a>

**Importante**  
A versão 1.0.391.0 altera a forma como o Lambda Insights coleta e relata o uso de threads. Nas versões anteriores da extensão, a métrica `threads_max` relatava o número máximo de threads em execução no processo com o ID de processo 1. A partir da versão 1.0.391.0, essa métrica relata o número máximo de threads que estavam em execução em qualquer ponto do tempo durante a execução da função, em todos os processos no ambiente de execução. Isso inclui os processos da função do Lambda, os processos das extensões, os processos específicos do sistema/runtime e assim por diante. Isso torna a métrica `threads_max` mais abrangente ao avaliar os threads restantes deixados para seu uso. Para obter mais informações sobre cotas de threads e processos, consulte [Cotas do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html).


| Região | ARN | 
| --- | --- | 
|  Leste dos EUA (Norte da Virgínia) |  `arn:aws:lambda:us-east-1:580247275435:layer:LambdaInsightsExtension-Arm64:22`  | 
|  Leste dos EUA (Ohio) |  `arn:aws:lambda:us-east-2:580247275435:layer:LambdaInsightsExtension-Arm64:24`  | 
|  Oeste dos EUA (N. da Califórnia) |  `arn:aws:lambda:us-west-1:580247275435:layer:LambdaInsightsExtension-Arm64:20`  | 
|  Oeste dos EUA (Oregon) |  `arn:aws:lambda:us-west-2:580247275435:layer:LambdaInsightsExtension-Arm64:22`  | 
|  África (Cidade do Cabo) |  `arn:aws:lambda:af-south-1:012438385374:layer:LambdaInsightsExtension-Arm64:20`  | 
|  Ásia-Pacífico (Hong Kong) |  `arn:aws:lambda:ap-east-1:519774774795:layer:LambdaInsightsExtension-Arm64:20`  | 
|  Ásia-Pacífico (Hyderabad) |  `arn:aws:lambda:ap-south-2:891564319516:layer:LambdaInsightsExtension-Arm64:8`  | 
|  Ásia-Pacífico (Jacarta) |  `arn:aws:lambda:ap-southeast-3:439286490199:layer:LambdaInsightsExtension-Arm64:20`  | 
|  Ásia-Pacífico (Mumbai) |  `arn:aws:lambda:ap-south-1:580247275435:layer:LambdaInsightsExtension-Arm64:24`  | 
|  Ásia-Pacífico (Osaka) |  `arn:aws:lambda:ap-northeast-3:194566237122:layer:LambdaInsightsExtension-Arm64:19`  | 
|  Ásia-Pacífico (Seul) |  `arn:aws:lambda:ap-northeast-2:580247275435:layer:LambdaInsightsExtension-Arm64:21`  | 
|  Ásia-Pacífico (Singapura) |  `arn:aws:lambda:ap-southeast-1:580247275435:layer:LambdaInsightsExtension-Arm64:22`  | 
|  Ásia-Pacífico (Sydney) |  `arn:aws:lambda:ap-southeast-2:580247275435:layer:LambdaInsightsExtension-Arm64:22`  | 
|  Ásia-Pacífico (Tóquio) |  `arn:aws:lambda:ap-northeast-1:580247275435:layer:LambdaInsightsExtension-Arm64:33`  | 
|  Canadá (Central) |  `arn:aws:lambda:ca-central-1:580247275435:layer:LambdaInsightsExtension-Arm64:20`  | 
|  Europa (Frankfurt) |  `arn:aws:lambda:eu-central-1:580247275435:layer:LambdaInsightsExtension-Arm64:22`  | 
|  Europa (Irlanda) |  `arn:aws:lambda:eu-west-1:580247275435:layer:LambdaInsightsExtension-Arm64:22`  | 
|  Europa (Londres) |  `arn:aws:lambda:eu-west-2:580247275435:layer:LambdaInsightsExtension-Arm64:22`  | 
|  Europa (Milão) |  `arn:aws:lambda:eu-south-1:339249233099:layer:LambdaInsightsExtension-Arm64:20`  | 
|  Europe (Paris) |  `arn:aws:lambda:eu-west-3:580247275435:layer:LambdaInsightsExtension-Arm64:20`  | 
|  Europa (Espanha) |  `arn:aws:lambda:eu-south-2:352183217350:layer:LambdaInsightsExtension-Arm64:8`  | 
|  Europe (Stockholm) |  `arn:aws:lambda:eu-north-1:580247275435:layer:LambdaInsightsExtension-Arm64:20`  | 
|  Oriente Médio (Bahrein) |  `arn:aws:lambda:me-south-1:285320876703:layer:LambdaInsightsExtension-Arm64:20`  | 
|  South America (São Paulo) |  `arn:aws:lambda:sa-east-1:580247275435:layer:LambdaInsightsExtension-Arm64:20`  | 
|  AWS GovCloud (Leste dos EUA) |  `arn:aws-us-gov:lambda:us-gov-east-1:122132214140:layer:LambdaInsightsExtension-Arm64:5`  | 
|  AWS GovCloud (Oeste dos EUA) |  `arn:aws-us-gov:lambda:us-gov-west-1:751350123760:layer:LambdaInsightsExtension-Arm64:5`  | 

## 1.0.333.0
<a name="Lambda-Insights-extension-ARM-1.0.333.0"></a>

A versão 1.0.333.0 inclui correções de bugs.


| Região | ARN | 
| --- | --- | 
|  Leste dos EUA (Norte da Virgínia) |  `arn:aws:lambda:us-east-1:580247275435:layer:LambdaInsightsExtension-Arm64:20`  | 
|  Leste dos EUA (Ohio) |  `arn:aws:lambda:us-east-2:580247275435:layer:LambdaInsightsExtension-Arm64:22`  | 
|  Oeste dos EUA (N. da Califórnia) |  `arn:aws:lambda:us-west-1:580247275435:layer:LambdaInsightsExtension-Arm64:18`  | 
|  Oeste dos EUA (Oregon) |  `arn:aws:lambda:us-west-2:580247275435:layer:LambdaInsightsExtension-Arm64:20`  | 
|  África (Cidade do Cabo) |  `arn:aws:lambda:af-south-1:012438385374:layer:LambdaInsightsExtension-Arm64:18`  | 
|  Ásia-Pacífico (Hong Kong) |  `arn:aws:lambda:ap-east-1:519774774795:layer:LambdaInsightsExtension-Arm64:18`  | 
|  Ásia-Pacífico (Hyderabad) |  `arn:aws:lambda:ap-south-2:891564319516:layer:LambdaInsightsExtension-Arm64:6`  | 
|  Ásia-Pacífico (Jacarta) |  `arn:aws:lambda:ap-southeast-3:439286490199:layer:LambdaInsightsExtension-Arm64:18`  | 
|  Ásia-Pacífico (Mumbai) |  `arn:aws:lambda:ap-south-1:580247275435:layer:LambdaInsightsExtension-Arm64:22`  | 
|  Ásia-Pacífico (Osaka) |  `arn:aws:lambda:ap-northeast-3:194566237122:layer:LambdaInsightsExtension-Arm64:17`  | 
|  Ásia-Pacífico (Seul) |  `arn:aws:lambda:ap-northeast-2:580247275435:layer:LambdaInsightsExtension-Arm64:19`  | 
|  Ásia-Pacífico (Singapura) |  `arn:aws:lambda:ap-southeast-1:580247275435:layer:LambdaInsightsExtension-Arm64:20`  | 
|  Ásia-Pacífico (Sydney) |  `arn:aws:lambda:ap-southeast-2:580247275435:layer:LambdaInsightsExtension-Arm64:20`  | 
|  Ásia-Pacífico (Tóquio) |  `arn:aws:lambda:ap-northeast-1:580247275435:layer:LambdaInsightsExtension-Arm64:31`  | 
|  Canadá (Central) |  `arn:aws:lambda:ca-central-1:580247275435:layer:LambdaInsightsExtension-Arm64:18`  | 
|  Europa (Frankfurt) |  `arn:aws:lambda:eu-central-1:580247275435:layer:LambdaInsightsExtension-Arm64:20`  | 
|  Europa (Irlanda) |  `arn:aws:lambda:eu-west-1:580247275435:layer:LambdaInsightsExtension-Arm64:20`  | 
|  Europa (Londres) |  `arn:aws:lambda:eu-west-2:580247275435:layer:LambdaInsightsExtension-Arm64:20`  | 
|  Europa (Milão) |  `arn:aws:lambda:eu-south-1:339249233099:layer:LambdaInsightsExtension-Arm64:18`  | 
|  Europe (Paris) |  `arn:aws:lambda:eu-west-3:580247275435:layer:LambdaInsightsExtension-Arm64:18`  | 
|  Europa (Espanha) |  `arn:aws:lambda:eu-south-2:352183217350:layer:LambdaInsightsExtension-Arm64:6`  | 
|  Europe (Stockholm) |  `arn:aws:lambda:eu-north-1:580247275435:layer:LambdaInsightsExtension-Arm64:18`  | 
|  Oriente Médio (Bahrein) |  `arn:aws:lambda:me-south-1:285320876703:layer:LambdaInsightsExtension-Arm64:18`  | 
|  South America (São Paulo) |  `arn:aws:lambda:sa-east-1:580247275435:layer:LambdaInsightsExtension-Arm64:18`  | 
|  AWS GovCloud (Leste dos EUA) |  `arn:aws-us-gov:lambda:us-gov-east-1:122132214140:layer:LambdaInsightsExtension-Arm64:3`  | 
|  AWS GovCloud (Oeste dos EUA) |  `arn:aws-us-gov:lambda:us-gov-west-1:751350123760:layer:LambdaInsightsExtension-Arm64:3`  | 

## 1.0.317.0
<a name="Lambda-Insights-extension-ARM-1.0.317.0"></a>

A versão 1.0.317.0 inclui a remoção do suporte para a plataforma Amazon Linux 1 e correções de bugs. Além disso, há a inclusão de suporte para regiões AWS GovCloud (US).


| Região | ARN | 
| --- | --- | 
|  Leste dos EUA (Norte da Virgínia) |  `arn:aws:lambda:us-east-1:580247275435:layer:LambdaInsightsExtension-Arm64:19`  | 
|  Leste dos EUA (Ohio) |  `arn:aws:lambda:us-east-2:580247275435:layer:LambdaInsightsExtension-Arm64:21`  | 
|  Oeste dos EUA (N. da Califórnia) |  `arn:aws:lambda:us-west-1:580247275435:layer:LambdaInsightsExtension-Arm64:17`  | 
|  Oeste dos EUA (Oregon) |  `arn:aws:lambda:us-west-2:580247275435:layer:LambdaInsightsExtension-Arm64:19`  | 
|  África (Cidade do Cabo) |  `arn:aws:lambda:af-south-1:012438385374:layer:LambdaInsightsExtension-Arm64:17`  | 
|  Ásia-Pacífico (Hong Kong) |  `arn:aws:lambda:ap-east-1:519774774795:layer:LambdaInsightsExtension-Arm64:17`  | 
|  Ásia-Pacífico (Hyderabad) |  `arn:aws:lambda:ap-south-2:891564319516:layer:LambdaInsightsExtension-Arm64:5`  | 
|  Ásia-Pacífico (Jacarta) |  `arn:aws:lambda:ap-southeast-3:439286490199:layer:LambdaInsightsExtension-Arm64:17`  | 
|  Ásia-Pacífico (Mumbai) |  `arn:aws:lambda:ap-south-1:580247275435:layer:LambdaInsightsExtension-Arm64:21`  | 
|  Ásia-Pacífico (Osaka) |  `arn:aws:lambda:ap-northeast-3:194566237122:layer:LambdaInsightsExtension-Arm64:16`  | 
|  Ásia-Pacífico (Seul) |  `arn:aws:lambda:ap-northeast-2:580247275435:layer:LambdaInsightsExtension-Arm64:18`  | 
|  Ásia-Pacífico (Singapura) |  `arn:aws:lambda:ap-southeast-1:580247275435:layer:LambdaInsightsExtension-Arm64:19`  | 
|  Ásia-Pacífico (Sydney) |  `arn:aws:lambda:ap-southeast-2:580247275435:layer:LambdaInsightsExtension-Arm64:19`  | 
|  Ásia-Pacífico (Tóquio) |  `arn:aws:lambda:ap-northeast-1:580247275435:layer:LambdaInsightsExtension-Arm64:30`  | 
|  Canadá (Central) |  `arn:aws:lambda:ca-central-1:580247275435:layer:LambdaInsightsExtension-Arm64:17`  | 
|  Europa (Frankfurt) |  `arn:aws:lambda:eu-central-1:580247275435:layer:LambdaInsightsExtension-Arm64:19`  | 
|  Europa (Irlanda) |  `arn:aws:lambda:eu-west-1:580247275435:layer:LambdaInsightsExtension-Arm64:19`  | 
|  Europa (Londres) |  `arn:aws:lambda:eu-west-2:580247275435:layer:LambdaInsightsExtension-Arm64:19`  | 
|  Europa (Milão) |  `arn:aws:lambda:eu-south-1:339249233099:layer:LambdaInsightsExtension-Arm64:17`  | 
|  Europe (Paris) |  `arn:aws:lambda:eu-west-3:580247275435:layer:LambdaInsightsExtension-Arm64:17`  | 
|  Europa (Espanha) |  `arn:aws:lambda:eu-south-2:352183217350:layer:LambdaInsightsExtension-Arm64:5`  | 
|  Europe (Stockholm) |  `arn:aws:lambda:eu-north-1:580247275435:layer:LambdaInsightsExtension-Arm64:17`  | 
|  Oriente Médio (Bahrein) |  `arn:aws:lambda:me-south-1:285320876703:layer:LambdaInsightsExtension-Arm64:17`  | 
|  South America (São Paulo) |  `arn:aws:lambda:sa-east-1:580247275435:layer:LambdaInsightsExtension-Arm64:17`  | 
|  AWS GovCloud (Leste dos EUA) |  `arn:aws-us-gov:lambda:us-gov-east-1:122132214140:layer:LambdaInsightsExtension-Arm64:1`  | 
|  AWS GovCloud (Oeste dos EUA) |  `arn:aws-us-gov:lambda:us-gov-west-1:751350123760:layer:LambdaInsightsExtension-Arm64:1`  | 

## 1.0.295.0
<a name="Lambda-Insights-extension-ARM-1.0.295.0"></a>

A versão 1.0.295.0 inclui atualizações de dependência para todos os runtimes compatíveis.


| Região | ARN | 
| --- | --- | 
|  Leste dos EUA (Norte da Virgínia) |  `arn:aws:lambda:us-east-1:580247275435:layer:LambdaInsightsExtension-Arm64:18`  | 
|  Leste dos EUA (Ohio) |  `arn:aws:lambda:us-east-2:580247275435:layer:LambdaInsightsExtension-Arm64:20`  | 
|  Oeste dos EUA (N. da Califórnia) |  `arn:aws:lambda:us-west-1:580247275435:layer:LambdaInsightsExtension-Arm64:16`  | 
|  Oeste dos EUA (Oregon) |  `arn:aws:lambda:us-west-2:580247275435:layer:LambdaInsightsExtension-Arm64:18`  | 
|  África (Cidade do Cabo) |  `arn:aws:lambda:af-south-1:012438385374:layer:LambdaInsightsExtension-Arm64:16`  | 
|  Ásia-Pacífico (Hong Kong) |  `arn:aws:lambda:ap-east-1:519774774795:layer:LambdaInsightsExtension-Arm64:16`  | 
|  Ásia-Pacífico (Hyderabad) |  `arn:aws:lambda:ap-south-2:891564319516:layer:LambdaInsightsExtension-Arm64:4`  | 
|  Ásia-Pacífico (Jacarta) |  `arn:aws:lambda:ap-southeast-3:439286490199:layer:LambdaInsightsExtension-Arm64:16`  | 
|  Ásia-Pacífico (Mumbai) |  `arn:aws:lambda:ap-south-1:580247275435:layer:LambdaInsightsExtension-Arm64:20`  | 
|  Ásia-Pacífico (Osaka) |  `arn:aws:lambda:ap-northeast-3:194566237122:layer:LambdaInsightsExtension-Arm64:15`  | 
|  Ásia-Pacífico (Seul) |  `arn:aws:lambda:ap-northeast-2:580247275435:layer:LambdaInsightsExtension-Arm64:17`  | 
|  Ásia-Pacífico (Singapura) |  `arn:aws:lambda:ap-southeast-1:580247275435:layer:LambdaInsightsExtension-Arm64:18`  | 
|  Ásia-Pacífico (Sydney) |  `arn:aws:lambda:ap-southeast-2:580247275435:layer:LambdaInsightsExtension-Arm64:18`  | 
|  Ásia-Pacífico (Tóquio) |  `arn:aws:lambda:ap-northeast-1:580247275435:layer:LambdaInsightsExtension-Arm64:29`  | 
|  Canadá (Central) |  `arn:aws:lambda:ca-central-1:580247275435:layer:LambdaInsightsExtension-Arm64:16`  | 
|  Europa (Frankfurt) |  `arn:aws:lambda:eu-central-1:580247275435:layer:LambdaInsightsExtension-Arm64:18`  | 
|  Europa (Irlanda) |  `arn:aws:lambda:eu-west-1:580247275435:layer:LambdaInsightsExtension-Arm64:18`  | 
|  Europa (Londres) |  `arn:aws:lambda:eu-west-2:580247275435:layer:LambdaInsightsExtension-Arm64:18`  | 
|  Europa (Milão) |  `arn:aws:lambda:eu-south-1:339249233099:layer:LambdaInsightsExtension-Arm64:16`  | 
|  Europe (Paris) |  `arn:aws:lambda:eu-west-3:580247275435:layer:LambdaInsightsExtension-Arm64:16`  | 
|  Europa (Espanha) |  `arn:aws:lambda:eu-south-2:352183217350:layer:LambdaInsightsExtension-Arm64:4`  | 
|  Europe (Stockholm) |  `arn:aws:lambda:eu-north-1:580247275435:layer:LambdaInsightsExtension-Arm64:16`  | 
|  Oriente Médio (Bahrein) |  `arn:aws:lambda:me-south-1:285320876703:layer:LambdaInsightsExtension-Arm64:16`  | 
|  South America (São Paulo) |  `arn:aws:lambda:sa-east-1:580247275435:layer:LambdaInsightsExtension-Arm64:16`  | 

## 1.0.275.0
<a name="Lambda-Insights-extension-ARM-1.0.275.0"></a>

A versão 1.0.275.0 inclui correções de erros para todos os runtimes compatíveis e para as regiões Europa (Espanha) e Ásia-Pacífico (Hyderabad). 


| Região | ARN | 
| --- | --- | 
|  Leste dos EUA (Norte da Virgínia) |  `arn:aws:lambda:us-east-1:580247275435:layer:LambdaInsightsExtension-Arm64:16`  | 
|  Leste dos EUA (Ohio) |  `arn:aws:lambda:us-east-2:580247275435:layer:LambdaInsightsExtension-Arm64:18`  | 
|  Oeste dos EUA (N. da Califórnia) |  `arn:aws:lambda:us-west-1:580247275435:layer:LambdaInsightsExtension-Arm64:14`  | 
|  Oeste dos EUA (Oregon) |  `arn:aws:lambda:us-west-2:580247275435:layer:LambdaInsightsExtension-Arm64:16`  | 
|  África (Cidade do Cabo) |  `arn:aws:lambda:af-south-1:012438385374:layer:LambdaInsightsExtension-Arm64:14`  | 
|  Ásia-Pacífico (Hong Kong) |  `arn:aws:lambda:ap-east-1:519774774795:layer:LambdaInsightsExtension-Arm64:14`  | 
|  Ásia-Pacífico (Hyderabad) |  `arn:aws:lambda:ap-south-2:891564319516:layer:LambdaInsightsExtension-Arm64:2`  | 
|  Ásia-Pacífico (Jacarta) |  `arn:aws:lambda:ap-southeast-3:439286490199:layer:LambdaInsightsExtension-Arm64:14`  | 
|  Ásia-Pacífico (Mumbai) |  `arn:aws:lambda:ap-south-1:580247275435:layer:LambdaInsightsExtension-Arm64:18`  | 
|  Ásia-Pacífico (Osaka) |  `arn:aws:lambda:ap-northeast-3:194566237122:layer:LambdaInsightsExtension-Arm64:13`  | 
|  Ásia-Pacífico (Seul) |  `arn:aws:lambda:ap-northeast-2:580247275435:layer:LambdaInsightsExtension-Arm64:15`  | 
|  Ásia-Pacífico (Singapura) |  `arn:aws:lambda:ap-southeast-1:580247275435:layer:LambdaInsightsExtension-Arm64:16`  | 
|  Ásia-Pacífico (Sydney) |  `arn:aws:lambda:ap-southeast-2:580247275435:layer:LambdaInsightsExtension-Arm64:16`  | 
|  Ásia-Pacífico (Tóquio) |  `arn:aws:lambda:ap-northeast-1:580247275435:layer:LambdaInsightsExtension-Arm64:27`  | 
|  Canadá (Central) |  `arn:aws:lambda:ca-central-1:580247275435:layer:LambdaInsightsExtension-Arm64:14`  | 
|  Europa (Frankfurt) |  `arn:aws:lambda:eu-central-1:580247275435:layer:LambdaInsightsExtension-Arm64:16`  | 
|  Europa (Irlanda) |  `arn:aws:lambda:eu-west-1:580247275435:layer:LambdaInsightsExtension-Arm64:16`  | 
|  Europa (Londres) |  `arn:aws:lambda:eu-west-2:580247275435:layer:LambdaInsightsExtension-Arm64:16`  | 
|  Europa (Milão) |  `arn:aws:lambda:eu-south-1:339249233099:layer:LambdaInsightsExtension-Arm64:14`  | 
|  Europe (Paris) |  `arn:aws:lambda:eu-west-3:580247275435:layer:LambdaInsightsExtension-Arm64:14`  | 
|  Europa (Espanha) |  `arn:aws:lambda:eu-south-2:352183217350:layer:LambdaInsightsExtension-Arm64:2`  | 
|  Europe (Stockholm) |  `arn:aws:lambda:eu-north-1:580247275435:layer:LambdaInsightsExtension-Arm64:14`  | 
|  Oriente Médio (Bahrein) |  `arn:aws:lambda:me-south-1:285320876703:layer:LambdaInsightsExtension-Arm64:14`  | 
|  South America (São Paulo) |  `arn:aws:lambda:sa-east-1:580247275435:layer:LambdaInsightsExtension-Arm64:14`  | 

## 1.0.273.0
<a name="Lambda-Insights-extension-ARM-1.0.273.0"></a>

A versão 1.0.273.0 inclui correções de erros para todos os runtimes compatíveis. 


| Região | ARN | 
| --- | --- | 
|  Leste dos EUA (Norte da Virgínia) |  `arn:aws:lambda:us-east-1:580247275435:layer:LambdaInsightsExtension-Arm64:12`  | 
|  Leste dos EUA (Ohio) |  `arn:aws:lambda:us-east-2:580247275435:layer:LambdaInsightsExtension-Arm64:14`  | 
|  Oeste dos EUA (N. da Califórnia) |  `arn:aws:lambda:us-west-1:580247275435:layer:LambdaInsightsExtension-Arm64:9`  | 
|  Oeste dos EUA (Oregon) |  `arn:aws:lambda:us-west-2:580247275435:layer:LambdaInsightsExtension-Arm64:12`  | 
|  África (Cidade do Cabo) |  `arn:aws:lambda:af-south-1:012438385374:layer:LambdaInsightsExtension-Arm64:9`  | 
|  Ásia-Pacífico (Hong Kong) |  `arn:aws:lambda:ap-east-1:519774774795:layer:LambdaInsightsExtension-Arm64:9`  | 
|  Ásia-Pacífico (Jacarta) |  `arn:aws:lambda:ap-southeast-3:439286490199:layer:LambdaInsightsExtension-Arm64:9`  | 
|  Ásia-Pacífico (Mumbai) |  `arn:aws:lambda:ap-south-1:580247275435:layer:LambdaInsightsExtension-Arm64:14`  | 
|  Ásia-Pacífico (Osaka) |  `arn:aws:lambda:ap-northeast-3:194566237122:layer:LambdaInsightsExtension-Arm64:9`  | 
|  Ásia-Pacífico (Seul) |  `arn:aws:lambda:ap-northeast-2:580247275435:layer:LambdaInsightsExtension-Arm64:11`  | 
|  Ásia-Pacífico (Singapura) |  `arn:aws:lambda:ap-southeast-1:580247275435:layer:LambdaInsightsExtension-Arm64:12`  | 
|  Ásia-Pacífico (Sydney) |  `arn:aws:lambda:ap-southeast-2:580247275435:layer:LambdaInsightsExtension-Arm64:12`  | 
|  Ásia-Pacífico (Tóquio) |  `arn:aws:lambda:ap-northeast-1:580247275435:layer:LambdaInsightsExtension-Arm64:23`  | 
|  Canadá (Central) |  `arn:aws:lambda:ca-central-1:580247275435:layer:LambdaInsightsExtension-Arm64:10`  | 
|  Europa (Frankfurt) |  `arn:aws:lambda:eu-central-1:580247275435:layer:LambdaInsightsExtension-Arm64:12`  | 
|  Europa (Irlanda) |  `arn:aws:lambda:eu-west-1:580247275435:layer:LambdaInsightsExtension-Arm64:12`  | 
|  Europa (Londres) |  `arn:aws:lambda:eu-west-2:580247275435:layer:LambdaInsightsExtension-Arm64:12`  | 
|  Europa (Milão) |  `arn:aws:lambda:eu-south-1:339249233099:layer:LambdaInsightsExtension-Arm64:9`  | 
|  Europa (Paris) |  `arn:aws:lambda:eu-west-3:580247275435:layer:LambdaInsightsExtension-Arm64:10`  | 
|  Europa (Estocolmo) |  `arn:aws:lambda:eu-north-1:580247275435:layer:LambdaInsightsExtension-Arm64:10`  | 
|  Oriente Médio (Bahrein) |  `arn:aws:lambda:me-south-1:285320876703:layer:LambdaInsightsExtension-Arm64:9`  | 
|  South America (São Paulo) |  `arn:aws:lambda:sa-east-1:580247275435:layer:LambdaInsightsExtension-Arm64:10`  | 

## 1.0.229.0
<a name="Lambda-Insights-extension-ARM-1.0.229.0"></a>

A versão 1.0.229.0 inclui correções de erros para todos os runtimes compatíveis. Ela também adiciona suporte para as regiões a seguir: 
+ Oeste dos EUA (N. da Califórnia)
+ Africa (Cape Town)
+ Ásia-Pacífico (Hong Kong)
+ Ásia-Pacífico (Jacarta)
+ Ásia-Pacífico (Osaka)
+ Ásia-Pacífico (Seul)
+ Canadá (Central)
+ Europe (Milan)
+ Europa (Paris)
+ Europa (Estocolmo)
+ Oriente Médio (Bahrein)
+ South America (São Paulo)


| Região | ARN | 
| --- | --- | 
|  Leste dos EUA (Norte da Virgínia) |  `arn:aws:lambda:us-east-1:580247275435:layer:LambdaInsightsExtension-Arm64:5`  | 
|  Leste dos EUA (Ohio) |  `arn:aws:lambda:us-east-2:580247275435:layer:LambdaInsightsExtension-Arm64:7`  | 
|  Oeste dos EUA (N. da Califórnia) |  `arn:aws:lambda:us-west-1:580247275435:layer:LambdaInsightsExtension-Arm64:3`  | 
|  Oeste dos EUA (Oregon) |  `arn:aws:lambda:us-west-2:580247275435:layer:LambdaInsightsExtension-Arm64:5`  | 
|  África (Cidade do Cabo) |  `arn:aws:lambda:af-south-1:012438385374:layer:LambdaInsightsExtension-Arm64:2`  | 
|  Ásia-Pacífico (Hong Kong) |  `arn:aws:lambda:ap-east-1:519774774795:layer:LambdaInsightsExtension-Arm64:2`  | 
|  Ásia-Pacífico (Jacarta) |  `arn:aws:lambda:ap-southeast-3:439286490199:layer:LambdaInsightsExtension-Arm64:2`  | 
|  Ásia-Pacífico (Mumbai) |  `arn:aws:lambda:ap-south-1:580247275435:layer:LambdaInsightsExtension-Arm64:7`  | 
|  Ásia-Pacífico (Osaka) |  `arn:aws:lambda:ap-northeast-3:194566237122:layer:LambdaInsightsExtension-Arm64:2`  | 
|  Ásia-Pacífico (Seul) |  `arn:aws:lambda:ap-northeast-2:580247275435:layer:LambdaInsightsExtension-Arm64:4`  | 
|  Ásia-Pacífico (Singapura) |  `arn:aws:lambda:ap-southeast-1:580247275435:layer:LambdaInsightsExtension-Arm64:5`  | 
|  Ásia-Pacífico (Sydney) |  `arn:aws:lambda:ap-southeast-2:580247275435:layer:LambdaInsightsExtension-Arm64:5`  | 
|  Ásia-Pacífico (Tóquio) |  `arn:aws:lambda:ap-northeast-1:580247275435:layer:LambdaInsightsExtension-Arm64:11`  | 
|  Canadá (Central) |  `arn:aws:lambda:ca-central-1:580247275435:layer:LambdaInsightsExtension-Arm64:3`  | 
|  Europa (Frankfurt) |  `arn:aws:lambda:eu-central-1:580247275435:layer:LambdaInsightsExtension-Arm64:5`  | 
|  Europa (Irlanda) |  `arn:aws:lambda:eu-west-1:580247275435:layer:LambdaInsightsExtension-Arm64:5`  | 
|  Europa (Londres) |  `arn:aws:lambda:eu-west-2:580247275435:layer:LambdaInsightsExtension-Arm64:5`  | 
|  Europa (Espanha) |  `arn:aws:lambda:eu-south-1:339249233099:layer:LambdaInsightsExtension-Arm64:2`  | 
|  Europa (Paris) |  `arn:aws:lambda:eu-west-3:580247275435:layer:LambdaInsightsExtension-Arm64:3`  | 
|  Europa (Estocolmo) |  `arn:aws:lambda:eu-north-1:580247275435:layer:LambdaInsightsExtension-Arm64:3`  | 
|  Oriente Médio (Bahrein) |  `arn:aws:lambda:me-south-1:285320876703:layer:LambdaInsightsExtension-Arm64:2`  | 
|  South America (São Paulo) |  `arn:aws:lambda:sa-east-1:580247275435:layer:LambdaInsightsExtension-Arm64:3`  | 

## 1.0.135.0
<a name="Lambda-Insights-extension-ARM-1.0.135.0"></a>

A versão 1.0.135.0 inclui correções de bugs relacionados a como o Lambda Insights coleta e relata o uso do descritor de disco e arquivo. Nas versões anteriores da extensão, a métrica `tmp_free` relatava o espaço livre máximo no diretório `/tmp`enquanto uma função era executada. Essa versão altera a métrica para relatar o valor mínimo, tornando-a mais útil ao avaliar o uso do disco. Para obter mais informações sobre cotas de armazenamento de diretórios `tmp`, consulte [Cotas do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html).

A versão 1.0.135.0 agora também relata o uso do descritor de arquivos (`fd_use` e `fd_max`) como o valor máximo entre os processos, em vez de relatar o nível do sistema operacional. 


| Região | ARN | 
| --- | --- | 
|  Leste dos EUA (Norte da Virgínia) |  `arn:aws:lambda:us-east-1:580247275435:layer:LambdaInsightsExtension-Arm64:2`  | 
|  Leste dos EUA (Ohio) |  `arn:aws:lambda:us-east-2:580247275435:layer:LambdaInsightsExtension-Arm64:2`  | 
|  Oeste dos EUA (Oregon) |  `arn:aws:lambda:us-west-2:580247275435:layer:LambdaInsightsExtension-Arm64:2`  | 
|  Ásia-Pacífico (Mumbai) |  `arn:aws:lambda:ap-south-1:580247275435:layer:LambdaInsightsExtension-Arm64:2`  | 
|  Ásia-Pacífico (Singapura) |  `arn:aws:lambda:ap-southeast-1:580247275435:layer:LambdaInsightsExtension-Arm64:2`  | 
|  Ásia-Pacífico (Sydney) |  `arn:aws:lambda:ap-southeast-2:580247275435:layer:LambdaInsightsExtension-Arm64:2`  | 
|  Ásia-Pacífico (Tóquio) |  `arn:aws:lambda:ap-northeast-1:580247275435:layer:LambdaInsightsExtension-Arm64:2`  | 
|  Europa (Frankfurt) |  `arn:aws:lambda:eu-central-1:580247275435:layer:LambdaInsightsExtension-Arm64:2`  | 
|  Europa (Irlanda) |  `arn:aws:lambda:eu-west-1:580247275435:layer:LambdaInsightsExtension-Arm64:2`  | 
|  Europa (Londres) |  `arn:aws:lambda:eu-west-2:580247275435:layer:LambdaInsightsExtension-Arm64:2`  | 

## 1.0.119.0
<a name="Lambda-Insights-extension-ARM-1.0.119.0"></a>


| Região | ARN | 
| --- | --- | 
|  Leste dos EUA (Norte da Virgínia) |  `arn:aws:lambda:us-east-1:580247275435:layer:LambdaInsightsExtension-Arm64:1`  | 
|  Leste dos EUA (Ohio) |  `arn:aws:lambda:us-east-2:580247275435:layer:LambdaInsightsExtension-Arm64:1`  | 
|  Oeste dos EUA (Oregon) |  `arn:aws:lambda:us-west-2:580247275435:layer:LambdaInsightsExtension-Arm64:1`  | 
|  Ásia-Pacífico (Mumbai) |  `arn:aws:lambda:ap-south-1:580247275435:layer:LambdaInsightsExtension-Arm64:1`  | 
|  Ásia-Pacífico (Singapura) |  `arn:aws:lambda:ap-southeast-1:580247275435:layer:LambdaInsightsExtension-Arm64:1`  | 
|  Ásia-Pacífico (Sydney) |  `arn:aws:lambda:ap-southeast-2:580247275435:layer:LambdaInsightsExtension-Arm64:1`  | 
|  Ásia-Pacífico (Tóquio) |  `arn:aws:lambda:ap-northeast-1:580247275435:layer:LambdaInsightsExtension-Arm64:1`  | 
|  Europa (Frankfurt) |  `arn:aws:lambda:eu-central-1:580247275435:layer:LambdaInsightsExtension-Arm64:1`  | 
|  Europa (Irlanda) |  `arn:aws:lambda:eu-west-1:580247275435:layer:LambdaInsightsExtension-Arm64:1`  | 
|  Europa (Londres) |  `arn:aws:lambda:eu-west-2:580247275435:layer:LambdaInsightsExtension-Arm64:1`  | 

# Usar o console para habilitar o Lambda Insights em uma função existente do Lambda
<a name="Lambda-Insights-Getting-Started-console"></a>

 Siga as etapas a seguir no console do Lambda para habilitar o Lambda Insights em uma função existente do Lambda. 

**Para habilitar o Lambda Insights em uma função Lambda**

1. Abra o console AWS Lambda em [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1.  Escolha o nome de uma função e selecione a guia **Configuration** (Configuração) na tela a seguir. 

1.  Na guia **Configuração**, selecione **Ferramentas de monitoramento e operações** no menu de navegação à esquerda e escolha **Editar**. 

    Você será direcionado para uma tela na qual poderá editar as ferramentas de monitoramento. 

1. Em **Monitoramento aprimorado do Lambda Insights**, escolha **Editar**.

1. Em **CloudWatch Lambda Insights**, habilite **Monitoramento aprimorado** e escolha **Salvar**. 

# Usar a AWS CLI para habilitar o Lambda Insights em uma função existente do Lambda
<a name="Lambda-Insights-Getting-Started-cli"></a>

Siga estas etapas para usar a AWS CLI para habilitar o Lambda Insights em uma função existente do Lambda.

**Etapa 1: atualizar as permissões da função**

**Para atualizar as permissões da função**
+ Anexe a política do IAM gerenciada **CloudWatchLambdaInsightsExecutionRolePolicy** para a função de execução da função inserindo o comando a seguir. 

  ```
  aws iam attach-role-policy \
  --role-name function-execution-role \
  --policy-arn "arn:aws:iam::aws:policy/CloudWatchLambdaInsightsExecutionRolePolicy"
  ```

**Etapa 2: instalar a extensão do Lambda**

Instale a extensão do Lambda inserindo o comando a seguir. Substitua o valor do ARN pelo parâmetro `layers` com o ARN correspondente a sua região e à versão da extensão que você deseja usar. Para obter mais informações, consulte [Versões disponíveis da extensão do Lambda Insights](Lambda-Insights-extension-versions.md).

```
aws lambda update-function-configuration \
   --function-name function-name \
   --layers "arn:aws:lambda:us-west-1:580247275435:layer:LambdaInsightsExtension:14"
```

**Etapa 3: habilitar o endpoint da VPC do CloudWatch Logs**

Essa etapa é necessária somente para funções em execução em uma sub-rede privada sem acesso à Internet e caso você ainda não tenha configurado um endpoint da Virtual Private Cloud (VPC) do CloudWatch Logs.

Caso precise realizar esta etapa, insira o seguinte comando, substituindo os espaços reservados por informações para sua VPC.

Para obter mais informações, consulte [Usar o CloudWatch Logs com endpoints da VPC de interface](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/cloudwatch-logs-and-interface-VPC.html).

```
aws ec2 create-vpc-endpoint \
--vpc-id vpcId \
--vpc-endpoint-type Interface \
--service-name com.amazonaws.region.logs \
--subnet-id subnetId 
--security-group-id securitygroupId
```

# Usar a CLI do AWS SAM para habilitar o Lambda Insights em uma função existente do Lambda
<a name="Lambda-Insights-Getting-Started-SAM-CLI"></a>

Siga estas etapas para usar a AWS SAM AWS CLI para habilitar o Lambda Insights em uma função existente do Lambda.

Se você ainda não tem a versão mais recente da AWS SAM CLI instalada, primeiro é necessário instalá-la ou atualizá-la. Para obter mais informações, consulte [Instalar a AWS SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html).

**Etapa 1: instalar a camada**

Para disponibilizar a extensão Lambda Insights a todas as funções do Lambda, adicione uma propriedade `Layers` à seção `Globals` de seu modelo do SAM com o ARN da camada do Lambda Insights. O exemplo abaixo usa a camada para a versão inicial do Lambda Insights. Para obter a versão mais recente da camada de extensão do Lambda Insights, consulte [Versões disponíveis da extensão do Lambda Insights](Lambda-Insights-extension-versions.md).

```
Globals:
  Function:
    Layers:
      - !Sub "arn:aws:lambda:${AWS::Region}:580247275435:layer:LambdaInsightsExtension:14"
```

Para habilitar essa camada para apenas uma única função, adicione a propriedade `Layers` à função, conforme apresentado neste exemplo.

```
Resources:
  MyFunction:
    Type: AWS::Serverless::Function
    Properties:
      Layers:
        - !Sub "arn:aws:lambda:${AWS::Region}:580247275435:layer:LambdaInsightsExtension:14"
```

**Etapa 2: adicionar a política gerenciada**

Para cada função, adicione a política do IAM **CloudWatchLambdaInsightsExecutionRolePolicy**.

AWS SAMComo o não oferece suporte a políticas globais, é necessário habilitá-las em cada função individualmente, conforme apresentado neste exemplo. Para obter mais informações sobre globais, consulte [Seção de globais](https://github.com/aws/serverless-application-model/blob/master/docs/globals.rst). 

```
Resources:
  MyFunction:
    Type: AWS::Serverless::Function
    Properties:
      Policies:
        - CloudWatchLambdaInsightsExecutionRolePolicy
```

**Invocar localmente**

A AWS SAM CLI é compatível com extensões do Lambda. Porém, cada invocação executada localmente redefine o ambiente do runtime. Os dados do Lambda Insights não estarão disponíveis a partir de invocações locais porque o runtime é reiniciado sem um evento de desligamento. Para obter mais informações, consulte [Release 1.6.0: adicionar suporte para testes locais de extensões do AWS Lambda](https://github.com/aws/aws-sam-cli/releases/tag/v1.6.0).

**Solução de problemas do**

Para solucionar problemas de instalação do Lambda Insights, adicione a seguinte variável de ambiente a sua função Lambda para habilitar o log de depuração.

```
Resources:
  MyFunction:
    Type: AWS::Serverless::Function
    Properties:
      Environment:
        Variables:
          LAMBDA_INSIGHTS_LOG_LEVEL: info
```

# Usar o CloudFormation para habilitar o Lambda Insights em uma função existente do Lambda
<a name="Lambda-Insights-Getting-Started-cloudformation"></a>

Siga estas etapas para usar o CloudFormation para habilitar o Lambda Insights em uma função existente do Lambda.

**Etapa 1: instalar a camada**

Adicione a camada do Lambda Insights à ´propriedade `Layers` dentro do ARN da camada do Lambda Insights. O exemplo abaixo usa a camada para a versão inicial do Lambda Insights. Para obter a versão mais recente da camada de extensão do Lambda Insights, consulte [Versões disponíveis da extensão do Lambda Insights](Lambda-Insights-extension-versions.md).

```
Resources:
  MyFunction:
    Type: AWS::Lambda::Function
    Properties:
      Layers:
        - !Sub "arn:aws:lambda:${AWS::Region}:580247275435:layer:LambdaInsightsExtension:14"
```

**Etapa 2: adicionar a política gerenciada**

Adicione a política do IAM **CloudWatchLambdaInsightsExecutionRolePolicy** a sua função de execução.

```
Resources:
  MyFunctionExecutionRole:
    Type: 'AWS::IAM::Role'
    Properties:
      ManagedPolicyArns:
        - 'arn:aws:iam::aws:policy/CloudWatchLambdaInsightsExecutionRolePolicy'
```

**Etapa 3: (opcional) adicionar endpoints da VPC**

Essa etapa é necessária somente para funções em execução em uma sub-rede privada sem acesso à Internet e caso você ainda não tenha configurado um endpoint da Virtual Private Cloud (VPC) do CloudWatch Logs. Para obter mais informações, consulte [Usar o CloudWatch Logs com endpoints da VPC de interface](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/cloudwatch-logs-and-interface-VPC.html).

```
Resources:
  CloudWatchLogsVpcPrivateEndpoint:
    Type: AWS::EC2::VPCEndpoint
    Properties:
      PrivateDnsEnabled: 'true'
      VpcEndpointType: Interface
      VpcId: !Ref: VPC
      ServiceName: !Sub com.amazonaws.${AWS::Region}.logs
      SecurityGroupIds:
        - !Ref InterfaceVpcEndpointSecurityGroup
      SubnetIds:
        - !Ref PublicSubnet01
        - !Ref PublicSubnet02
        - !Ref PublicSubnet03
```

# Usar a AWS CDK para habilitar o Lambda Insights em uma função existente do Lambda
<a name="Lambda-Insights-Getting-Started-clouddevelopmentkit"></a>

Siga estas etapas para usar a AWS CDK para habilitar o Lambda Insights em uma função existente do Lambda. Para utilizar essas etapas, você já deve estar usando o AWS CDK para gerenciar seus recursos.

Os comandos desta seção estão em TypeScript.

Primeiro, atualize as permissões da função.

```
executionRole.addManagedPolicy(
 ManagedPolicy.fromAwsManagedPolicyName('CloudWatchLambdaInsightsExecutionRolePolicy')
);
```

Em seguida, instale a extensão na função Lambda. Substitua o valor do ARN pelo parâmetro `layerArn` com o ARN correspondente a sua região e à versão da extensão que você deseja usar. Para obter mais informações, consulte [Versões disponíveis da extensão do Lambda Insights](Lambda-Insights-extension-versions.md).

```
import lambda = require('@aws-cdk/aws-lambda');
const layerArn = 'arn:aws:lambda:us-west-1:580247275435:layer:LambdaInsightsExtension:14';
const layer = lambda.LayerVersion.fromLayerVersionArn(this, 'LayerFromArn', layerArn);
```

Se necessário, habilite o endpoint da Virtual Private Cloud (VPC) para o CloudWatch Logs. Essa etapa é necessária somente para funções em execução em uma sub-rede privada sem acesso à Internet e caso você ainda não tenha configurado um endpoint da VPC do CloudWatch Logs.

```
const cloudWatchLogsEndpoint = vpc.addInterfaceEndpoint('cwl-gateway', {
  service: InterfaceVpcEndpointAwsService.CLOUDWATCH_LOGS,
});

cloudWatchLogsEndpoint.connections.allowDefaultPortFromAnyIpv4();
```

# Usar Framework Sem Servidor para habilitar o Lambda Insights em uma função existente do Lambda
<a name="Lambda-Insights-Getting-Started-serverless"></a>

Siga estas etapas para usar o Serverless Framework para habilitar o Lambda Insights em uma função existente do Lambda. Para obter mais informações sobre o Serverless Framework, acesse [serverless.com](https://www.serverless.com/).

Isso é feito por meio de um plugin do Lambda Insights para o Serverless. Para obter mais informações, consulte [serverless-plugin-lambda-insights](https://www.npmjs.com/package/serverless-plugin-lambda-insights).

Se você ainda não tem a versão mais recente da interface de linha de comando do Serverless instalada, primeiro é necessário instalá-la ou atualizá-la. Para obter mais informações, consulte [Comece a usar o Serverless Framework Open Source e a AWS](https://www.serverless.com/framework/docs/getting-started/).

**Para usar o Serverless Framework para habilitar o Lambda Insights em uma função Lambda**

1. Instale o plugin do Serverless para o Lambda Insights executando o seguinte comando no diretório do Serverless:

   ```
   npm install --save-dev serverless-plugin-lambda-insights
   ```

1. Em seu arquivo `serverless.yml`, adicione o plugin na seção `plugins`, conforme o exemplo:

   ```
   provider:
     name: aws
   plugins:
     - serverless-plugin-lambda-insights
   ```

1. Habilite o Lambda Insights.
   + É possível habilitar o Lambda Insights individualmente por função adicionando a seguinte propriedade ao arquivo serverless.yml

     ```
     functions:
       myLambdaFunction:
         handler: src/app/index.handler
         lambdaInsights: true #enables Lambda Insights for this function
     ```
   + Você pode habilitar o Lambda Insights para todas as funções dentro do arquivo `serverless.yml` adicionando a seguinte seção personalizada:

     ```
     custom:
       lambdaInsights:
         defaultLambdaInsights: true #enables Lambda Insights for all functions
     ```

1. Implante novamente o serviço do Serveless inserindo este comando:

   ```
   serverless deploy
   ```

   Ele implantará novamente todas as funções e habilitará o Lambda Insights para as funções que você especificou. Habilitará o Lambda Insights adicionando a camada do Lambda Insights e anexando as permissões necessárias usando a política do IAM `arn:aws:iam::aws:policy/CloudWatchLambdaInsightsExecutionRolePolicy`.

# Habilitar o Lambda Insights em uma implantação de imagem de contêiner do Lambda
<a name="Lambda-Insights-Getting-Started-docker"></a>

Para habilitar o Lambda Insights em uma função do Lambda implantada como uma imagem de contêiner, adicione linhas ao Dockerfile. Essas linhas instalam o agente do Lambda Insights como uma extensão em sua imagem de contêiner. As linhas a serem adicionadas são diferentes para contêineres x86-64 e contêineres ARM64.

**nota**  
O agente do Lambda Insights é compatível somente com os runtimes do Lambda que usam o Amazon Linux 2 e o Amazon Linux 2023.

**Topics**
+ [Implantação de imagem de contêiner x86-64](#Lambda-Insights-Getting-Started-docker-x86-64)
+ [Implantação de imagem de contêiner ARM64](#Lambda-Insights-Getting-Started-docker-ARM64)

## Implantação de imagem de contêiner x86-64
<a name="Lambda-Insights-Getting-Started-docker-x86-64"></a>

Para habilitar o Lambda Insights em uma função do Lambda implantada como uma imagem de contêiner em execução em um contêiner X86-64, adicione as linhas a seguir ao Dockerfile. Essas linhas instalam o agente do Lambda Insights como uma extensão em sua imagem de contêiner.

```
RUN curl -O https://lambda-insights-extension.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension.rpm && \
    rpm -U lambda-insights-extension.rpm && \
    rm -f lambda-insights-extension.rpm
```

Depois de criar sua função Lambda, atribua a política do IAM **CloudWatchLambdaInsightsExecutionRolePolicy** à função de execução da função, e o Lambda Insights estará habilitado na função Lambda baseada na imagem de contêiner.

**nota**  
Para usar uma versão mais antiga da extensão do Lambda Insights, substitua a URL nos comandos anteriores por esta URL: `https://lambda-insights-extension.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension.1.0.111.0.rpm`. Para obter mais informações, consulte [Versões disponíveis da extensão do Lambda Insights](Lambda-Insights-extension-versions.md).

**Para verificar a assinatura do pacote do agente do Lambda Insights em um servidor Linux**

1. Insira o comando a serguir para baixar a chave pública.

   ```
   shell$ wget https://lambda-insights-extension.s3-ap-northeast-1.amazonaws.com/lambda-insights-extension.gpg
   ```

1. Insira o comando a seguir para importar a chave pública para o token de autenticaçao.

   ```
   shell$ gpg --import lambda-insights-extension.gpg
   ```

   A saída será semelhante ao seguinte: Anote o valor da `key`, pois ele será necessário na próxima etapa. Neste exemplo de saída, a chave-valor é `848ABDC8`.

   ```
   gpg: key 848ABDC8: public key "Amazon Lambda Insights Extension" imported
   gpg: Total number processed: 1
   gpg: imported: 1  (RSA: 1)
   ```

1. Verifique a impressão digital inserindo o comando a seguir. Substitua `key-value` pelo valor da chave da etapa anterior.

   ```
   shell$  gpg --fingerprint key-value
   ```

   A string de impressão digital na saída deste comando deve ser `E0AF FA11 FFF3 5BD7 349E E222 479C 97A1 848A BDC8`. Se a string não coincidir, não instale o agente e entre em contato com a AWS.

1. Depois de verificar a impressão digital, você pode usá-la para verificar a assinatura do pacote do agente do Lambda Insights. Baixe o arquivo de assinatura do pacote inserindo o comando a seguir.

   ```
   shell$  wget https://lambda-insights-extension.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension.rpm.sig
   ```

1. Verifique a assinatura inserindo o comando a seguir.

   ```
   shell$ gpg --verify lambda-insights-extension.rpm.sig lambda-insights-extension.rpm
   ```

   A saída deve ser a seguinte:

   ```
   gpg: Signature made Thu 08 Apr 2021 06:41:00 PM UTC using RSA key ID 848ABDC8
   gpg: Good signature from "Amazon Lambda Insights Extension"
   gpg: WARNING: This key is not certified with a trusted signature!
   gpg:          There is no indication that the signature belongs to the owner.
   Primary key fingerprint: E0AF FA11 FFF3 5BD7 349E  E222 479C 97A1 848A BDC8
   ```

   Na saída esperada, poderá haver um aviso sobre uma assinatura confiável. Uma chave somente será confiável se você ou alguém em quem você confia a tiver assinado. Isso não significa que a assinatura é inválida, apenas que você não verificou a chave pública.

   Caso a saída contenha `BAD signature`, confira se você executou as etapas corretamente. Se continuar recebendo a resposta `BAD signature`, entre em contato com a AWS e evite usar o arquivo baixado.

### Exemplo de x86-64
<a name="Lambda-Insights-Getting-Started-docker-example"></a>

Esta seção contém um exemplo de habilitação do Lambda Insights em uma função do Python Lambda baseada em imagem de contêiner.

**Um exemplo de habilitação do Lambda Insights em uma implantação de imagem de contêiner do Lambda**

1. Crie um Dockerfile semelhante ao seguinte:

   ```
   FROM public.ecr.aws/lambda/python:3.8
   
   // extra lines to install the agent here
   RUN curl -O https://lambda-insights-extension.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension.rpm && \
       rpm -U lambda-insights-extension.rpm && \
       rm -f lambda-insights-extension.rpm
     
   COPY index.py ${LAMBDA_TASK_ROOT}
   CMD [ "index.handler" ]
   ```

1. Crie um arquivo Python chamado `index.py` que é semelhante ao seguinte:

   ```
   def handler(event, context):
     return {
       'message': 'Hello World!'
     }
   ```

1. Coloque o Dockerfile e o `index.py` no mesmo diretório. Em seguida, nesse diretório, execute as seguintes etapas para criar a imagem do docker e carregá-la no Amazon ECR.

   ```
   // create an ECR repository
   aws ecr create-repository --repository-name test-repository
   // build the docker image
   docker build -t test-image .
   // sign in to AWS
   aws ecr get-login-password | docker login --username AWS --password-stdin "${ACCOUNT_ID}".dkr.ecr."${REGION}".amazonaws.com
   // tag the image
   docker tag test-image:latest "${ACCOUNT_ID}".dkr.ecr."${REGION}".amazonaws.com/test-repository:latest
   // push the image to ECR
   docker push "${ACCOUNT_ID}".dkr.ecr."${REGION}".amazonaws.com/test-repository:latest
   ```

1. Use a imagem do Amazon ECR que você acabou de criar para criar a função Lambda.

1.  Adicione a política do IAM **CloudWatchLambdaInsightsExecutionRolePolicy** à função de execução da função.

## Implantação de imagem de contêiner ARM64
<a name="Lambda-Insights-Getting-Started-docker-ARM64"></a>

Para habilitar o Lambda Insights em uma função do Lambda implantada como uma imagem de contêiner em execução em um contêiner AL2-aarch64 (que usa a arquitetura ARM64), adicione as linhas a seguir ao Dockerfile. Essas linhas instalam o agente do Lambda Insights como uma extensão em sua imagem de contêiner.

```
RUN curl -O https://lambda-insights-extension-arm64.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension-arm64.rpm && \
    rpm -U lambda-insights-extension-arm64.rpm && \
    rm -f lambda-insights-extension-arm64.rpm
```

Depois de criar sua função Lambda, atribua a política do IAM **CloudWatchLambdaInsightsExecutionRolePolicy** à função de execução da função, e o Lambda Insights estará habilitado na função Lambda baseada na imagem de contêiner.

**nota**  
Para usar uma versão mais antiga da extensão do Lambda Insights, substitua a URL nos comandos anteriores por esta URL: `https://lambda-insights-extension-arm64.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension-arm64.1.0.229.0.rpm`. Para obter mais informações, consulte [Versões disponíveis da extensão do Lambda Insights](Lambda-Insights-extension-versions.md).

**Para verificar a assinatura do pacote do agente do Lambda Insights em um servidor Linux**

1. Insira o comando a serguir para baixar a chave pública.

   ```
   shell$ wget https://lambda-insights-extension-arm64.s3-ap-northeast-1.amazonaws.com/lambda-insights-extension.gpg
   ```

1. Insira o comando a seguir para importar a chave pública para o token de autenticaçao.

   ```
   shell$ gpg --import lambda-insights-extension.gpg
   ```

   A saída será semelhante ao seguinte: Anote o valor da `key`, pois ele será necessário na próxima etapa. Neste exemplo de saída, a chave-valor é `848ABDC8`.

   ```
   gpg: key 848ABDC8: public key "Amazon Lambda Insights Extension" imported
   gpg: Total number processed: 1
   gpg: imported: 1  (RSA: 1)
   ```

1. Verifique a impressão digital inserindo o comando a seguir. Substitua `key-value` pelo valor da chave da etapa anterior.

   ```
   shell$  gpg --fingerprint key-value
   ```

   A string de impressão digital na saída deste comando deve ser `E0AF FA11 FFF3 5BD7 349E E222 479C 97A1 848A BDC8`. Se a string não coincidir, não instale o agente e entre em contato com a AWS.

1. Depois de verificar a impressão digital, você pode usá-la para verificar a assinatura do pacote do agente do Lambda Insights. Baixe o arquivo de assinatura do pacote inserindo o comando a seguir.

   ```
   shell$  wget https://lambda-insights-extension-arm64.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension-arm64.rpm.sig
   ```

1. Verifique a assinatura inserindo o comando a seguir.

   ```
   shell$ gpg --verify lambda-insights-extension-arm64.rpm.sig lambda-insights-extension-arm64.rpm
   ```

   A saída deve ser a seguinte:

   ```
   gpg: Signature made Thu 08 Apr 2021 06:41:00 PM UTC using RSA key ID 848ABDC8
   gpg: Good signature from "Amazon Lambda Insights Extension"
   gpg: WARNING: This key is not certified with a trusted signature!
   gpg:          There is no indication that the signature belongs to the owner.
   Primary key fingerprint: E0AF FA11 FFF3 5BD7 349E  E222 479C 97A1 848A BDC8
   ```

   Na saída esperada, poderá haver um aviso sobre uma assinatura confiável. Uma chave somente será confiável se você ou alguém em quem você confia a tiver assinado. Isso não significa que a assinatura é inválida, apenas que você não verificou a chave pública.

   Caso a saída contenha `BAD signature`, confira se você executou as etapas corretamente. Se continuar recebendo a resposta `BAD signature`, entre em contato com a AWS e evite usar o arquivo baixado.

### Exemplo de ARM64
<a name="Lambda-Insights-Getting-Started-docker-example-ARM64"></a>

Esta seção contém um exemplo de habilitação do Lambda Insights em uma função do Python Lambda baseada em imagem de contêiner.

**Um exemplo de habilitação do Lambda Insights em uma implantação de imagem de contêiner do Lambda**

1. Crie um Dockerfile semelhante ao seguinte:

   ```
   FROM public.ecr.aws/lambda/python:3.8
   // extra lines to install the agent here
   RUN curl -O https://lambda-insights-extension-arm64.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension-arm64.rpm && \
       rpm -U lambda-insights-extension-arm64.rpm && \
       rm -f lambda-insights-extension-arm64.rpm
     
   COPY index.py ${LAMBDA_TASK_ROOT}
   CMD [ "index.handler" ]
   ```

1. Crie um arquivo Python chamado `index.py` que é semelhante ao seguinte:

   ```
   def handler(event, context):
     return {
       'message': 'Hello World!'
     }
   ```

1. Coloque o Dockerfile e o `index.py` no mesmo diretório. Em seguida, nesse diretório, execute as seguintes etapas para criar a imagem do docker e carregá-la no Amazon ECR.

   ```
   // create an ECR repository
   aws ecr create-repository --repository-name test-repository
   // build the docker image
   docker build -t test-image .
   // sign in to AWS
   aws ecr get-login-password | docker login --username AWS --password-stdin "${ACCOUNT_ID}".dkr.ecr."${REGION}".amazonaws.com
   // tag the image
   docker tag test-image:latest "${ACCOUNT_ID}".dkr.ecr."${REGION}".amazonaws.com/test-repository:latest
   // push the image to ECR
   docker push "${ACCOUNT_ID}".dkr.ecr."${REGION}".amazonaws.com/test-repository:latest
   ```

1. Use a imagem do Amazon ECR que você acabou de criar para criar a função Lambda.

1.  Adicione a política do IAM **CloudWatchLambdaInsightsExecutionRolePolicy** à função de execução da função.

# Atualizar a versão da extensão do Lambda Insights em uma função
<a name="Lambda-Insights-Update-Extension"></a>

Como prática recomendada, recomendamos manter a sua extensão do Lambda Insights atualizada com a versão mais recente. Os tópicos nesta página explicam como atualizá-la.

**nota**  
Esta página explica como atualizar a versão da extensão usada por uma função que já está usando o Lambda Insights. Para obter mais informações sobre como começar a usar o Lambda Insights, consulte [Conceitos básicos do Lambda Insights](Lambda-Insights-Getting-Started.md).

## Usar o console do Lambda para atualizar a versão da extensão do Lambda Insights
<a name="Lambda-Insights-Update-Extension-console"></a>

Siga as etapas a seguir para usar o console do Lambda para atualizar a versão da extensão do Lambda Insights.

**Para atualizar usando o console do Lambda**

1. Abra o console AWS Lambda em [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Escolha o nome da sua função.

1. Na seção **Camadas**, escolha **Editar**.

1. Na lista de camadas, pesquise por **LambdaInsightsExtension** e, em seguida, altere a versão da camada para a versão mais recente listada em [Versões disponíveis da extensão do Lambda Insights](Lambda-Insights-extension-versions.md).

1. Escolha **Salvar**.

## Usar a AWS CLI para atualizar a versão da extensão do Lambda Insights
<a name="Lambda-Insights-Update-Extension-CLI"></a>

Para usar a AWS CLI para atualizar a versão da extensão do Lambda Insights, insira o comando a seguir. Substitua o valor do ARN pelo parâmetro de camadas com o ARN correspondente à sua região e à versão da extensão que você deseja usar. Para obter informações sobre a versão mais recente da camada de extensão do Lambda Insights, consulte [Versões disponíveis da extensão do Lambda Insights](Lambda-Insights-extension-versions.md).

```
aws lambda update-function-configuration \
--function-name function-name \
--layers "arn:aws:lambda:us-west-1:111122223333:layer:LambdaInsightsExtension:53"
```

## Usar a CLI do AWS SAM para atualizar a extensão do Lambda Insights em uma ou mais funções
<a name="Lambda-Insights-Update-Extension-SAM-CLI"></a>

Para atualizar a versão da extensão do Lambda Insights para todas as funções do Lambda, atualize a propriedade `Layers` na seção `Globals` do seu modelo do AWS Serverless Application Model (SAM) com o ARN da camada do Lambda Insights. Para obter informações sobre a versão mais recente da camada de extensão do Lambda Insights, consulte [Versões disponíveis da extensão do Lambda Insights](Lambda-Insights-extension-versions.md).

O exemplo a seguir atualiza todas as suas funções do Lambda.

```
Globals:
  Function:
    Layers:
       - !Sub "arn:aws:lambda:${AWS::Region}:111122223333:layer:LambdaInsightsExtension:53"
```

O exemplo a seguir atualiza apenas uma função.

```
Resources:
  MyFunction:
    Type: AWS::Serverless::Function
    Properties:
      Layers:
        - !Sub "arn:aws:lambda:${AWS::Region}:111122223333:layer:LambdaInsightsExtension:53"
```

## Usar a CLI do CloudFormation para atualizar a extensão do Lambda Insights em uma ou mais funções
<a name="Lambda-Insights-Update-Extension-CloudFormation"></a>

Para atualizar a versão da extensão do Lambda Insights usando o CloudFormation, atualize a camada de extensão na propriedade `Layers` no recurso do CloudFormation da função, como no exemplo a seguir. Para obter informações sobre a versão mais recente da camada de extensão do Lambda Insights, consulte [Versões disponíveis da extensão do Lambda Insights](Lambda-Insights-extension-versions.md).

```
Resources:
  MyFunction:
    Type: AWS::Lambda::Function
    Properties:
      Layers:
        - !Sub "arn:aws:lambda:${AWS::Region}:111122223333:layer:LambdaInsightsExtension:53"
```

## Usar o AWS CDK para atualizar a extensão do Lambda Insights em uma ou mais funções
<a name="Lambda-Insights-Update-Extension-CDK"></a>

Você pode atualizar a versão da extensão na função do Lambda substituindo o valor do ARN pelo parâmetro `layerArn` com o ARN correspondente à sua região e à versão da extensão que você deseja usar. Para obter informações sobre a versão mais recente da camada de extensão do Lambda Insights, consulte [Versões disponíveis da extensão do Lambda Insights](Lambda-Insights-extension-versions.md).

```
import lambda = require('@aws-cdk/aws-lambda'); 
const layerArn = 'arn:aws:lambda:us-west-1:111122223333:layer:LambdaInsightsExtension:53'; 
const layer = lambda.LayerVersion.fromLayerVersionArn(this, 'LayerFromArn', layerArn);
```

## Usar Framework Sem Servidor para atualizar a extensão do Lambda Insights em uma ou mais funções
<a name="Lambda-Insights-Update-Extension-Serverless"></a>

Siga estas etapas para usar Framework Sem Servidor para atualizar a versão da extensão do Lambda Insights em uma função existente do Lambda. Para obter mais informações sobre Framework Sem Servidor, acesse a [documentação de Framework Sem Servidor](https://serverless.com).

Esse método usa um plug-in do Lambda Insights para Sem Servidor. Para obter mais informações, consulte [serverless-plugin-lambda-insights](https://www.npmjs.com/package/serverless-plugin-lambda-insights).

Se você ainda não tem a versão mais recente da interface de linha de comando de tecnologia sem servidor instalada, é necessário primeiro instalá-la ou atualizá-la. Para obter mais informações, consulte [Setting Up Serverless Framework With AWS](https://www.serverless.com/framework/docs/getting-started/).

**Para atualizar usando o console do Lambda**

1. Atualize o Lambda Insights. Caso ainda não tenha atualizado, adicione uma seção `custom` no final do arquivo e especifique a versão do Lambda Insights dentro de uma propriedade `lambdaInsightsVersion`.

   ```
   custom:
       lambdaInsights:
           lambdaInsightsVersion: 53 #specify the Layer Version
   ```

1. Implante novamente o serviço sem servidor inserindo o comando a seguir.

   ```
   serverless deploy
   ```

## Atualizar a versão da extensão do Lambda Insights em uma implantação de imagem de contêiner do Lambda
<a name="Lambda-Insights-Update-Extension-container"></a>

Para atualizar o Lambda Insights em uma imagem de contêiner do Lambda, siga as etapas em [Habilitar o Lambda Insights em uma implantação de imagem de contêiner do Lambda](Lambda-Insights-Getting-Started-docker.md) para recriar a imagem com a versão mais recente do Lambda Insights. Em seguida, use a AWS CLI para [atualizar o código da função](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/update-function-code.html) e fornecer um URI de imagem de contêiner como o valor para o parâmetro `--image-uri`.

# Visualizar métricas do Lambda Insights
<a name="Lambda-Insights-view-metrics"></a>

Depois de instalar a extensão Lambda Insights em uma função Lambda que foi invocada, você pode usar o console do CloudWatch para visualizar as métricas. É possível ter uma visão geral de várias funções ou focar em uma única função. É possível também visualizar métricas para funções do Lambda executadas em instâncias gerenciadas.

Para obter uma lista das métricas do Lambda Insights, consulte [Métricas coletadas pelo Lambda Insights](Lambda-Insights-metrics.md).

**Para exibir a visão geral de várias funções das métricas do Lambda Insights**

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

1. No painel de navegação esquerdo, escolha **Insights**, **Lambda Insights**.

1. No menu suspenso **Visão do Lambda Insights** na parte superior da página, selecione **Funções**.

1. Escolha **Multifunção**.

   A parte superior da página exibe grafos com métricas agregadas de todas as suas funções do Lambda na região que têm o Lambda Insights habilitado. Na parte inferior da página há uma tabela que lista as funções.

1. Para filtrar por nome de função para reduzir o número de funções exibidas, digite parte do nome da função na caixa próxima à parte superior da página.

1. Para adicionar este gráfico a um painel como widget, escolha **Add to dashboard** (Adicionar ao painel).

**Para visualizar as métricas de uma única função**

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

1. No painel de navegação esquerdo, escolha **Insights**, **Lambda Insights**.

1. No menu suspenso **Visão do Lambda Insights** na parte superior da página, selecione **Funções**.

1. Escolha **Função única**.

   A parte superior da página exibe grafos com métricas para a função selecionada.

1. Se o X-Ray estiver habilitado, você poderá escolher um único ID de rastreamento. Isso abre a página do mapa de rastreamento do X-Ray para essa invocação e, daí em diante, é possível reduzir o zoom para ver o rastreamento distribuído e os outros serviços envolvidos no processamento dessa transação específica. Para obter mais informações, sobre o mapa de rastreamento do X-Ray, consulte [Using the X-Ray Trace Map](https://docs.aws.amazon.com/xray/latest/devguide/xray-console-servicemap.html). 

1. Para abrir o CloudWatch Logs Insights e ampliar um erro específico, escolha **View logs** (Visualizar logs) pela tabela na parte inferior da página.

1. Para adicionar este gráfico a um painel como widget, escolha **Add to dashboard** (Adicionar ao painel).

**Para visualizar métricas para funções do Lambda executadas em instâncias gerenciadas**

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

1. No painel de navegação esquerdo, escolha **Insights**, **Lambda Insights**.

1. No menu suspenso **Visão do Lambda Insights** na parte superior da página, selecione **Funções de instâncias gerenciadas**.

   A página exibe a visão Instâncias gerenciadas com métricas para as funções do Lambda executadas em instâncias gerenciadas.

1. Na seção **Visões**, selecione um nível de granularidade para visualização das métricas:
   + **Provedor de capacidade**: exibe métricas agregadas ao nível do provedor de capacidade.
   + **Tipo de instância**: exibe métricas agregadas ao nível do tipo de instância.
   + **Função**: exibe métricas ao nível da função individual. A parte superior da página exibe gráficos com métricas agregadas de todas as funções do Lambda na região que tem o Lambda Insights habilitado. Na parte inferior da página há uma tabela que lista as funções. Para filtrar por nome de função, digite parte do nome da função na caixa próxima à parte superior da página.

1. Use a seção **Filtros** para filtrar por provedor de capacidade, tipo de instância ou função.

1. Para adicionar este gráfico a um painel como widget, escolha **Add to dashboard** (Adicionar ao painel).

# Integração ao Application Insights
<a name="lambda-insights-appinsights"></a>

O Amazon CloudWatch Application Insights ajuda a monitorar suas aplicações, além de identificar e configurar as principais métricas, logs e alarmes nos recursos da aplicação e pilha de tecnologia. Para obter mais informações, consulte [Detectar problemas comuns de aplicações com o CloudWatch Application Insights](cloudwatch-application-insights.md).

Você pode habilitar o Application Insights para coletar dados adicionais de suas funções do Lambda. Se ainda não tiver feito isso, é possível habilitá-lo escolhendo **Auto-configure Application Insights** (Configurar automaticamente o Application Insights) na guia **Application Insights** abaixo da visualização de performance no painel Lambda Insights.

Se já tiver configurado o CloudWatch Application Insights para monitorar suas funções o Lambda, o painel do Application Insights aparecerá abaixo do painel do Lambda Insights, na guia **Application Insights**.

# Métricas coletadas pelo Lambda Insights
<a name="Lambda-Insights-metrics"></a>

O Lambda Insights coleta várias métricas das funções do Lambda onde está instalado. Algumas dessas métricas estão disponíveis como dados agregados de séries temporais no CloudWatch Metrics. Outras métricas não são agregadas em dados de séries temporais, mas podem ser encontradas nas entradas de log de formato de métrica incorporado com o CloudWatch Logs Insights.

**Topics**
+ [Funções do Lambda](Lambda-Insights-metrics-lambda-functions.md)
+ [Funções do Lambda de instâncias gerenciadas](Lambda-Insights-metrics-managed-instances.md)

# Funções do Lambda
<a name="Lambda-Insights-metrics-lambda-functions"></a>

As métricas a seguir estão disponíveis como dados agregados em séries temporais no CloudWatch Metrics no namespace `LambdaInsights` para as funções do Lambda padrão.


| Nome da métrica | Dimensões | Descrição | 
| --- | --- | --- | 
|  `cpu_total_time` |  function\$1name function\$1name, version  |  Soma de `cpu_system_time` e `cpu_user_time`. Unidade: milissegundos  | 
|  `init_duration` |  function\$1name function\$1name, version  |  A quantidade de tempo gasta na fase `init` do ciclo de vida do ambiente de execução do Lambda. Unidade: milissegundos  | 
|  `memory_utilization` |  function\$1name function\$1name, version  |  A memória máxima medida como uma porcentagem da memória alocada para a função. Unidade: percentual  | 
|  `used_memory_max` |  function\$1name function\$1name, version  |  A memória medida do ambiente de execução da função. Unidade: megabytes  | 
|  `rx_bytes` |  function\$1name function\$1name, version  |  Número de bytes recebidos pela função. Unidade: bytes  | 
|  `tmp_free` |  function\$1name function\$1name, version  |  A quantidade de espaço disponível no diretório `/tmp`. Unidade: bytes  | 
|  `tmp_used` |  function\$1name function\$1name, version  |  A quantidade de espaço usada no diretório `/tmp`. Unidade: bytes  | 
|  `tx_bytes` |  function\$1name function\$1name, version  |  O número de bytes enviados pela função. Unidade: bytes  | 
|  `total_memory` |  function\$1name function\$1name, version  |  A quantidade de memória alocada em sua função Lambda. É o mesmo que o tamanho da memória de sua função. Unidade: megabytes  | 
|  `total_network` |  function\$1name function\$1name, version  |  Soma de `rx_bytes` e `tx_bytes`. Mesmo para funções que não executam tarefas de E/S, esse valor geralmente é maior que zero por causa das chamadas de rede realizadas pelo runtime do Lambda. Unidade: bytes  | 
|  `used_memory_max` |  function\$1name function\$1name, version  |  A memória medida da sandbox da função. Unidade: megabytes  | 

As métricas a seguir podem ser encontradas nas entradas de log de formato de métrica incorporado com o CloudWatch Logs Insights. Para obter mais informações sobre o CloudWatch Logs Insights, consulte [ Analisar dados de log com o CloudWatch Logs Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html).

Para obter mais informações sobre o formato de métrica incorporado, consulte [Incorporação de métricas em logs](CloudWatch_Embedded_Metric_Format.md).


| Nome da métrica | Descrição | 
| --- | --- | 
|  `agent_version` |  A versão atual do agente da extensão Lambda Insights executada na função do Lambda. Unidade: string  | 
|  `cpu_user_time` |  A quantidade de tempo que a CPU gastou para executar o código do usuário. Unidade: milissegundos  | 
|  `cpu_system_time` |  A quantidade de tempo que a CPU gastou para executar o código do kernel. Unidade: milissegundos  | 
|  `cpu_total_time` |  Soma de `cpu_system_time` e `cpu_user_time`. Unidade: milissegundos  | 
|  `fd_use` |  Descritores de arquivo atualmente em uso. Unidade: Contagem  | 
|  `fd_max` |  Máximo de descritores de arquivo disponíveis para uso. Unidade: Contagem  | 
|  `version` |  A versão da função do Lambda para a qual as outras métricas foram coletadas. Unidade: Contagem  | 
|  `agent_memory_max` |  Memória máxima consumida pelo agente da extensão Lambda Insights. Unidade: bytes  | 
|  `agent_memory_avg` |  Memória média consumida pelo agente da extensão Lambda Insights. Unidade: bytes  | 
|  `memory_utilization` |  A memória média medida como uma porcentagem da memória alocada para o ambiente de execução. Unidade: percentual  | 
|  `used_memory_max` |  A memória medida do ambiente de execução da função. Unidade: megabytes  | 
|  `rx_bytes` |  Número de bytes recebidos pela função. Unidade: bytes  | 
|  `tx_bytes` |  O número de bytes enviados pela função. Unidade: bytes  | 
|  `threads_max` |  O número de threads no processo da função. Como autor da função, você não controla o número inicial de threads criados pelo runtime. Unidade: Contagem  | 
|  `tmp_used` |  A quantidade de espaço usada no diretório `/tmp`. Unidade: bytes  | 
|  `tmp_max` |  A quantidade de espaço disponível no diretório `/tmp`. Unidade: bytes  | 
|  `total_memory` |  A quantidade de memória alocada em sua função Lambda. É o mesmo que o tamanho da memória de sua função. Unidade: megabytes  | 
|  `total_network` |  Soma de `rx_bytes` e `tx_bytes`. Mesmo para funções que não executam tarefas de E/S, esse valor geralmente é maior que zero por causa das chamadas de rede realizadas pelo runtime do Lambda. Unidade: bytes  | 

# Funções do Lambda de instâncias gerenciadas
<a name="Lambda-Insights-metrics-managed-instances"></a>

As métricas a seguir estão disponíveis como dados agregados em séries temporais no CloudWatch Metrics no namespace `LambdaInsights` para as funções do Lambda executadas em instâncias gerenciadas.


| Nome da métrica | Dimensões | Descrição | 
| --- | --- | --- | 
|  `cpu_utilization` |  function\$1name function\$1name, version  |  A CPU média medida como uma porcentagem das vCPUs alocadas para o ambiente de execução. Unidade: percentual  | 
|  `cpu_utilization_max` |  function\$1name function\$1name, version  |  A CPU máxima medida como uma porcentagem das vCPUs alocadas para o ambiente de execução. Isso é amostrado a intervalos de 1 segundo. Unidade: percentual  | 
|  `cpu_total_time` |  function\$1name function\$1name, version  |  Soma de `cpu_system_time` e `cpu_user_time`. Unidade: milissegundos  | 
|  `memory_utilization` |  function\$1name function\$1name, version  |  A memória média medida como uma porcentagem da memória alocada para o ambiente de execução. Unidade: percentual  | 
|  `memory_utilization_max` |  function\$1name function\$1name, version  |  A memória máxima medida como uma porcentagem da memória alocada para o ambiente de execução. Isso é amostrado a intervalos de 50 ms. Unidade: percentual  | 
|  `used_memory_max` |  function\$1name function\$1name, version  |  A memória medida do ambiente de execução da função. Unidade: megabytes  | 
|  `rx_bytes` |  function\$1name function\$1name, version  |  Número de bytes recebidos pela função. Unidade: bytes  | 
|  `tmp_free` |  function\$1name function\$1name, version  |  A quantidade de espaço disponível no diretório `/tmp`. Unidade: bytes  | 
|  `tmp_used` |  function\$1name function\$1name, version  |  A quantidade de espaço usada no diretório `/tmp`. Unidade: bytes  | 
|  `tx_bytes` |  function\$1name function\$1name, version  |  O número de bytes enviados pela função. Unidade: bytes  | 
|  `total_memory` |  function\$1name function\$1name, version  |  A quantidade de memória alocada em sua função Lambda. É igual ao tamanho da memória da função. Unidade: megabytes  | 
|  `total_network` |  function\$1name function\$1name, version  |  Soma de `rx_bytes` e `tx_bytes`. Mesmo para funções que não executam tarefas de E/S, esse valor geralmente é maior que zero por causa das chamadas de rede realizadas pelo runtime do Lambda. Unidade: bytes  | 
|  `used_memory_max` |  function\$1name function\$1name, version  |  A memória medida da sandbox da função. Unidade: megabytes  | 

As métricas a seguir podem ser encontradas nas entradas de log de formato de métrica incorporado com o CloudWatch Logs Insights. Para obter mais informações sobre o CloudWatch Logs Insights, consulte [ Analisar dados de log com o CloudWatch Logs Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html).

Para obter mais informações sobre o formato de métrica incorporado, consulte [Incorporação de métricas em logs](CloudWatch_Embedded_Metric_Format.md).


| Nome da métrica | Descrição | 
| --- | --- | 
|  `lambda_mode` |  Indicando se esse evento de log é ou não para uma função executada em instâncias gerenciadas do Lambda. Se esse campo estiver presente no evento de log, poderá ter somente o valor -`managed-instance`. A ausência desse campo indica que a função era uma função do Lambda regular. Unidade: string  | 
|  `agent_version` |  A versão atual do agente da extensão Lambda Insights executada na função do Lambda. Unidade: string  | 
|  `cpu_utilization` |  A CPU média medida como uma porcentagem das vCPUs alocadas para o ambiente de execução. Unidade: percentual  | 
|  `cpu_utilization_max` |  A CPU máxima medida como uma porcentagem das vCPUs alocadas para o ambiente de execução. Isso é amostrado a intervalos de 1 segundo. Unidade: percentual  | 
|  `cpu_user_time` |  A quantidade de tempo que a CPU gastou para executar o código do usuário. Unidade: milissegundos  | 
|  `cpu_system_time` |  A quantidade de tempo que a CPU gastou para executar o código do kernel. Unidade: milissegundos  | 
|  `cpu_total_time` |  Soma de `cpu_system_time` e `cpu_user_time`. Unidade: milissegundos  | 
|  `fd_use` |  Descritores de arquivo atualmente em uso. Unidade: Contagem  | 
|  `fd_max` |  Máximo de descritores de arquivo disponíveis para uso. Unidade: Contagem  | 
|  `execution_environment_init` |  Valor booleano que indica se um novo ambiente de execução foi criado para essa função. Unidade: booleano  | 
|  `version` |  A versão da função do Lambda para a qual as outras métricas foram coletadas. Unidade: Contagem  | 
|  `agent_memory_max` |  Memória máxima consumida pelo agente da extensão Lambda Insights. Unidade: bytes  | 
|  `agent_memory_avg` |  Memória média consumida pelo agente da extensão Lambda Insights. Unidade: bytes  | 
|  `memory_utilization` |  A memória média medida como uma porcentagem da memória alocada para o ambiente de execução. Unidade: percentual  | 
|  `memory_utilization_max` |  A memória máxima medida como uma porcentagem da memória alocada para o ambiente de execução. Isso é amostrado a intervalos de 50 ms. Unidade: percentual  | 
|  `used_memory_max` |  A memória medida do ambiente de execução da função. Unidade: megabytes  | 
|  `rx_bytes` |  Número de bytes recebidos pela função. Unidade: bytes  | 
|  `tx_bytes` |  O número de bytes enviados pela função. Unidade: bytes  | 
|  `threads_max` |  O número de threads no processo da função. Como autor da função, você não controla o número inicial de threads criados pelo runtime. Unidade: Contagem  | 
|  `tmp_free` |  A quantidade de espaço disponível no diretório `/tmp`. Unidade: bytes  | 
|  `tmp_used` |  A quantidade de espaço usada no diretório `/tmp`. Unidade: bytes  | 
|  `tmp_max` |  A quantidade de espaço disponível no diretório `/tmp`. Unidade: bytes  | 
|  `total_memory` |  A quantidade de memória alocada em sua função Lambda. É igual ao tamanho da memória da função. Unidade: megabytes  | 
|  `total_network` |  Soma de `rx_bytes` e `tx_bytes`. Mesmo para funções que não executam tarefas de E/S, esse valor geralmente é maior que zero por causa das chamadas de rede realizadas pelo runtime do Lambda. Unidade: bytes  | 

# Solução de problemas e problemas conhecidos do Lambda Insights do CloudWatch
<a name="Lambda-Insights-Troubleshooting"></a>

A primeira etapa para solucionar problemas é habilitar o log de depuração na extensão do Lambda Insights. Para isso, defina esta variável de ambiente em sua função Lambda: `LAMBDA_INSIGHTS_LOG_LEVEL=info`. Para obter mais informações, consulte [Usar variáveis de ambiente do AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html).

A extensão emite logs no mesmo grupo de logs que sua função (). (`/aws/lambda/function-name)`. Revise esses logs para ver se o erro pode estar relacionado a um problema de instalação. 

## Não visualizo nenhuma métrica do Lambda Insights
<a name="Lambda-Insights-Troubleshooting-nometrics"></a>

Caso você não veja as métricas do Lambda Insights que espera visualizar, verifique as possibilidades a seguir:
+ **As métricas podem estar apenas atrasadas**: se a função ainda não tiver sido invocada ou se os dados ainda não tiverem sido liberados, você não verá as métricas no CloudWatch. Para obter mais informações, consulte **Probelmas conhecidos** mais à frente, nesta seção.
+ **Confirme se a função Lambda tem as permissões corretas**: verifique se a política do IAM **CloudWatchLambdaInsightsExecutionRolePolicy** está atribuída à função de execução do IAM.
+ **Verifique o runtime do Lambda**: o Lambda Insights é compatível apenas com determinados runtimes do Lambda. Para ver uma lista dos tempos de execução compatíveis, consulte [Lambda Insights](Lambda-Insights.md).

  Por exemplo, para usar o Lambda Insights em Java 8, é necessário usar o runtime `java8.al2`, e não o runtime `java8`.
+ **Verificar o acesso à rede**: a função Lambda pode estar em uma sub-rede privada da VPC sem acesso à Internet e você não tem um endpoint da VPC configurado para o CloudWatch Logs. Para ajudar a depurar esse problema, você pode definir a variável de ambiente `LAMBDA_INSIGHTS_LOG_LEVEL=info`.

## Problemas conhecidos
<a name="Lambda-Insights-Troubleshooting-knownissues"></a>

O atraso de dados pode ser de até 20 minutos. Quando um manipulador de função é concluído, o Lambda congela a sandbox, que também congela a extensão do Lambda Insights. Enquanto a função está em execução, usamos uma estratégia de lotes adaptável baseada TPS da função para dados de saída. Porém, se a função parar de ser invocada por um período prolongado e ainda houver dados de evento no buffer, esses dados poderão ser atrasados até o Lambda desligar a sandbox ociosa. Quando o Lambda desliga a sandbox, liberamos os dados armazenados em buffer.

# Exemplo de evento de telemetria no Lambda Insights do CloudWatch
<a name="Lambda-Insights-example-event"></a>

Cada invocação de uma função Lambda que tem o Lambda Insights habilitado grava um único evento de log no grupo de logs `/aws/lambda-insights`. Todo evento de log contém métricas no formato de métrica incorporado. Para obter mais informações sobre o formato de métrica incorporado, consulte [Incorporação de métricas em logs](CloudWatch_Embedded_Metric_Format.md).

É possível usar os métodos a seguir para analisar esses eventos de log:
+ A seção do Lambda Insights do console do CloudWatch, conforme explicado em [Visualizar métricas do Lambda Insights](Lambda-Insights-view-metrics.md).
+ Registre consultas de eventos com o CloudWatch Logs Insights. Para obter mais informações, consulte [ Analisar dados de log com o CloudWatch Logs Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html).
+ Métricas coletadas no namespace `LambdaInsights`, que você representa em grafos usando métricas do CloudWatch.

Veja a seguir um exemplo de evento de log do Lambda Insights com formato de métrica incorporado.

```
{
    "_aws": {
        "Timestamp": 1605034324256,
        "CloudWatchMetrics": [
            {
                "Namespace": "LambdaInsights",
                "Dimensions": [
                    [ "function_name" ],
                    [ "function_name", "version" ]
                ],
                "Metrics": [
                    { "Name": "memory_utilization", "Unit": "Percent" },
                    { "Name": "total_memory", "Unit": "Megabytes" },
                    { "Name": "used_memory_max", "Unit": "Megabytes" },
                    { "Name": "cpu_total_time", "Unit": "Milliseconds" },
                    { "Name": "tx_bytes", "Unit": "Bytes" },
                    { "Name": "rx_bytes", "Unit": "Bytes" },
                    { "Name": "total_network", "Unit": "Bytes" },
                    { "Name": "init_duration", "Unit": "Milliseconds" }
                ]
            }
        ],
        "LambdaInsights": {
            "ShareTelemetry": true
        }
    },
    "event_type": "performance",
    "function_name": "cpu-intensive",
    "version": "Blue",
    "request_id": "12345678-8bcc-42f7-b1de-123456789012",
    "trace_id": "1-5faae118-12345678901234567890",
    "duration": 45191,
    "billed_duration": 45200,
    "billed_mb_ms": 11571200,
    "cold_start": true,
    "init_duration": 130,
    "tmp_free": 538329088,
    "tmp_max": 551346176,
    "threads_max": 11,
    "used_memory_max": 63,
    "total_memory": 256,
    "memory_utilization": 24,
    "cpu_user_time": 6640,
    "cpu_system_time": 50,
    "cpu_total_time": 6690,
    "fd_use": 416,
    "fd_max": 32642,
    "tx_bytes": 4434,
    "rx_bytes": 6911,
    "timeout": true,
    "shutdown_reason": "Timeout",
    "total_network": 11345,
    "agent_version": "1.0.72.0",
    "agent_memory_avg": 10,
    "agent_memory_max": 10
}
```

O exemplo a seguir é de evento de log do Lambda Insights para uma função do Lambda executada em instâncias gerenciadas do Lambda.

```
{
    "total_network": 16443,
    "tmp_free": 531492864,
    "total_memory": 2048,
    "fd_use": 85,
    "tmp_used": 11984896,
    "execution_environment_init": false,
    "version": "3",
    "event_type": "performance",
    "agent_memory_max": 6,
    "fd_max": 1024,
    "function_name": "cpu-intensive",
    "tx_bytes": 8404,
    "memory_utilization": 3,
    "used_memory_max": 73,
    "memory_utilization_max": 3,
    "cpu_system_time": 541,
    "threads_max": 49,
    "tmp_max": 543477760,
    "cpu_utilization_max": 2,
    "agent_memory_avg": 6,
    "cpu_total_time": 815,
    "rx_bytes": 8039,
    "lambda_mode": "managed-instance",
    "agent_version": "1.0.660.0",
    "_aws": {
        "CloudWatchMetrics": [
            {
                "Namespace": "LambdaInsights",
                "Dimensions": [
                    [
                        "function_name"
                    ],
                    [
                        "function_name",
                        "version"
                    ]
                ],
                "Metrics": [
                    {
                        "Name": "cpu_total_time",
                        "Unit": "Milliseconds"
                    },
                    {
                        "Name": "cpu_utilization",
                        "Unit": "Percent"
                    },
                    {
                        "Name": "cpu_utilization_max",
                        "Unit": "Percent"
                    },
                    {
                        "Name": "tx_bytes",
                        "Unit": "Bytes"
                    },
                    {
                        "Name": "rx_bytes",
                        "Unit": "Bytes"
                    },
                    {
                        "Name": "total_network",
                        "Unit": "Bytes"
                    },
                    {
                        "Name": "used_memory_max",
                        "Unit": "Megabytes"
                    },
                    {
                        "Name": "memory_utilization",
                        "Unit": "Percent"
                    },
                    {
                        "Name": "memory_utilization_max",
                        "Unit": "Percent"
                    },
                    {
                        "Name": "total_memory",
                        "Unit": "Megabytes"
                    },
                    {
                        "Name": "tmp_used",
                        "Unit": "Bytes"
                    },
                    {
                        "Name": "tmp_free",
                        "Unit": "Bytes"
                    }
                ]
            }
        ],
        "Timestamp": 1764164871353,
        "LambdaInsights": {
            "ShareTelemetry": true
        }
    },
    "cpu_utilization": 1,
    "cpu_user_time": 273
}
```

# CloudWatch Database Insights
<a name="Database-Insights"></a>

Use o CloudWatch Database Insights para monitorar e solucionar problemas em bancos de dados do Amazon Aurora MySQL, do Amazon Aurora PostgreSQL, do Amazon Aurora PostgreSQL Limitless, do Amazon RDS para SQL Server, do RDS para MySQL, do RDS para PostgreSQL, do RDS para Oracle e do RDS para MariaDB em grande escala.

Com o Database Insights, você pode monitorar a frota de banco de dados com painéis predefinidos e opinativos. Para ajudar a analisar o desempenho da sua frota, os painéis do Database Insights exibem métricas e visualizações selecionadas, sendo possível personalizar esses painéis. Ao apresentar métricas em um único painel para todos os bancos de dados da frota, o Database Insights permite que você os monitore simultaneamente.

Por exemplo, você pode usar o Database Insights para encontrar um banco de dados com baixa performance em uma frota de centenas de instâncias de banco de dados. Em seguida, você pode escolher essa instância e usar o Database Insights para solucionar problemas.

Para obter informações sobre compatibilidade com mecanismos, Região da AWS e classes de instâncias, consulte [O mecanismo de banco de dados do Aurora, a região e a classe de instância são compatíveis com o Database Insights](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_DatabaseInsights.Engines.html) e [Amazon RDS DB engine, Region, and instance class support for Database Insights](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DatabaseInsights.Engines.html).

O Database Insights é compatível com o monitoramento de workloads entre contas e entre regiões. Para saber mais sobre o recurso de monitoramento do Database Insights, consulte [Configurar o monitoramento entre contas e entre regiões para o CloudWatch Database Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Database-Insights-Cross-Account-Cross-Region.html)

Para conferir os conceitos básicos do Database Insights, consulte os tópicos a seguir.

**Tópicos**
+ [Conceitos básicos do CloudWatch Database Insights](Database-Insights-Get-Started.md)
+ [Visualizar o Fleet Health Dashboard para CloudWatch Database Insights](Database-Insights-Fleet-Health-Dashboard.md)
+ [Visualizar o painel da instância de banco de dados do CloudWatch Database Insights](Database-Insights-Database-Instance-Dashboard.md)
+ [Solução de problemas do CloudWatch Database Insights](Database-Insights-Troubleshooting.md)

## Modos do Database Insights
<a name="Database-Insights-modes"></a>

O Database Insights tem um modo Avançado e um modo Padrão. O modo Padrão é o básico para o Database Insights, e você pode ativar o modo Avançado para o banco de dados. 

A tabela a seguir mostra com quais recursos o CloudWatch é compatível para os modos Avançado e Padrão do Database Insights.


| Recurso | Modo padrão | Modo Avançado | 
| --- | --- | --- | 
| Analisar os principais contribuidores para o carregamento de banco de dados por dimensão | Compatível | Compatível | 
| Consultar, criar gráficos e definir alarmes nas métricas do banco de dados com até sete dias de retenção | Compatível | Compatível | 
| Definir políticas de controle de acesso refinadas para restringir o acesso a dimensões possivelmente sigilosas, como texto em SQL | Compatível | Compatível | 
| Analise os processos do sistema operacional que ocorrem em seus bancos de dados com métricas detalhadas por processo em execução O [Monitoramento aprimorado do Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PerfInsights_Counters.html) é necessário para que esse recurso funcione. | Não compatível | Compatível | 
| Defina e salve visões de monitoramento de toda a frota para avaliar a integridade do banco de dados em grande escala | Não compatível | Compatível | 
| Analise bloqueios de SQL com 15 meses de retenção e uma experiência do usuário guiada | Não compatível | Compatível somente com o Aurora PostgreSQL | 
| Analise os planos de execução do SQL com 15 meses de retenção e experiência do usuário guiada | Não compatível | Compatível somente com o Aurora PostgreSQL, RDS para Oracle e RDS para SQL Server | 
| Visualizar estatísticas por consulta | Não compatível | Compatível | 
| Analisar consultas SQL lentasA exportação de logs do banco de dados para o CloudWatch Logs é necessária para que esse recurso funcione. | Não compatível | Compatível | 
| Visualizar os serviços de chamadas com o CloudWatch Application Signals | Não compatível | Compatível | 
| Visualizar um painel consolidado para toda a telemetria do banco de dados, incluindo métricas, logs, eventos e aplicaçõesA exportação de logs do banco de dados para o CloudWatch Logs é necessária para visualizar os logs do banco de dados no console do Database Insights. | Não compatível | Compatível | 
| Importar métricas de contadores do Insights de Performance para o CloudWatch automaticamente | Não compatível | Compatível | 
| Visualizar eventos do Amazon RDS no CloudWatch | Não compatível | Compatível | 
| Analisar a performance do banco de dados por um período de sua escolha com análise sob demanda | Não compatível | Compatível | 

**nota**  
A disponibilidade do recurso Database Insights varia em diferentes regiões da AWS, pois nem todos os recursos do modo avançado estão disponíveis em todas as regiões.

## Retenção de dados
<a name="Database-Insights-retention"></a>

O modo Avançado do Database Insights retém 15 meses de métricas coletadas pelo Insights de Performance.

Se o Insights de Performance estiver habilitado para o modo Padrão, o Amazon RDS vai reter sete dias de métricas de contadores do Insights de Performance.

Para obter informações sobre as métricas de contadores do Insights de Performance, consulte [Métricas de contadores do Insights de Performance](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PerfInsights_Counters.html).

Para obter informações sobre o período de retenção das métricas do CloudWatch coletadas pelo Database Insights, consulte os tópicos a seguir.
+ [Métricas do Amazon CloudWatch para o Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMonitoring.Metrics.html) no *Guia do usuário do Amazon Aurora*
+ [Amazon CloudWatch metrics for Amazon Relational Database Service](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-metrics.html) no *Guia do usuário do Amazon RDS*
+ [Métricas do Amazon CloudWatch para Insights de Performance do Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PerfInsights.Cloudwatch.html) no *Guia do usuário do Amazon Aurora*
+ [Métricas do Amazon CloudWatch para Insights de Performance do Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Cloudwatch.html) no *Guia do usuário do Amazon Aurora*

## Como o Database Insights se integra ao Insights de Performance
<a name="Database-Insights-pi"></a>

O Insights de Performance é um serviço de monitoramento de performance de banco de dados.

O Database Insights se baseia nos recursos, e os amplia, do Insights de Performance. O Database Insights adiciona recursos de monitoramento, análise e otimização.

Para habilitar o modo Avançado do Database Insights, você deve habilitar o Insights de Performance. 

O Database Insights importa métricas de contadores do Insights de Performance para o CloudWatch automaticamente. O modo Avançado do Database Insights retém automaticamente 15 meses de todas as métricas coletadas pelo Database Insights, incluindo métricas do Performance Insights e do CloudWatch. Isso acontece automaticamente quando você habilita o modo Avançado em uma instância, sem necessidade de configuração adicional. Para obter informações sobre as métricas de contadores do Insights de Performance, consulte [Métricas de contadores do Insights de Performance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights_Counters.html) no *Guia do usuário do Amazon Aurora*.

## Preços
<a name="Database-Insights-pricing"></a>

Para obter informações sobre preços, consulte [Amazon CloudWatch Pricing](https://aws.amazon.com/cloudwatch/pricing/).

# Conceitos básicos do CloudWatch Database Insights
<a name="Database-Insights-Get-Started"></a>

O modo Padrão do Database Insights é habilitado por padrão para os bancos de dados do Amazon Aurora e do Amazon RDS. Para começar a usar o modo Avançado do Database Insights, você pode criar um banco de dados ou modificar um existente.

Para obter informações sobre como habilitar o modo Avançado ou o modo Padrão do Database Insights para um banco de dados do Amazon RDS, consulte os tópicos a seguir.
+ [Turning on the Advanced mode of Database Insights for Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DatabaseInsights.TurningOnAdvanced.html) no *Guia do usuário do Amazon RDS*
+ [Turning on the Standard mode of Database Insights for Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DatabaseInsights.TurningOnStandard.html) no *Guia do usuário do Amazon RDS*
+ [Turning CloudWatch Database Insights on or off when creating a DB instance or Multi-AZ DB cluster for Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DatabaseInsights.TurnOnCreateDatabase.html) no *Guia do usuário do Amazon RDS*

Para obter informações sobre como habilitar o modo Avançado ou o modo Padrão do Database Insights para um banco de dados do Amazon Aurora, consulte os tópicos a seguir.
+ [Turning on the Advanced mode of Database Insights for Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_DatabaseInsights.TurningOnAdvanced.html) no *Guia do usuário do Amazon Aurora*
+ [Turning on the Standard mode of Database Insights for Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_DatabaseInsights.TurningOnStandard.html) no *Guia do usuário do Amazon Aurora*

Para obter informações sobre como habilitar o modo Avançado ou o modo Padrão do Database Insights para um Aurora PostgreSQL Limitless Database, consulte os tópicos a seguir.
+ [Ativar o modo avançado do Database Insights para o Aurora PostgreSQL Limitless Database](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/limitless-monitoring.cwdbi.advanced.html) no *Guia do usuário do Amazon Aurora*
+ [Ativar o modo padrão do Database Insights para o Aurora PostgreSQL Limitless Database](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/limitless-monitoring.cwdbi.standard.html) no *Guia do usuário do Amazon Aurora*

## Permissões necessárias para o Database Insights
<a name="w2aac26c13c31c17"></a>

Algumas permissões do IAM são necessárias para usar o Database Insights. O Database Insights exige permissões para o CloudWatch, o CloudWatch Logs, o Amazon RDS e o Insights de Performance do Amazon RDS. Talvez você não precise fornecer essas permissões ao seu usuário ou perfil se tiver permissões mais amplas.

As permissões do CloudWatch a seguir são necessárias para usar o Database Insights.
+ `cloudwatch:BatchGetServiceLevelIndicatorReport`
+ `cloudwatch:DescribeAlarms`
+ `cloudwatch:GetDashboard`
+ `cloudwatch:GetMetricData`
+ `cloudwatch:ListMetrics`
+ `cloudwatch:PutDashboard`

As permissões do CloudWatch Logs a seguir são necessárias para usar o Database Insights.
+ `logs:DescribeLogGroups`
+ `logs:GetQueryResults`
+ `logs:StartQuery`
+ `logs:StopQuery`

As permissões do Amazon RDS a seguir são necessárias para usar o Database Insights.
+ `rds:DescribeDBClusters`
+ `rds:DescribeDBInstances`
+ `rds:DescribeEvents`
+ `rds:DescribeDBShardGroups` (se estiver realizando o monitoramento do Aurora PostgreSQL Limitless Databases)

As permissões do Insights de Performance a seguir são necessárias para usar o Database Insights.
+ `pi:ListAvailableResourceMetrics`
+ `pi:ListAvailableResourceDimensions`
+ `pi:DescribeDimensionKeys`
+ `pi:GetDimensionKeyDetails`
+ `pi:GetResourceMetrics`
+ `pi:ListPerformanceAnalysisReports`
+ `pi:GetResourceMetadata`
+ `pi:GetPerformanceAnalysisReport`
+ `pi:CreatePerformanceAnalysisReport`
+ `pi:DeletePerformanceAnalysisReport`
+ `pi:ListTagsForResource`
+ `pi:TagResource`
+ `pi:UntagResource`

O exemplo de política a seguir contém as permissões necessárias para acesso total ao Database Insights.

### Exemplo de política para acesso total
<a name="Database-Insights-permissions-sample"></a>

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
    "Effect" : "Allow",
      "Action" : [
        "cloudwatch:BatchGetServiceLevelIndicatorReport",
        "cloudwatch:DescribeAlarms",
        "cloudwatch:GetMetricStatistics",
        "cloudwatch:GetMetricData",
        "cloudwatch:ListMetrics",
        "cloudwatch:PutDashboard"
      ],
      "Resource" : "*"
    },
    {
    "Effect" : "Allow",
      "Action" : [
        "logs:DescribeLogGroups",
        "logs:GetQueryResults",
        "logs:StartQuery",
        "logs:StopQuery"
      ],
      "Resource" : "*"
    },
    {
    "Effect" : "Allow",
      "Action" : [
        "pi:DescribeDimensionKeys",
        "pi:GetDimensionKeyDetails",
        "pi:GetResourceMetadata",
        "pi:GetResourceMetrics",
        "pi:ListAvailableResourceDimensions",
        "pi:ListAvailableResourceMetrics",
        "pi:CreatePerformanceAnalysisReport",
        "pi:GetPerformanceAnalysisReport",
        "pi:ListPerformanceAnalysisReports",
        "pi:DeletePerformanceAnalysisReport",
        "pi:TagResource",
        "pi:UntagResource",
        "pi:ListTagsForResource"
      ],
      "Resource" : "arn:aws:pi:*:*:*/rds/*"
    },
    {
    "Effect" : "Allow",
      "Action" : [
        "rds:DescribeDBInstances",
        "rds:DescribeDBClusters",
        "rds:DescribeEvents"
      ],
      "Resource" : "*"
    }
  ]
}
```

------

# Configurar monitoramento entre contas e entre regiões no CloudWatch Database Insights
<a name="Database-Insights-Cross-Account-Cross-Region"></a>

 O CloudWatch Database Insights permite o monitoramento de frotas de bancos de dados entre contas e entre regiões, o que propicia observabilidade centralizada por toda a infraestrutura de banco de dados da AWS. Ele permite monitorar, solucionar problemas e otimizar bancos de dados abrangendo múltiplas contas e regiões da AWS em uma única experiência do console unificado. 

**Topics**
+ [Pré-requisitos](#Database-Insights-Cross-Account-Cross-Region-Prereq)
+ [Configure suas contas de monitoramento e de origem para o acesso entre contas do Database Insights](#Database-Insights-Cross-Account-Cross-Region-MonitoringSourceAccountSetup)
+ [Configurar o CloudWatch Database Insights para o console entre contas e entre regiões](#Database-Insights-Cross-Account-Cross-Region-setup)
+ [Usar os painéis entre contas e entre regiões do Database Insights](#Database-Insights-Cross-Account-Cross-Region-Using)

## Pré-requisitos
<a name="Database-Insights-Cross-Account-Cross-Region-Prereq"></a>
+ O Database Insights entre contas e entre regiões exige que a **observabilidade entre contas do CloudWatch** e o **console do CloudWatch entre contas e entre regiões** sejam configurados primeiro. Veja as instruções para habilitar ambos.
+ Se você já fez isso, pode precisar ainda configurar o compartilhamento de dados adicional para que o Database Insights funcione em todas as contas e regiões em seu ambiente. Veja as instruções abaixo e certifique-se de ter selecionado a configuração de compartilhamento de dados adequada.

## Configure suas contas de monitoramento e de origem para o acesso entre contas do Database Insights
<a name="Database-Insights-Cross-Account-Cross-Region-MonitoringSourceAccountSetup"></a>

1. Siga o guia passo a passo em [Observabilidade entre contas do CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account-Setup.html). Os modelos do CloudFormation são fornecidos para implantações de infraestrutura como código. 

1. Na **Etapa 1: configurar uma conta de monitoramento**, selecione pelo menos os seguintes tipos de dados para compartilhar com sua conta de monitoramento para que o Database Insights funcione em todas as contas e regiões: **registros**, **métricas**, **rastros** e **Application Signals: serviços, metas de nível de serviço (SLOs)**.

1. Você precisa fazer esse processo em **todas as regiões** em que deseja configurar o Database Insights com compatibilidade entre contas e entre regiões.

## Configurar o CloudWatch Database Insights para o console entre contas e entre regiões
<a name="Database-Insights-Cross-Account-Cross-Region-setup"></a>

1. Siga o guia passo a passo no [Console do CloudWatch entre contas e entre regiões](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Cross-Account-Cross-Region.html). 

1. Na **Etapa 5: permissões**, você precisa selecionar pelo menos os seguintes tipos de dados para compartilhar com sua conta de monitoramento: **Incluir painéis automáticos do CloudWatch** e **Incluir acesso somente leitura para o Database Insights.** Do contrário, você também pode optar por **Acesso total somente leitura a tudo em sua conta**, o que incluirá todas as fontes de dados disponíveis. 

1.  O console entre regiões do CloudWatch é uma configuração global, por isso, você precisa fazer essa etapa apenas uma vez e ela funcionará para todas as regiões. 

## Usar os painéis entre contas e entre regiões do Database Insights
<a name="Database-Insights-Cross-Account-Cross-Region-Using"></a>

 Depois de configurar o Database Insights para compatibilidade entre contas e entre regiões, você pode habilitar o “Modo entre contas e entre regiões” na seção **Filtros** do painel esquerdo, logo abaixo de **Visões do banco de dados**. Você verá um botão de alternância no canto superior esquerdo, como mostra a captura de tela abaixo. 

![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/database-insights-enable-cross-account-toggle.png)


 Depois que o modo entre contas e entre regiões for ativado, novos filtros estarão disponíveis, permitindo selecionar várias regiões e filtrar por IDs e rótulos da conta da AWS, tipos de recursos do banco de dados e identificadores de recursos da banco de dados. 

 Por padrão, a região atual e todas as suas contas estão selecionadas. Se você alterar a seleção de regiões e contas, o Fleet Health Dashboard será atualizado automaticamente para mostrar os recursos que corresponderem à região e aos filtros de conta selecionados. 

 No Fleet Health Dashboard, é fácil navegar até o Database Instance Dashboard para ver as instâncias que pertencem a outras contas e regiões da AWS. 

 Há alguns aspectos a serem considerados ao trabalhar com o monitoramento entre contas e entre regiões do Database Insights: 
+  Os alarmes devem ser criados somente na conta de monitoramento. Os alarmes podem ser configurados nas métricas das contas de origem, mas precisam ser criados na conta de monitoramento. 
+  As visões de monitoramento de frotas devem ser definidas e salvas apenas na conta de monitoramento. 
+  Os painéis de métricas personalizados no Instance Dashboard do Database Insights devem ser personalizados apenas na conta de monitoramento. 
+  O número máximo de regiões permitido ao mesmo tempo no Fleet Health Dashboard do Database Insights são 3. 
+  Somente operações de leitura são permitidas na conta de monitoramento. Isso significa que você não pode criar relatórios de análise de performance na conta de monitoramento. 
+  Quando o modo entre contas e entre regiões está habilitado no Fleet Health Dashboard, a filtragem por tags e por propriedades do recursos da AWS não está disponível. 

# Visualizar o Fleet Health Dashboard para CloudWatch Database Insights
<a name="Database-Insights-Fleet-Health-Dashboard"></a>

Você pode usar o Fleet Health Dashboard para visualizar um snapshot da integridade da frota de banco de dados.

![\[Painel de integridade de frotas\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/dbi_fhd.png)


## Visualizações da integridade da frota
<a name="Database-Insights-fleet-views"></a>

Uma *frota de banco de dados* no Database Insights é um grupo de bancos de dados que você deseja monitorar. Você pode criar uma visualização de monitoramento para uma frota de banco de dados escolhendo o componente **Filtros**. Esse componente permite aplicar filtros em propriedades, como nomes e tags de clusters ou instâncias. No Fleet Health Dashboard, o CloudWatch mostra bancos de dados que correspondem a pelo menos uma das condições de filtro para a visualização da integridade da frota.

![\[Filtrar por propriedades e tags\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/dbi_filter.png)


Para criar, modificar ou excluir visualizações de frotas de bancos de dados, use os procedimentos nos tópicos a seguir.
+ [Criar uma visualização da integridade da frota para o CloudWatch Database Insights](Database-Insights-fleet-views-create.md)
+ [Editar uma visualização da integridade da frota para o CloudWatch Database Insights](Database-Insights-fleet-views-edit.md)
+ [Excluir uma visualização da integridade da frota do CloudWatch Database Insights](Database-Insights-fleet-views-delete.md)

## Tabela de visão geral das instâncias do RDS
<a name="Database-Insights-instances"></a>

Use a tabela de **visão geral das instâncias do RDS** para visualizar o estado do alarme, a porcentagem máxima da carga do banco de dados e a hora da última atualização de estado para cada instância na frota.

![\[Tabela de recursos do Amazon RDS\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/dbi_fhd-resources.png)


## Resumo dos estados de instâncias
<a name="Database-Insights-Instances-State-Summary"></a>

Use o **Resumo dos estados das instâncias** para visualizar a integridade de todas as instâncias na frota. O resumo dos estados das instâncias fornece duas visualizações com base nos **alarmes** e na métrica da carga do banco de dados. Por padrão, o CloudWatch exibe a visualização **Alarmes**.

![\[Resumo dos estados de instâncias\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/dbi_iss.png)


Cada nó no honeycomb representa uma instância. Para obter mais informações sobre uma instância, você pode escolher o nó correspondente e escolher **Filtrar visualização por essa instância**. 

![\[Resumo do estados das instâncias selecionadas\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/dbi_iss-selected.png)


O componente honeycomb resume o estado do alarme das instâncias na frota com o número de nós em cada estado na parte superior do honeycomb. O CloudWatch exibe a hora da última atualização dos dados mostrados no honeycomb.

Ao mudar para a visualização **Carga do banco de dados**, você pode ver a integridade geral da frota do ponto de vista da métrica da carga de banco de dados. A carga do banco de dados calcula a quantidade de sessões ativas no banco de dados. Ela é a métrica principal do Database Insights e é coletada a cada segundo. O CloudWatch categoriza as instâncias de banco de dados nos estados a seguir com base nos limites da carga do banco de dados. 
+ Alto
+ Aviso
+ Ok
+ Ocioso

Você pode ver os limites da carga de banco de dados escolhendo os ícones de estado correspondentes.

Para obter informações sobre a carga de banco de dados do Amazon RDS, consulte [Carga de banco de dados](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.ActiveSessions.html) no *Guia do usuário do Amazon RDS*. Para obter informações sobre a carga de banco de dados, consulte [Carga de banco de dados](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PerfInsights.Overview.ActiveSessions.html) no *Guia do usuário do Amazon Aurora*.

Por padrão, o CloudWatch exibe a carga média de banco de dados. Escolha **Máx.** para monitorar a carga máxima de banco de dados para cada instância.

Escolha um nó no resumo dos estados das instâncias para exibir os alarmes e a carga do banco de dados para a instância.

## Gráficos Os dez principais
<a name="Database-Insights-Top-Ten"></a>

Use o gráfico **Dez principais instâncias por carga relativa de banco de dados** para visualizar a tendência da carga de banco de dados ao longo do tempo para as dez instâncias com a maior carga de banco de dados. O gráfico também fornece as principais consultas e os principais eventos de espera para a instância com a maior carga de banco de dados.

![\[Gráfico As dez principais instâncias por carga de banco de dados\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/dbi_top10.png)


Use os gráficos **Dez principais instâncias por métrica** para comparar duas métricas principais das dez principais instâncias da frota. Você pode selecionar as métricas a seguir.
+ Utilização da CPU (%)
+ Memória que pode ser liberada (%)
+ Conexões de banco de dados (%)
+ Throughput na rede
+ IOPS de leitura
+ IOPS de gravação
+ Latência de leitura
+ Latência de gravação

![\[Gráficos Dez principais instâncias por métricas\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/dbi_fhd-top10per.png)


## eventos do Amazon RDS
<a name="Database-Insights-Events"></a>

Use a tabela e o resumo de **Eventos** para visualizar eventos do RDS das instâncias na frota.

![\[Resumo de eventos\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/dbi_events.png)


Para ver a tabela de **Eventos**, escolha **Detalhes**.

![\[Detalhes dos eventos\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/dbi_events-details.png)


Para obter uma lista de eventos do Amazon RDS e do Amazon Aurora, consulte os tópicos a seguir.
+ [Categorias de eventos e mensagens de eventos do Amazon RDS para o Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Events.Messages.html) no *Guia do usuário do Amazon Aurora*.
+ [Categorias de eventos e mensagens de eventos do Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.Messages.html) no *Guia do usuário do Amazon RDS*

## Tabela de serviços de chamada
<a name="Database-Insights-Calling-Services"></a>

Use a tabela **Serviços de chamada** para visualizar os serviços do CloudWatch Application Signals que estão chamando os endpoints de banco de dados e as métricas relacionadas no nível da aplicação, como latência ou erros.

![\[Tabela de serviços de chamada\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/dbi_fhd-calling.png)


O Database Insights mostra os serviços que estão chamando as dez principais instâncias por carga de banco de dados. Para visualizar os serviços de chamada de outra instância, escolha a instância no painel da instância do banco de dados.

Quando o endpoint chamado pela aplicação for um cluster do Aurora, o Database Insights exibirá o endpoint do gravador ou do leitor do cluster do Aurora na tabela **Serviços de chamada**, não a instância individual do banco de dados. No entanto, quando o endpoint chamado pela aplicação for um cluster do Amazon RDS, o Database Insights mostrará a instância específica do banco de dados que a aplicação está chamando no cluster do Amazon RDS.

Para obter mais informações sobre o CloudWatch Application Signals, consulte [Application Signals](CloudWatch-Application-Monitoring-Sections.md).

# Criar uma visualização da integridade da frota para o CloudWatch Database Insights
<a name="Database-Insights-fleet-views-create"></a>

Para criar uma visualização de integridade da frota, use o procedimento a seguir.

**Para criar uma visualização da integridade da frota**

1. Faça login no Console de gerenciamento da AWS e abra o console do CloudWatch em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Escolha **Insights**.

1. Escolha **Database Insights**.

1. Escolha filtros para a frota de bancos de dados que você deseja monitorar.

1. Escolha **Salvar filtro como frota**.

1. Na janela **Salvar conjunto de filtros (frota)**, insira um nome para a frota.

1. Clique no botão **Salvar**.

Para acessar a frota salva, escolha o menu suspenso **Frotas salvas**. Em seguida, escolha uma frota.

# Editar uma visualização da integridade da frota para o CloudWatch Database Insights
<a name="Database-Insights-fleet-views-edit"></a>

Para editar uma visualização da integridade da frota, siga o procedimento a seguir.

**Para editar uma visualização da integridade da frota**

1. Faça login no Console de gerenciamento da AWS e abra o console do CloudWatch em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Escolha **Insights**.

1. Escolha **Database Insights**.

1. Escolha o menu suspenso **Frotas salvas**.

1. Escolha a elipse vertical para a visualização da integridade da frota que você quer editar.

1. Na janela **Editar conjunto de filtros (frota)**, você pode editar o nome e os filtros da frota.

1. Clique no botão **Salvar**.

# Excluir uma visualização da integridade da frota do CloudWatch Database Insights
<a name="Database-Insights-fleet-views-delete"></a>

Para excluir uma visualização de integridade da frota, use o procedimento a seguir.

**Para excluir uma visualização de integridade de frota**

1. Faça login no Console de gerenciamento da AWS e abra o console do CloudWatch em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Escolha **Insights**.

1. Escolha **Database Insights**.

1. Escolha o menu suspenso **Frotas salvas**.

1. Escolha a elipse vertical para uma visualização de integridade de frota que você deseja excluir.

1. Na janela **Excluir conjunto de filtros (frota)**, escolha o botão **Excluir**.

# Visualizar o painel da instância de banco de dados do CloudWatch Database Insights
<a name="Database-Insights-Database-Instance-Dashboard"></a>

Use o Database Instance Dashboard para visualizar um snapshot da integridade de uma instância de banco de dados.

Para analisar árvores de bloqueio e planos de execução do Amazon Aurora PostgreSQL, consulte os tópicos a seguir.

**Tópicos**
+ [Análise de árvores de bloqueio para o Amazon Aurora PostgreSQL e Amazon RDS para PostgreSQL com o CloudWatch Database Insights](Database-Insights-Lock-Analysis.md)
+ [Analisar os planos de execução com o CloudWatch Database Insights](Database-Insights-Execution-Plans.md)

## Gráfico de carga do banco de dados
<a name="Database-Insights-database-load"></a>

*Carga do banco de dados* avalia o nível de atividade de sessão no banco de dados. A carga de banco de dados é a métrica principal no Database Insights, e o Database Insights a coleta a cada segundo.

![\[Painel de instâncias de banco de dados\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/dbi_did.png)


Para obter mais informações sobre carga de banco de dados, consulte [Carga de banco de dados](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.ActiveSessions.html) no *Guia do usuário do Amazon RDS* ou [Carga de banco de dados](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PerfInsights.Overview.ActiveSessions.html) no *Guia do usuário do Amazon Aurora*.

Use o gráfico de **carga do banco de dados** para visualizar a carga de banco de dados dividida (agrupada) pelas dimensões a seguir para todos os mecanismos de banco de dados compatíveis.
+ Objeto de bloqueio (somente para [mecanismos de banco de dados compatíveis com análise de bloqueio](Database-Insights-Lock-Analysis.md))
+ Sessão de bloqueio (somente para [mecanismos de banco de dados compatíveis com análise de bloqueio](Database-Insights-Lock-Analysis.md))
+ Bloqueio de SQL (somente para [mecanismos de banco de dados compatíveis com análise de bloqueio](Database-Insights-Lock-Analysis.md))
+ Banco de dados
+ Host
+ SQL
+ Usuário
+ Espera
+ Aplicação (somente para o Amazon Aurora PostgreSQL)
+ Planos (somente para [mecanismos de banco de dados compatíveis com captura do plano de execução](Database-Insights-Execution-Plans.md))
+ Tipo de sessão (somente para o Amazon Aurora PostgreSQL)

**nota**  
Para obter informações sobre como analisar a carga de PDBs da Oracle no Amazon RDS, consulte [Analisar a carga superior de PDBs da Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.TopPDB.html) no *Guia do usuário do Amazon RDS*.

![\[Carga de banco de dados no painel da instância de banco de dados\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/dbi_did-dbload.png)


Por padrão, o CloudWatch exibe a carga de banco de dados com um gráfico de barras. Escolha **Linha** para exibir a carga de banco de dados com um gráfico de linhas empilhadas.

![\[Gráfico de linhas para carga de banco de dados no painel de instância de banco de dados\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/dbi_did-dbload-line.png)


## Guia Análise de carga de banco de dados
<a name="Database-Insights-DB-load-analysis"></a>

Use a guia **Análise de carga de banco de dados** para monitorar os principais colaboradores da carga de banco de dados para cada uma das dimensões a seguir.
+ Banco de dados
+ Host
+ SQL
+ Usuário
+ Espera
+ Análise de bloqueio (somente para [mecanismos de banco de dados compatíveis com análise de bloqueio](Database-Insights-Lock-Analysis.md))
+ Aplicação (somente para o Amazon Aurora PostgreSQL)
+ Tipo de sessão (somente para o Amazon Aurora PostgreSQL)

![\[Painel mostrando a guia de análise da carga do banco de dados\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/dbi_lat.png)


## Analisar estatísticas de uma consulta
<a name="Database-Insights-sql-stats"></a>

Talvez você queira analisar as estatísticas de uma consulta com uma carga de banco de dados alta. Para analisar as estatísticas de uma consulta, use o procedimento a seguir.

**Para analisar as estatísticas de consultas**

1. Faça login no Console de gerenciamento da AWS e abra o console do CloudWatch em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Escolha **Insights**.

1. Escolha **Database Insights**.

1. Escolha a visualização **Instância de banco de dados**.

1. Escolha uma instância de banco de dados.

1. Escolha a guia **Top SQL** (SQL principal).

1. Para visualizar as estatísticas de uma consulta, escolha uma consulta.  
![\[A tabela exibida na guia SQL principal.\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/DBInsights_LoadTopSQL.png)

## Guia Telemetria do banco de dados
<a name="Database-Insights-database-telemetry"></a>

Use a guia **Telemetria de banco de dados** para visualizar as métricas, os logs, os eventos e as consultas lentas da instância selecionada.

### Seção de métricas da telemetria de banco de dados
<a name="Database-Insights-metrics-tel"></a>

A seção **Métricas** exibe um painel padrão de métricas personalizado para cada tipo de mecanismo.

Você pode personalizar esse painel adicionando métricas de sistema operacional, métricas de contador de banco de dados e métricas do CloudWatch a ele. Você também pode remover métricas do painel. É possível personalizar um painel para cada tipo de mecanismo em uma região na sua conta. Isso significa que todas as instâncias de um tipo específico de mecanismo nessa região na mesma conta terão o mesmo painel de métricas.

Os usuários que têm permissões de edição para seus painéis em sua conta podem editar qualquer painel para qualquer mecanismo.

As alterações feitas em um painel são salvas automaticamente e aplicadas a todas as instâncias do mecanismo de banco de dados nessa região e conta.

![\[Painel mostrando exemplos dos diferentes tipos de métricas de banco de dados.\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/dbi_dbmetrics.png)


**Para personalizar o painel na guia Telemetria de banco de dados para um tipo de mecanismo**

1. Faça login no Console de gerenciamento da AWS e abra o console do CloudWatch em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Escolha **Insights**, **Insights de banco de dados**.

1. Em **Visualizações do banco de dados**, escolha **Instância de banco de dados**.

1. Na seção **Filtros**, localize e escolha a instância do banco de dados para a qual deseja visualizar as métricas. 

1. Escolha a guia **Telemetria de banco de dados** e, em seguida, escolha a guia **Métricas**.

   O painel padrão da instância do banco de dados será exibido. 

1. Para adicionar um widget ao painel, faça o seguinte:

   1. Selecione **Criar widget**.

   1. Na janela pop-up de **Criar widget**, encontre a métrica ou as métricas que deseja adicionar e marque a caixa de seleção de cada uma. Se você selecionar várias métricas nessa etapa, todas elas aparecerão no mesmo novo widget no painel. Em seguida, selecione **Criar widget**.

      Lembre-se de que todas as alterações feitas nesse painel serão aplicadas a todos os painéis do Insights de banco de dados para esse tipo de mecanismo nesta região da conta.

1. Para excluir um gráfico do painel, escolha as reticências verticais no widget e, em seguida, escolha **Excluir**.

1. Para adicionar mais métricas a um widget existente no painel ou alterar seu título, escolha as reticências verticais no widget e escolha **Editar**. Em seguida, no pop-up **Atualizar widget**, encontre a métrica ou métricas que deseja adicionar, marque as caixas de seleção e escolha **Atualizar widget**. Você também pode alterar o título do widget.

1. Após personalizar um painel, você poderá redefini-lo para seu estado padrão original escolhendo **Redefinir painel**.

### Seção de logs da telemetria de banco de dados
<a name="Database-Insights-logs-tel"></a>

A seção **Logs** fornece uma visualização dos logs do banco de dados exportados para o CloudWatch Logs da instância de banco de dados selecionada. 

![\[Telemetria de banco de dados no painel de instâncias de banco de dados\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/dbi_did-telemetry-logs.png)


Para obter informações sobre como publicar logs no CloudWatch Logs do Amazon RDS, consulte [Publicação de logs de banco de dados no Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.Procedural.UploadtoCloudWatch.html) no *Guia do usuário do Amazon RDS*. Para obter informações sobre como publicar logs no CloudWatch Logs para o Amazon Aurora, consulte [Publicação de logs de banco de dados no Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.Procedural.UploadtoCloudWatch.html) no *Guia do usuário do Amazon Aurora*.

Para o Aurora PostgreSQL Limitless Databases, os logs são publicados automaticamente no CloudWatch Logs e podem ser descobertos no console do Database Insights.

### Processamento de dados para telemetria de banco de dados por sistemas operacionais
<a name="Database-Insights-OS-processes"></a>

Você pode usar a guia **Processos do SO** dentro da guia **Telemetria do banco de dados** para visualizar as métricas do sistema operacional (SO) no qual sua instância de banco de dados é executada. As métricas fornecem um instantâneo dos processos do SO em execução em seus bancos de dados para um determinado timestamp, bem como métricas importantes, como utilização de memória e CPU para cada processo em execução. O Database Insights correlaciona essas métricas com as métricas em seu gráfico de carga do banco de dados. Assim, se você escolher um ponto de dados no gráfico de carga do banco de dados, os dados dos processos do SO serão atualizados para exibir a telemetria do mesmo timestamp.

Quando você escolhe um ponto de dados, o Database Insights seleciona automaticamente o período a ser exibido, dependendo do intervalo de tempo escolhido para a página geral. O período mais antigo que você pode acessar depende do tempo de retenção que você configurou para o grupo de logs `RDSOSMetrics`.

Se você não escolheu um timestamp, por padrão a tabela é preenchida com telemetria para o timestamp mais recente.

**nota**  
As informações do processo do sistema operacional estarão disponíveis somente se o [Monitoramento avançado do Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PerfInsights_Counters.html) estiver habilitado. O Monitoramento avançado gera cobranças adicionais. Para obter mais informações, consulte [Custo do monitoramento avançado](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Monitoring.OS.html#USER_Monitoring.OS.cost). O Enhanced Monitoring é habilitado automaticamente para Aurora PostgreSQL Limitless Databases.

![\[Tabela Eventos\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/dbinsights-osprocesses.png)


Na visualização **Processos do sistema operacional**, os seguintes dados são exibidos para cada processo:
+ **ID do processo**: o ID desse processo.
+ **Memória virtual**: a quantidade de memória virtual alocada ao processo, em Kibibytes.
+ **Endereço residual**: a memória física real que está sendo usada pelo processo.
+ **CPU%**: a porcentagem da largura de banda total da CPU que está sendo usada pelo processo.
+ **Memória %**: a porcentagem da memória total que está sendo consumida pelo processo.
+ **Limite de VM**: a quantidade máxima de memória virtual que pode ser alocada para o processo.

  Se o valor nessa coluna for 0, os limites de VM não serão aplicáveis a esse processo.

Os dados de monitoramento exibidos são recuperados do Amazon CloudWatch Logs. Essas métricas também podem ser recuperadas diretamente do fluxo de logs no CloudWatch Logs. Para obter mais informações, consulte [Visualizar métricas do sistema operacional usando o CloudWatch Logs](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.CloudWatchLogs.html).

As métricas de processos do sistema operacional não são retornadas nas seguintes condições: 
+ Um failover da instância de banco de dados.
+ Alteração da classe de instância da instância do banco de dados (computação em escala).

As métricas dos processos do sistema operacional são retornadas durante a reinicialização de uma instância de banco de dados porque somente o mecanismo do banco de dados é reinicializado. Métricas para o sistema operacional ainda serão informadas.

### Seção de consultas SQL lentas da telemetria de banco de dados
<a name="Database-Insights-slow-sql-tel"></a>

Para visualizar consultas SQL e padrões de consulta lentos, você deve habilitar as exportações de logs para o CloudWatch Logs e configurar parâmetros de banco de dados para seu banco de dados. 

Para obter informações sobre como publicar logs do Amazon RDS no CloudWatch Logs, consulte [Publicação de logs de banco de dados no Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.Procedural.UploadtoCloudWatch.html) no *Guia do usuário do Amazon RDS*.

Para obter informações sobre como publicar logs do Aurora no CloudWatch Logs, consulte [Publicação de logs de banco de dados no Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.Procedural.UploadtoCloudWatch.html) no *Guia do usuário do Amazon Aurora*.

Para obter informações sobre como configurar parâmetros de banco de dados para seu banco de dados no Amazon RDS, consulte [Configuração do banco de dados para monitorar consultas SQL lentas com o Database Insights para Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DatabaseInsights.SlowSQL.html) no *Guia do usuário do Amazon RDS*.

Para obter informações sobre como configurar parâmetros de banco de dados para seu banco de dados no Amazon Aurora, consulte [Configuração do banco de dados para monitorar consultas SQL lentas com o Database Insights para Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_DatabaseInsights.SlowSQL.html) no *Guia do usuário do Amazon Aurora*.

A seção **Consultas SQL lentas** fornece uma lista de padrões de consultas lentas classificados por frequência. Ao selecionar um padrão, você pode visualizar uma lista de consultas lentas que correspondem ao padrão selecionado. Você pode usar a lista de consultas lentas para identificar as consultas lentas que estão afetando a instância de banco de dados. 

O Database Insights exibe as estatísticas de consultas lentas. As estatísticas representam somente consultas que excedem o limite configurado de duração de consultas lentas.

![\[Exibe detalhes sobre um exemplo de uma consulta SQL lenta\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/dbi_slowsql.png)


**Importante**  
As consultas lentas podem conter dados confidenciais. Mascare os dados confidenciais com o CloudWatch Logs. Para obter mais informações sobre mascaramento de dados de logs, consulte [Help protect sensitive log data with masking](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html) no *Guia do usuário do Amazon CloudWatch Logs*.

### Tabela Eventos
<a name="Database-Insights-events-tel"></a>

Use a tabela **Eventos** para visualizar eventos do RDS da instância de banco de dados. Para obter uma lista de eventos do Amazon Aurora, consulte [Categorias de eventos e mensagens de eventos do Amazon RDS para o Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Events.Messages.html) no *Guia do usuário do Amazon Aurora*. Para obter uma lista de eventos do Amazon Relational Database Service, consulte [Categorias de eventos e mensagens de eventos do Amazon RDS para o Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Events.Messages.html) no *Guia do usuário do Amazon RDS*.

![\[Tabela Eventos\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/dbi_did-events.png)


## Guia Chamar serviços
<a name="Database-Insights-calling"></a>

O Database Insights mostra os serviços e operações que estão chamando a instância. O Database Insights se integra ao CloudWatch Application Signals para fornecer métricas para cada serviço e operação, incluindo disponibilidade, latência, erros e volume.

Quando o endpoint chamado pela aplicação for um cluster do Aurora, o Database Insights mostrará o endpoint do gravador ou do leitor do cluster do Aurora na tabela **Serviços de chamada**, não a instância individual do banco de dados. No entanto, quando o endpoint chamado pela aplicação for um cluster do Amazon RDS, o Database Insights mostrará a instância específica do banco de dados que a aplicação está chamando no cluster do Amazon RDS.

![\[Guia Chamar serviços\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/dbi_did-calling.png)


## Analisar a performance do banco de dados sob demanda com o CloudWatch Database Insights
<a name="Database-Insights-On-demand-Analysis"></a>

Analise a performance do banco de dados com análises sob demanda dos bancos de dados do Amazon RDS com o CloudWatch Database Insights.

Você pode executar uma análise de performance sob demanda selecionando **Analisar performance** no canto superior direito do gráfico **Carga do banco de dados**. O relatório será executado para o período selecionado. Use a guia **Análise de performance** para visualizar relatórios de análise de performance dos bancos de dados na frota.

![\[Guia Análise de performance\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/dbi_dl-perfanalysis.png)


Para obter informações sobre relatórios de análise de performance do Amazon Aurora, consulte [Analisar a performance do banco de dados por um período](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PerfInsights.UsingDashboard.AnalyzePerformanceTimePeriod.html) no *Guia do usuário do Amazon Aurora*.

## Integrar o CloudWatch Database Insights com o CloudWatch Application Signals
<a name="Database-Insights-Integration-Application-Signals"></a>

Integre o CloudWatch Database Insights com o CloudWatch Application Signals.

Use a guia **Serviços de chamada** para visualizar os serviços e as operações do CloudWatch Application Signals que chamaram um endpoint da instância selecionada. Por padrão, o CloudWatch classifica a tabela por taxa de falhas. Escolha valores nas colunas **Serviços**, **Operações** ou **Endereço de endpoint** para visualizar o recurso correspondente no console do CloudWatch Application Signals.

Para obter mais informações sobre sistemas compatíveis com o CloudWatch Application Signals, consulte [Sistemas compatíveis](CloudWatch-Application-Signals-supportmatrix.md).

# Análise de árvores de bloqueio para o Amazon Aurora PostgreSQL e Amazon RDS para PostgreSQL com o CloudWatch Database Insights
<a name="Database-Insights-Lock-Analysis"></a>

Para solucionar problemas de performance causados por bloqueios, é possível analisar árvores de bloqueio para os bancos de dados Amazon Aurora PostgreSQL e Amazon RDS para PostgreSQL com o CloudWatch Database Insights usando as opções a seguir.
+ Menu suspenso **Dividido por**: escolha as dimensões **Objeto de bloqueio**, **Sessão de bloqueio** ou **SQL de bloqueio** no gráfico **Carga do banco de dados** para ver como os principais bloqueadores diferentes contribuem para a carga do banco de dados ao longo do tempo. Com o gráfico de carga do banco de dados, é possível analisar se os principais bloqueadores são constantes ou mudam com frequência. Em seguida, avance para o processo de solução de problemas dos bloqueadores.  
![\[A tabela SQL principal com uma sessão de bloqueio selecionada no menu suspenso Dividido por\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/DBInsights_TopSQLBlocking.png)
+ Guia **Análise de bloqueio**: escolha **Análise de carga do banco de dados** e depois a guia **Análise de bloqueio** para visualizar informações sobre a contenção de bloqueios no banco de dados.  
![\[A tabela Árvores de bloqueio no painel de carga do banco de dados\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/DBInsights_LoadLockAnalysis.png)

**nota**  
O CloudWatch Database Insights é compatível com a análise de bloqueio para todas as versões do Aurora PostgreSQL. Para analisar árvores de bloqueio, você deve ter o modo Avançado do Database Insights habilitado. Para obter informações sobre como ativar o modo Avançado, consulte [Ativação do modo Avançado do Database Insights para Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_DatabaseInsights.TurningOnAdvanced.html) e [Turning on the Advanced mode of Database Insights for Amazon Relational Database Service](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DatabaseInsights.TurningOnAdvanced.html).

A guia de análise de bloqueios fornece informações sobre a contenção de bloqueios para seu banco de dados. A visualização da árvore de bloqueio mostra os relacionamentos e dependências entre as solicitações de bloqueio de diferentes sessões.

O Database Insights captura snapshots a cada 15 segundos. Os snapshots mostram os dados de bloqueio do seu banco de dados em um determinado momento.

**nota**  
Quando o CloudWatch detecta um alto nível de bloqueio, ele exibe o banner **Alto bloqueio detectado** para a guia **Análise de bloqueio**. O CloudWatch detectará um alto nível de bloqueio se capturar um snapshot de bloqueio para cada intervalo de 15 segundos por 15 minutos consecutivos.

Cada nó na árvore representa uma sessão específica. O nó pai é uma sessão que está bloqueando seus nós filhos.

Para analisar árvores de bloqueio, use o procedimento a seguir.

**Para analisar árvores de bloqueio**

1. Faça login no Console de gerenciamento da AWS e abra o console do CloudWatch em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Escolha **Insights**.

1. Escolha **Database Insights**.

1. Escolha a visualização **Instância de banco de dados**.

1. Escolha uma instância de banco de dados.

1. Escolha a guia **Análise de carga do banco de dados**.

1. Escolha a guia **Análise de bloqueio**.

   Para visualizar os dados de bloqueio de uma instância de banco de dados, escolha um período de 1 dia ou menos.

1. Escolha uma janela de snapshot. Por padrão, o Database Insights escolhe a janela de snapshot com o maior número de sessões bloqueadas.  
![\[Tabela de análise de bloqueios\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/dbi_lock-analysis.png)

1. Para visualizar os dados de bloqueio de um snapshot, escolha a hora em que o Database Insights capturou o snapshot.

1. Para expandir uma árvore de bloqueio, escolha a seta ao lado do ID da sessão.  
![\[Árvore de bloqueio expandida\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/dbi_lock-analysis-expand.png)

## Dados de snapshot de bloqueio
<a name="Database-Insights-Lock-Analysis-snapshot-data"></a>

O Database Insights fornece as seguintes informações para cada solicitação de bloqueio. Para ver as colunas que não estão habilitadas por padrão, escolha o ícone **Configurações** da tabela **Árvores de bloqueio** e habilite outras colunas.


| Nome da coluna | Definição  | Padrão de coluna | Observações | 
| --- | --- | --- | --- | 
|  `session_id`  | O identificador exclusivo da sessão. |  Sim  | O `session_id` é derivado de `HEX(pg_stat_activity.backend_start).HEX(pg_locks.pid)`. | 
|  `pid`  | O PID deste backend. |  Sim  | `pg_locks.pid` | 
|  `blocked_sessions_count`  | O número de sessões bloqueadas por este bloqueio. |  Sim  | O `blocked_sessions_count` é derivado do número de IDs de sessão bloqueados por este bloqueio. | 
|  `last_query_executed`  | A última consulta executada por esta sessão. Para bloqueadores, não pode ser a consulta que mantém o bloqueio ativo. |  Sim  | `pg_stat_activity.query` | 
|  `wait_event`  | O nome do evento de espera se o backend estiver aguardando no momento; caso contrário, o valor será NULL. |  Sim  | `pg_stat_activity.wait_event` | 
|  `blocking_time_(In Seconds)`  | O tempo (em segundos) desde o início deste bloqueio. |  Sim  | O `blocking_time_(In Seconds)` é derivado do horário de início da transação em espera (`pg_locks.waitstart`) para o primeiro aguardante. | 
|  `blocking_mode`  | O modo de bloqueio mantido pela sessão bloqueadora. |  Não  | `pg_locks.mode` | 
|  `waiting_mode`  | O modo de bloqueio solicitado pela sessão em espera. |  Não  | `pg_locks.mode` | 
|  `application`  | O nome da aplicação que está conectada a este backend. |  Não  | `pg_stat_activity.application_name` | 
|  `blocking_txn_start_time`  | A hora de início da transação de bloqueio ou null se nenhuma transação estiver ativa. |  Não  | `pg_stat_activity.xact_start` | 
|  `waiting_start_time`  | A hora em que uma sessão de usuário em espera começou a esperar por esse bloqueio, ou null se o bloqueio for mantido. |  Não  | `pg_locks.waitstart` | 
|  `session_start_time`  | A hora em que uma sessão de usuário foi iniciada. |  Não  | `pg_stat_activity.backend_start` | 
|  `state`  | O estado de um backend.  |  Não  | `pg_stat_activity.state` | 
|  `wait_event_type`  | O tipo de evento de espera pelo qual esta sessão está aguardando. |  Não  | `pg_stat_activity.wait_event_type` | 
|  `last_query_exec_time`  | O momento em que a última consulta foi iniciada. |  Não  | `pg_stat_activity.query_start` | 
|  `user`  | O nome do usuário conectado a esse backend. |  Não  | `pg_stat_activity.usename` | 
|  `host`  | O nome do host do cliente conectado, conforme relatado por uma pesquisa de DNS reversa de `client_addr`. Este campo só será não nulo para conexões IP e somente quando [log\$1hostname](https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-HOSTNAME) estiver habilitado. |  Não  | `pg_stat_activity.client_hostname` | 
|  `port`  | O número da porta TCP que o cliente está usando para comunicação com esse backend, ou `-1` se um socket Unix for usado. Se esse campo for nulo, isso indica que esse é um processo interno do servidor. |  Não  | `pg_stat_activity.client_port` | 
|  `client_address`  | O endereço IP do cliente conectado a esse backend. Quando o campo é nulo, indica que o cliente está conectado por meio de um socket Unix na máquina do servidor ou que esse é um processo interno, como autovacuum. |  Não  | `pg_stat_activity.client_addr` | 
|  `granted`  | O valor será verdadeiro se o bloqueio for mantido e falso se o bloqueio estiver sendo aguardado. |  Não  | `pg_locks.granted` | 
|  `waiting_tuple`  |  O número da tupla alvo do bloqueio dentro da página, ou nulo se o alvo não for uma tupla.  |  Não  | `pg_locks.tuple` | 
|  `waiting_page`  | O número da página alvo do bloqueio dentro da relação, ou nulo se o alvo não for uma página de relação ou tupla. |  Não  | `pg_locks.page` | 
|  `waiting_transaction_id`  | O ID da transação alvo do bloqueio, ou nulo se o alvo não for um ID de transação. |  Não  | `pg_locks.transactionid` | 
|  `waiting_relation`  | O OID da relação alvo do bloqueio, ou nulo se o alvo não for uma relação ou parte de uma relação. |  Não  | `pg_locks.relation` | 
|  `waiting_object_id`  | O OID do alvo do bloqueio em seu catálogo do sistema, ou nulo se o alvo não for um objeto geral do banco de dados. |  Não  | `pg_locks.objid` | 
|  `waiting_database_id`  | O OID do banco de dados no qual o alvo do bloqueio existe, zero se o alvo for um objeto compartilhado ou nulo se o alvo for um ID de transação. |  Não  | `pg_locks.database` | 
|  `waiting_database_name`  | O nome do banco de dados em que o alvo do bloqueio existe. |  Não  | `pg_stat_activity.datname` | 
|  `waiting_locktype`  | O tipo do objeto bloqueável: relation, extend, frozenid, page, tuple, transactionid, virtualxid, spectoken, object, userlock, advisory ou applytransaction. |  Não  | `pg_locks.locktype` | 
|  `is_fastpath`  | O valor será verdadeiro se o bloqueio foi obtido pelo caminho rápido e falso se obtido da tabela de bloqueio principal. |  Não  | `pg_locks.fastpath` | 

Para obter mais informações sobre os valores nas visualizações `pg_stat_activity` e `pg_locks`, consulte os tópicos a seguir na documentação do PostgreSQL.
+ [pg\$1locks](https://www.postgresql.org/docs/current/view-pg-locks.html)
+ [pg\$1stat\$1activity](https://www.postgresql.org/docs/current/monitoring-stats.html#MONITORING-PG-STAT-ACTIVITY-VIEW)

# Analisar os planos de execução com o CloudWatch Database Insights
<a name="Database-Insights-Execution-Plans"></a>

Você pode analisar planos de execução para os bancos de dados Amazon Aurora PostgreSQL, RDS para Microsoft SQL Server e RDS para Oracle usando os métodos a seguir.
+ Menu suspenso **Dividido por**: escolha a dimensão **Planos** no gráfico **Carga do banco de dados** para ver como diferentes planos contribuem para a carga do banco de dados ao longo do tempo.
+ Guia **Top SQL**: escolha **Análise de carga do banco de dados** e, em seguida, escolha a guia **Top SQL** para visualizar o número de planos para cada consulta resumida.

  Para analisar os planos de execução de uma consulta resumida, escolha a consulta e, em seguida, escolha a guia **Planos**. Para obter mais informações, consulte o seguinte procedimento.

## Pré-requisitos
<a name="Database-Insights-Execution-Plans-prereqs"></a>

Para analisar os planos de execução, você deve usar o modo Avançado do Database Insights. Para obter informações sobre como ativar o modo Avançado, consulte [Ativação do modo Avançado do Database Insights para Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_DatabaseInsights.TurningOnAdvanced.html) e [Turning on the Advanced mode of Database Insights for Amazon Relational Database Service](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DatabaseInsights.TurningOnAdvanced.html).

Caso esteja usando o Aurora PostgreSQL, você também terá os seguintes pré-requisitos:
+ Sua instância de banco de dados deve usar o Aurora PostgreSQL, versões 14.10, 15.5 e mais recentes. Para obter informações sobre como atualizar seu cluster de banco de dados Aurora PostgreSQL, consulte [Atualizar clusters de banco de dados Amazon Aurora PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_UpgradeDBInstance.PostgreSQL.html) no *Guia do usuário do Amazon Aurora*.
+ Você deve configurar o cluster do banco de dados para analisar planos de execução definindo o parâmetro `aurora_compute_plan_id` como `on` com uma das opções a seguir.
  + [Criar um grupo de parâmetros de cluster de banco de dados no Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.CreatingCluster.html) no *Guia do usuário do Amazon Aurora*
  + [Modificar parâmetros em um grupo de parâmetros de cluster de banco de dados no Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.ModifyingCluster.html) no *Guia do usuário do Amazon Aurora*

## Analisar planos de execução
<a name="Database-Insights-Execution-Plans-analyze"></a>

Para analisar planos de execução, use o procedimento a seguir.

**Para analisar planos de execução**

1. Faça login no Console de gerenciamento da AWS e abra o console do CloudWatch em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Escolha **Insights**.

1. Escolha **Database Insights**.

1. Escolha a visualização **Instância de banco de dados**.

1. Escolha uma instância de banco de dados.

1. Escolha a guia **Top SQL** (SQL principal). A coluna **Contagem de planos** mostra o número de planos coletados para cada consulta resumida.

1. (Opcional) Se a coluna **Contagem de planos** não aparecer, escolha o ícone de **Configurações** na tabela **SQL principal** para personalizar a visibilidade e a ordem das colunas.  
![\[Configurações da tabela de detalhes do plano\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/DBInsights2.png)

1. Escolha uma consulta de resumo para expandi-la em suas instruções de componentes.  
![\[Expandir uma consulta em suas instruções componentes\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/dbi_did-dbload-expand.png)

1. Role para baixo e visualize o texto SQL. Em seguida, escolha a guia **Planos**.

   Por padrão, o CloudWatch exibe o plano de execução estimado. Para o Aurora PostgreSQL, a fim de visualizar os planos de execução reais, habilite o parâmetro `aurora_stat_plans.with_analyze` para sua instância de banco de dados. Para obter mais informações sobre o parâmetro `aurora_stat_plans.with_analyze`, consulte [Monitorar planos de execução de consultas e pico de memória do Aurora PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Monitoring.Query.Plans.html#aurora.with_analyze) no *Guia do usuário do Amazon Aurora*.

1. Para comparar planos da mesma consulta resumida, escolha dois **Planos** na lista **Planos para consulta resumida**.

   Você pode visualizar um ou dois planos para uma consulta por vez. No exemplo de captura de tela a seguir, ambos os planos são para o Aurora PostgreSQL.   
![\[Comparar planos\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/dbi_did-plans.png)

1. Você também pode ver como cada plano contribui para o DBLoad ao longo do tempo escolhendo **Planos** no menu suspenso **Dividir por** no gráfico do DBLoad.  
![\[Database load chart showing active sessions over time with plans contribution highlighted.\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/DBInsights_OverTime.png)

# Monitoramento de bancos de dados do Aurora Limitless por meio do Database Insights
<a name="database-insights-limitless"></a>

O Database Insights é compatível com o monitoramento de [Bancos de Dados Aurora PostgreSQL Limitless](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_DatabaseInsights.Engines.html) nos níveis da instância e da frota. Os Bancos de Dados Aurora PostgreSQL Limitless podem ser encontrados no painel de instâncias de bancos de dados e no painel de integridade de frotas.

O Aurora PostgreSQL Limitless Databases usa *grupos de fragmentos*. Cada grupo de fragmentos é composto por diversas instâncias de banco de dados que atuam em conjunto no processamento de workloads distribuídas. O Database Insights auxilia na compreensão da distribuição de carga entre as instâncias dentro de um grupo de fragmentos.

No painel de integridade de frotas, o Database Insights fornece monitoramento de seus grupos de fragmentos Limitless junto com o restante dos bancos de dados que compõem suas frotas de bancos de dados. Você pode obter uma visão opinativa da integridade e da utilização da carga de banco de dados para seus grupos de fragmentos Limitless da mesma forma que faz com outros bancos de dados de frotas. No painel de instâncias, o Database Insights oferece monitoramento tanto no nível do grupo de fragmentos quanto para instâncias individuais presentes no grupo. O Database Insights fornece uma nova visualização por grupo de fragmentos em que você pode ver a carga do banco de dados distribuída entre as instâncias no grupo de fragmentos. A partir desse ponto, é possível navegar até o painel de uma instância específica dentro do grupo de fragmentos.

## Recursos disponíveis para o Aurora Limitless
<a name="database-insights-limitless-features"></a>

A tabela a seguir exibe os recursos disponíveis para bancos de dados Aurora PostgreSQL Limitless. É especificado se cada recurso é compatível com os modos de monitoramento Padrão e Avançado, e se estão disponíveis no nível do grupo de fragmentos, no nível da instância ou se estão disponíveis na frota ou no painel de instâncias do Database Insights.


| Recurso | Standard | Advanced (Avançado) | ShardGroup | Instância | Painel do Database Insights | 
| --- | --- | --- | --- | --- | --- | 
| Analisar os principais contribuidores para o carregamento de banco de dados por dimensão | Compatível | Compatível | Sim | Sim | Instância | 
| Consultar, criar gráficos e definir alarmes nas métricas do banco de dados com até sete dias de retenção | Compatível | Compatível | Sim | Sim | Instância | 
| Definir políticas de controle de acesso refinadas para restringir o acesso a dimensões possivelmente sigilosas, como texto em SQL | Compatível | Compatível | Sim | Sim | Instância | 
| Uso do componente Distribuição de carga para a análise da distribuição de carga entre instâncias dentro do mesmo grupo de fragmentos | Compatível | Compatível | Sim | Não | Instância | 
|  Analise os processos do sistema operacional que ocorrem em seus bancos de dados com métricas detalhadas por processo em execução O [Monitoramento aprimorado do Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PerfInsights_Counters.html) é necessário para que esse recurso funcione.  | Não compatível | Compatível | Não | Sim | Instância | 
| Criar e salvar visualizações de monitoramento de toda a frota para avaliar a integridade em centenas de bancos de dados | Não compatível | Compatível | Sim | Não | Frota | 
| Analise bloqueios de SQL com 15 meses de retenção e uma experiência do usuário guiada | Não suportado | Sem compatibilidade | Não | Não | Instância | 
| Analise os planos de execução do SQL com 15 meses de retenção e experiência do usuário guiada | Não suportado | Sem compatibilidade | Não | Não | Instância | 
| Visualizar estatísticas por consulta | Não compatível | Compatível | Não | Sim | Instância | 
| Analisar consultas SQL lentas A exportação de logs do banco de dados para o CloudWatch Logs é necessária para que esse recurso funcione. | Não compatível | Compatível | Não | Sim | Instância | 
| Visualizar os serviços de chamadas com o CloudWatch Application Signals | Não compatível | Compatível | Sim | Não | Ambos | 
| Visualizar um painel consolidado para toda a telemetria do banco de dados, incluindo métricas, logs, eventos e aplicaçõesA exportação de logs do banco de dados para o CloudWatch Logs é necessária para visualizar os logs do banco de dados no console do Database Insights. | Não compatível | Compatível | Não | Sim | Instância | 
| Importar métricas de contadores do Insights de Performance para o CloudWatch automaticamente | Não compatível | Compatível | N/D | N/D | Instância | 
| Visualizar eventos do Amazon RDS no CloudWatch | Não compatível | Compatível | Sim | Não | Ambos | 
| Analisar a performance do banco de dados por um período de sua escolha com análise sob demanda | Não suportado | Sem compatibilidade | Não | Não | Instância | 

**nota**  
O Enhanced Monitoring é habilitado automaticamente para Aurora PostgreSQL Limitless Databases. O Monitoramento avançado gera cobranças adicionais. Para obter mais informações, consulte [Custo do monitoramento avançado](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Monitoring.OS.html#USER_Monitoring.OS.cost).   
Para o Aurora PostgreSQL Limitless Databases, os logs são publicados automaticamente no CloudWatch Logs e podem ser descobertos no console do Database Insights. Isso gera cobranças adicionais, de acordo com os preços padrão do CloudWatch Logs. Para obter detalhes sobre como o CloudWatch Logs e o Database Insights são precificados e exemplos de preços, consulte [Definição de preço do Amazon CloudWatch](https://aws.amazon.com/cloudwatch/pricing/?nc1=h_ls).

## Monitoramento de grupos de fragmentos do Aurora Limitless no painel de integridade de frotas
<a name="database-insights-limitless-fleet"></a>

 O Database Insights é compatível com o monitoramento de grupos de fragmentos do Aurora Limitless no painel de integridade de frotas.

Nessa visualização, você pode ver seus grupos de fragmentos Limitless ao lado de outros bancos de dados que compõem suas frotas de banco de dados. O painel de integridade de frotas fornece uma visão opinativa da integridade e da utilização da carga de banco de dados para seus grupos de fragmentos Limitless, semelhante à forma como ele apresenta informações de outros bancos de dados na frota. 

![\[Painel de integridade de frotas do Database Insights. O painel principal mostra uma grade hexagonal representando instâncias do banco de dados, com um destaque para “shardgroup2”. Ele exibe a utilização da carga de banco de dados para roteadores e fragmentos. O canto superior direito mostra um gráfico das “Dez principais instâncias por utilização de carga de banco de dados” ao longo do tempo. Confira abaixo os detalhes de “db-microsoftsqlserver-enterprise-1-dbi-advanced”, incluindo as principais consultas e eventos de espera. As seções inferiores não mostram nenhum evento crítico nem serviço de chamada. A barra lateral esquerda indica um total de 44 instâncias, com duas em estado de alarme, e uma utilização média da carga de banco de dados de 25,1%.\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/dbi_fhd.png)


 Ao visualizar os bancos de dados Aurora Limitless no painel de integridade de frotas: 
+ Somente grupos de fragmentos são visíveis, não instâncias individuais
+ Os grupos de fragmentos aparecem nos seguintes widgets:
  + O gráfico de colmeia
  + Os dez melhores por carga de banco de dados
  + Eventos
  + Serviços de chamada
  + A lista de tabelas
+ A utilização da carga de banco de dados é fornecida tanto para roteadores quanto para fragmentos

Essa visão em nível de frota permite monitorar e comparar a performance de seus grupos de fragmentos do Aurora Limitless com outros bancos de dados em sua frota, fornecendo uma visão geral abrangente de toda a sua frota de bancos de dados.

![\[Painel do Database Insights mostrando uma lista de instâncias do banco de dados. A tabela mostra sete instâncias com seu identificador de banco de dados, o estado do alarme, o tipo de mecanismo, a utilização da carga do banco de dados, a última atualização de estado e a versão do banco de dados. Os mecanismos incluem PostgreSQL, SQL Server Enterprise, Oracle Standard, Aurora MySQL e Aurora PostgreSQL. A instância do SQL Server tem a carga mais alta em 25,21%. Duas instâncias do Aurora PostgreSQL são rotuladas como “Limitless” e mostram uma utilização separada para fragmentos e roteadores. A interface inclui opções para filtrar, classificar e visualizar detalhes adicionais.\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/dbi_fhd-limitless-list-view.png)


## Monitoramento de bancos de dados Aurora PostgreSQL Limitless no painel de instâncias
<a name="database-insights-limitless-monitor"></a>

O comportamento do Database Insights para o Aurora PostgreSQL Limitless Database é similar ao observado em clusters padrão do banco de dados do Aurora. No entanto, você monitora métricas no nível do grupo de fragmentos para o Aurora PostgreSQL Limitless Database. As duas principais métricas a serem monitoradas são:
+ **Carga do banco de dados**: mede o nível de atividade no seu banco de dados. A métrica principal é o `DBLoad`, que é coletada a cada segundo. A unidade para a métrica `DBLoad` é a média de sessões ativas (AAS, na sigla em inglês). Para obter a média de sessões ativas, o Database Insights coleta amostras do número de sessões que estão executando uma consulta simultaneamente. A AAS é o número total de sessões, dividido pelo número total de amostras por um determinado período.
+ **CPU máxima**: corresponde à capacidade computacional máxima disponível para seu banco de dados. Para ver se as sessões ativas estão excedendo o máximo de CPU, observe sua relação com a linha `Max vCPU`. O valor de `Max vCPU` é determinado pelo número de núcleos de vCPU (CPUs virtuais) da instância de banco de dados.

Você também pode “dividir” a métrica `DBLoad` em dimensões, que correspondem a subcategorias da métrica. As dimensões mais úteis são as seguintes:
+ **Principais instâncias**: essa subcategoria mostra a carga relativa do banco de dados para suas instâncias (fragmentos e roteadores) em ordem decrescente.
+ **Eventos de espera**: essa subcategoria faz com que instruções SQL aguardem a ocorrência de eventos específicos antes que possam continuar a execução. Eventos de espera indicam onde o trabalho está impedido.
+ **Principais consultas SQL**: essa subcategoria mostra quais consultas contribuem mais para a carga do banco de dados.

![\[Painel do Database Insights mostrando métricas de performance do banco de dados. A seção superior exibe um grafo de linhas rastreando a atividade do banco de dados das 12:00 às 14:45 em 14 de julho. Confira abaixo a guia Análise de carga de banco de dados que mostra uma visualização das “Principais instâncias” listando quatro instâncias de banco de dados (DTR-3-757, DTR-2-903, DAS-4-112 e DAS-5-992) com suas métricas de utilização de carga, todas mostrando valores menores que 0,01 AAS (média de sessões ativas). A interface inclui opções para estados de alarme, filtros e várias visualizações de análise.\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/dbi_limitless-top-instances.png)


## Análise da carga do banco de dados para o Aurora PostgreSQL Limitless Database com o Database Insights
<a name="database-insights-limitless-dbload"></a>

Com o Database Insights, você pode rastrear métricas no nível do grupo de fragmentos e no nível da instância para um Aurora PostgreSQL Limitless Database. Ao analisar a carga de banco de dados do Aurora PostgreSQL Limitless Database, talvez você queira comparar a carga de banco de dados de cada fragmento e roteador com a vCPU máxima.

A visualização Absoluto mostra o número da Média de sessões ativas (AAS) e a vCPU estimada. A visualização Relativo mostra a proporção de AAS em relação à vCPU estimada.

![\[Painel do Database Insights mostrando a distribuição da carga do banco de dados para um cluster shardgroup1 do Aurora PostgreSQL. A interface exibe um grafo de séries temporais da média de sessões ativas (AAS) e um gráfico circular mostrando a distribuição da carga em cinco instâncias do banco de dados. O gráfico circular indica um total de 261 AAS com porcentagens divididas entre as instâncias DTR-2-103, DTR-3-650, DAS-4-659, DAS-5-784 e DAS-6-336. O painel inclui filtros, estados de alarme e opções de telemetria de banco de dados.\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/dbi_limitless-doughnut.png)


### Análise da carga relativa do banco de dados usando o painel do Database Insights
<a name="analyzing-relative-db-load"></a>

Talvez você queira melhorar o desempenho do Aurora PostgreSQL Limitless Database monitorando a carga relativa de banco de dados. Para analisar a carga relativa de banco de dados por instância do Aurora PostgreSQL Limitless Database, use o procedimento a seguir.

**Como analisar a carga relativa do banco de dados usando o console**

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

1. No painel de navegação, escolha Database Insights.

1. Escolha um Aurora PostgreSQL Limitless Database. O painel Database Insights será exibido para o Aurora PostgreSQL Limitless Database.

1. Na seção Carga do banco de dados (DB load), escolha *Instâncias* para *Dividido por*. Para ver a proporção entre a Média de sessões ativas (AAS) e os núcleos de vCPU de todas as instâncias no Aurora PostgreSQL Limitless Database, escolha *Relativo* em *Visto como*.

   O gráfico Média de sessões ativas mostra a carga do banco de dados para instâncias no seu Aurora PostgreSQL Limitless Database.

1. Para ver as principais instâncias, escolha a guia *Principais instâncias*.

1. (Opcional) Para analisar a carga de banco de dados de uma instância no Aurora PostgreSQL Limitless Database, escolha o nome da instância na coluna *Instâncias*. 

### Análise da carga do banco de dados por esperas usando o painel do Database Insights
<a name="analyzing-db-load-waits"></a>

Talvez você queira melhorar o desempenho do Aurora PostgreSQL Limitless Database monitorando eventos de espera. Para analisar a carga do banco de dados por eventos de espera do Aurora PostgreSQL Limitless Database, use o procedimento a seguir.

**Como analisar a carga do banco de dados por esperas do Aurora PostgreSQL Limitless Database usando o console**

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

1. No painel de navegação, escolha Database Insights.

1. Escolha um Aurora PostgreSQL Limitless Database. O painel Database Insights será exibido para o Aurora PostgreSQL Limitless Database.

1. Na seção Carga do banco de dados (DB load), escolha *Esperas* para *Dividido por*. Para visualizar o número de AAS e a vCPU estimada, escolha *Absoluto* para *Visualizado como*.

   O gráfico Média de sessões ativas (AAS) mostra a carga do banco de dados para instâncias no Aurora PostgreSQL Limitless Database.

1. Role para baixo até a guia *Top SQL * (SQL principal).

1. Escolha a instrução SQL para expandi-la nas instruções de componente.

### Análise da distribuição de carga usando o painel do Database Insights
<a name="analyzing-db-load-distribution"></a>

Talvez você queira equilibrar a distribuição de carga das instâncias no Aurora PostgreSQL Limitless Database. Para analisar a distribuição de carga das instâncias no Aurora PostgreSQL Limitless Database, use o procedimento a seguir.

**Como analisar a distribuição de carga das instâncias no Aurora PostgreSQL Limitless Database usando o console**

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

1. No painel de navegação, escolha Database Insights.

1. Escolha um Aurora PostgreSQL Limitless Database. O painel Database Insights será exibido para o Aurora PostgreSQL Limitless Database.

1. Na seção Carga do banco de dados (DB load), escolha *Instâncias* para *Dividido por*. Para visualizar o número de AAS e a vCPU estimada para todas as instâncias no Aurora PostgreSQL Limitless Database, escolha *Absoluto* em *Visto como*.

   O gráfico Média de sessões ativas (AAS) mostra a carga do banco de dados para instâncias no Aurora PostgreSQL Limitless Database.

1. Para ver um gráfico da distribuição de carga das instâncias no Aurora PostgreSQL Limitless Database, escolha a guia *Distribuição de carga*.

# Solução de problemas do CloudWatch Database Insights
<a name="Database-Insights-Troubleshooting"></a>

Use as informações a seguir para solucionar problemas do CloudWatch Database Insights.

## Aplicar tags aos recursos do Amazon RDS
<a name="Database-Insights-Troubleshooting-tags"></a>

Para aplicar tags aos bancos de dados, use a API do Amazon RDS, a AWS CLI ou o console do Amazon RDS. Para obter mais informações, consulte os tópicos a seguir.
+ [AddTagsToResource](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_AddTagsToResource.html) na *referência de APIs do Amazon RDS*
+ [add-tags-to-resource](https://docs.aws.amazon.com/cli/latest/reference/rds/add-tags-to-resource.html) na *referência de linhas de comandos do Amazon RDS*
+ [Marcar recursos do Amazon Aurora e do Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) no *Guia do usuário do Amazon Aurora*

## Máximo de instâncias de banco de dados para frotas
<a name="Database-Insights-Troubleshooting-fleet-limit"></a>

Você não pode monitorar mais de 500 instâncias de banco de dados em uma frota de banco de dados. Você pode usar filtros para criar uma visualização da integridade da frota com menos de 500 instâncias de banco de dados.

# Usar o Contributor Insights para analisar dados de alta cardinalidade
<a name="ContributorInsights"></a>

Você pode usar o Contributor Insights para analisar os dados de logs e criar séries temporais que exibem dados de colaboradores. É possível ver métricas sobre os principais colaboradores, o número total de colaboradores exclusivos e o uso deles. Isso ajuda a entender quem ou o que está afetando a performance do sistema e a localizar os principais talkers. Por exemplo, é possível encontrar hosts incorretos, identificar os usuários de rede mais pesados ou localizar os URLs que geraram mais erros.

Você pode criar suas regras do zero e, ao usar o Console de gerenciamento da AWS, também pode utilizar as regras de exemplo criadas pela AWS. As regras definem os campos de logs que você deseja usar para definir os colaboradores, como o `IpAddress`. Também é possível filtrar os dados de log para localizar e analisar o comportamento de colaboradores individuais.

O CloudWatch também fornece regras integradas que podem ser usadas para analisar métricas de outros produtos da AWS.

Todas as regras analisam dados de entrada em tempo real.

Se você fez login em uma conta configurada como uma conta de monitoramento na observabilidade entre contas do CloudWatch, poderá criar regras do Contributor Insights na conta de monitoramento que analisem os grupos de logs nas contas de origem e na conta de monitoramento. Você também pode criar uma única regra que analise os grupos de logs em várias contas. Para obter mais informações, consulte [Observabilidade entre contas do CloudWatch](CloudWatch-Unified-Cross-Account.md).

Com o Contributor Insights, você receberá uma cobrança por cada ocorrência de um evento de log que corresponda a uma regra. Para obter mais informações, consulte [Preços do Amazon CloudWatch](https://aws.amazon.com/cloudwatch/pricing/).

**nota**  
O Contributor Insights só pode fazer a correspondência com as entradas de log quando os valores numéricos aos quais a regra fizer referência estiverem entre -1e9 e 1e9. Se um valor em uma entrada de log estiver fora desse intervalo, o Contributor Insights ignorará essa entrada de log.

**Topics**
+ [Criação de uma regra do Contributor Insights no CloudWatch](ContributorInsights-CreateRule.md)
+ [Sintaxe da regra do Contributor Insights no CloudWatch](ContributorInsights-RuleSyntax.md)
+ [Exemplos de regras do CloudWatch Contributor Insights](ContributorInsights-Rule-Examples.md)
+ [Visualização de relatórios do Contributor Insights no CloudWatch](ContributorInsights-ViewReports.md)
+ [Métricas em representações gráficas geradas por regras no CloudWatch](ContributorInsights-GraphReportData.md)
+ [Uso de regras integradas do Contributor Insights no CloudWatch](ContributorInsights-BuiltInRules.md)

# Criação de uma regra do Contributor Insights no CloudWatch
<a name="ContributorInsights-CreateRule"></a>

É possível criar regras para analisar os dados de log. Qualquer log em Common Log Format (CLF) ou JSON pode ser avaliado. Isso inclui os logs personalizados que seguem um desses formados e logs de serviços da AWS, como logs de fluxo da Amazon VPC, logs de consulta ao DNS do Amazon Route 53, logs de contêiner do Amazon ECS e logs do AWS CloudTrail, do Amazon SageMaker AI, do Amazon RDS, do AWS AppSync e do API Gateway.

Em uma regra, ao especificar valores ou nomes de campo, todas as correspondências diferenciam letras maiúsculas de minúsculas.

Você pode usar regras de exemplo internas ao criar uma regra ou criar sua própria regra do zero. O Contributor Insights inclui regras de exemplo para os seguintes tipos de logs:
+ Logs do Amazon API Gateway
+ Logs de consulta de DNS pública do Amazon Route 53
+ Logs de consulta do Amazon Route 53 Resolver
+ Logs do CloudWatch Container Insights
+ VPC Flow Logs

Se você fez login em uma conta configurada como uma conta de monitoramento na observabilidade entre contas do CloudWatch, poderá criar regras do Contributor Insights para grupos de logs nas contas de origem vinculadas a essa conta de monitoramento, além de criar regras para grupos de logs na conta de monitoramento. Você também poderá configurar uma única regra que monitore grupos de logs em outras contas. Para obter mais informações, consulte [Observabilidade entre contas do CloudWatch](CloudWatch-Unified-Cross-Account.md).

**Importante**  
Quando você concede a permissão `cloudwatch:PutInsightRule` ao usuário, por padrão, ele pode criar uma regra que avalia qualquer grupo de logs no CloudWatch Logs. É possível adicionar condições de política do IAM que limitem essas permissões para que um usuário inclua e exclua grupos de logs específicos. Para obter mais informações, consulte [Usar chaves de condição para limitar o acesso dos usuários do Contributor Insights aos grupos de log](iam-cw-condition-keys-contributor.md).

**Como criar uma regra usando uma regra de exemplo interna**

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

1. No painel de navegação, selecione **Logs**, **Contributor Insights**.

1. Escolha **Criar regra**.

   

1.  Em **Select log group(s)** (Selecionar grupos de logs), selecione os grupos de logs que você deseja que a regra monitore. Você pode selecionar até 20 grupos de logs. Se você fez login em uma conta de monitoramento configurada para a observabilidade entre contas do CloudWatch, poderá selecionar grupos de logs nas contas de origem e também configurar uma única regra para analisar grupos de logs em outras contas. 

   1.  (Opcional) Para selecionar todos os grupos de logs que têm nomes que começam com uma string específica, escolha o menu suspenso **Select by prefix match** (Selecionar por correspondência de prefixo) e insira o prefixo. Se essa for uma conta de monitoramento, você poderá, opcionalmente, selecionar as contas a serem pesquisadas, do contrário, todas as contas serão selecionadas. 
**nota**  
 Você receberá cobranças por cada evento de log que corresponda à sua regra. Se escolher o menu suspenso **Select by prefix match** (Selecionar por correspondência com prefixo), esteja ciente da quantidade de grupos de logs com a qual o prefixo pode ter correspondência. Se você pesquisar por mais grupos de logs do que deseja, isso poderá gerar cobranças inesperadas. Para obter mais informações, consulte [Preços do Amazon CloudWatch](https://aws.amazon.com/cloudwatch/pricing). 

1. Em **Rule type** (Tipo de regra), escolha **Sample rule** (Exemplo de regra). Depois, escolha **Select sample rule** (Selecionar exemplo de regra) e selecione a regra.

1. Para o campo **Formato do log**, escolha o formato dos logs que serão avaliados pela regra.

1. Para o campo **Transformadores**, selecione **Habilitar o Contributor Insights nos transformadores** para que a regra avalie os eventos de logs depois que eles forem transformados pela [transformação de log do CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html.html). Se essa opção for habilitada:
   + A regra será aplicada às versões transformadas dos logs, se houver grupos de logs que usam transformadores no escopo de avaliação da regra.
   + A regra será aplicada às versões originais dos logs, se não houver grupos de logs que usam transformadores no escopo de avaliação da regra.

   Se você não selecionar essa opção, a avaliação será realizada com base nos eventos de log originais em todos os grupos de logs, mesmo naqueles que usam transformação de logs. 
**nota**  
Se um grupo de logs tiver um transformador e a transformação falhar para alguns eventos de log, esses eventos de logs não serão avaliados pelo Contributor Insights. Para obter mais informações sobre como investigar falhas na transformação de logs, consulte [Transformation metrics and errors](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Transformation-Errors-Metrics.html).

1.  A regra de exemplo que você selecionou preencheu os campos **Formato do log**, **Contribuição**, **Filtros** e **Agregação**. Ajuste os valores se preferir. 

1. Escolha **Próximo**.

1. Em **Rule name (Nome da regra)**, insira um nome. Os caracteres válidos são a-z, A-Z, 0-9, (hífen), (sublinhado) e (ponto).

1. Escolha se deseja criar a regra em um estado ativado ou desativado. Se optar por habilitá-la, a regra começará a analisar os dados imediatamente. Você incorrerá em custos ao executar regras habilitadas. Para obter mais informações, consulte [Preços do Amazon CloudWatch](https://aws.amazon.com/cloudwatch/pricing/).

   O Contributor Insights analisa somente novos eventos de log depois que uma regra é criada. Uma regra não pode processar eventos de log que foram processados anteriormente pelo CloudWatch Logs.

1. (Opcional) Em **Tags** (Etiquetas), adicione um ou mais pares chave-valor como tags para essa regra. As tags podem ajudar a identificar e organizar seus recursos da AWS e acompanhar seus custos da AWS. Para obter mais informações, consulte [Etiquetar recursos do Amazon CloudWatch](CloudWatch-Tagging.md).

1. Escolha **Criar**.

**Como criar uma regra do zero**

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

1. No painel de navegação, selecione **Logs**, **Contributor Insights**.

1. Escolha **Criar regra**.

   

1.  Em **Select log group(s)** (Selecionar grupos de logs), selecione os grupos de logs que você deseja que a regra monitore. Você pode selecionar até 20 grupos de logs. Se você fez login em uma conta de monitoramento configurada para a observabilidade entre contas do CloudWatch, poderá selecionar grupos de logs nas contas de origem e também configurar uma única regra para analisar grupos de logs em outras contas. 

   1.  (Opcional) Para selecionar todos os grupos de logs que têm nomes que começam com uma string específica, escolha o menu suspenso **Select by prefix match** (Selecionar por correspondência de prefixo) e insira o prefixo. 
**nota**  
 Você receberá cobranças por cada evento de log que corresponda à sua regra. Se escolher o menu suspenso **Select by prefix match** (Selecionar por correspondência com prefixo), esteja ciente da quantidade de grupos de logs com a qual o prefixo pode ter correspondência. Se você pesquisar por mais grupos de logs do que deseja, isso poderá gerar cobranças inesperadas. Para obter mais informações, consulte [Preços do Amazon CloudWatch](https://aws.amazon.com/cloudwatch/pricing). 

1. Em **Rule type** (Tipo de regra), escolha **Custom rule** (Regra personalizada).

1. Em **Log format (Formato de log)**, selecione **JSON** ou **CLF**.

1. Para o campo **Transformadores**, selecione **Habilitar o Contributor Insights nos transformadores** para que a regra avalie os eventos de logs depois que eles forem transformados pela [transformação de log do CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html.html). Se essa opção for habilitada:
   + A regra será aplicada às versões transformadas dos logs, se houver grupos de logs que usam transformadores no escopo de avaliação da regra.
   + A regra será aplicada às versões originais dos logs, se não houver grupos de logs que usam transformadores no escopo de avaliação da regra.

   Se você não selecionar essa opção, a avaliação será realizada com base nos eventos de log originais em todos os grupos de logs, mesmo naqueles que usam transformação de logs. 
**nota**  
Se um grupo de logs tiver um transformador e a transformação falhar para alguns eventos de log, esses eventos de logs não serão avaliados pelo Contributor Insights. Para obter mais informações sobre como investigar falhas na transformação de logs, consulte [Transformation metrics and errors](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Transformation-Errors-Metrics.html).

1. É possível terminar de criar a regra usando o assistente ou selecionando a guia **Syntax (Sintaxe)** e especificando a sintaxe da regra manualmente.

   Para continuar usando o assistente, faça o seguinte:

   1. Em **Contribution (Contribuição)**, **Key (Chave)**, insira um tipo de colaborador sobre o qual deseja relatar. O relatório exibe os principais valores desse tipo de colaborador.

      As entradas válidas são qualquer campo de log que tenha valores. Os exemplos incluem **requestId**, **sourceIPaddress** e **containerID**.

      Para obter informações sobre como encontrar os nomes de campos de log dos logs de determinado grupo de logs, consulte [Localização de campos de log](#finding_log_fields).

      Chaves maiores de 1 KB são truncadas para 1 1KB.

   1. (Opcional) Escolha **Add new key** (Adicionar nova chave) para adicionar mais chaves. É possível incluir até quatro chaves em uma regra. Se você inserir mais de uma chave, os colaboradores no relatório serão definidos por combinações de valor exclusivas das chaves. Por exemplo, se você especificar três chaves, cada combinação exclusiva de valores para as três chaves será contada como um colaborador exclusivo.

   1. (Opcional) Se você deseja adicionar um filtro que restringe o escopo dos resultados, escolha **Add filter** (Adicionar filtro). Em **Match** (Correspondência), insira o nome do campo de log pelo qual deseja filtrar. Em **Condition** (Condição), escolha o operador de comparação e insira um valor pelo qual deseja filtrar esse campo. 

      É possível adicionar até quatro filtros em uma regra. Diversos filtros são unidos pela lógica AND (E), portanto, somente eventos de log que correspondem a todos os filtros são avaliados.
**nota**  
Arrays que seguem operadores de comparação, como `In`, `NotIn` ou `StartsWith`, pode incluir até dez valores de string. Para obter mais informações sobre a sintaxe de regras do Contributor Insights, consulte [Sintaxe da regra do Contributor Insights no CloudWatch](ContributorInsights-RuleSyntax.md).

   1. Em **Aggregate on** (Agregar em), selecione **Count** (Contagem) ou **Sum** (Soma). Escolher **Count** (Contagem) faz com que a classificação do colaborador seja baseada no número de ocorrências. Escolher **Sum** (Soma) faz com que a classificação seja baseada na soma agregada dos valores do campo especificado em **Contribution** (Contribuição), **Value** (Valor).

1. Para inserir a regra como um objeto JSON em vez de usar o assistente, faça o seguinte:

   1. Selecione a guia **Syntax (Sintaxe)**.

   1. Em **Rule body (Corpo da regra)**, insira o objeto JSON da regra. Para obter informações sobre a sintaxe da regra, consulte [Sintaxe da regra do Contributor Insights no CloudWatch](ContributorInsights-RuleSyntax.md). 

1. Escolha **Próximo**.

1. Em **Rule name (Nome da regra)**, insira um nome. Os caracteres válidos são A-Z, a-z, 0-9, "-", "\$1' e ".".

1. Escolha se deseja criar a regra em um estado ativado ou desativado. Se optar por habilitá-la, a regra começará a analisar os dados imediatamente. Você incorrerá em custos ao executar regras habilitadas. Para obter mais informações, consulte [Preços do Amazon CloudWatch](https://aws.amazon.com/cloudwatch/pricing/).

   O Contributor Insights analisa somente novos eventos de log depois que uma regra é criada. Uma regra não pode processar eventos de log que foram processados anteriormente pelo CloudWatch Logs.

1. (Opcional) Em **Tags** (Etiquetas), adicione um ou mais pares chave-valor como tags para essa regra. As tags podem ajudar a identificar e organizar seus recursos da AWS e acompanhar seus custos da AWS. Para obter mais informações, consulte [Etiquetar recursos do Amazon CloudWatch](CloudWatch-Tagging.md).

1. Escolha **Próximo**.

1. Confirme as configurações que você inseriu e escolha **Create rule** (Criar regra).

É possível desativar, ativar ou excluir regras que você criou.

**Como ativar, desativar ou excluir uma regra no Contributor Insights**

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

1. No painel de navegação, selecione **Logs**, **Contributor Insights**.

1. Na lista de regras, marque a caixa de seleção ao lado de uma única regra.

   As regras integradas são criadas pelos serviços da AWS e não podem ser editadas, desativadas ou excluídas.

1. Selecione **Actions (Ações)** e escolha a opção desejada.<a name="finding_log_fields"></a>

**Localizar campos de log**

Ao criar uma regra, é necessário saber os nomes dos campos das entradas de log em um grupo de logs.

**Como localizar os campos de log em um grupo de logs**

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

1. No painel de navegação, em **Logs**, escolha **Insights**.

1. Acima do editor de consultas, escolha um ou mais grupos de log para serem consultados.

   Quando você seleciona um grupo de logs, o CloudWatch Logs Insights automaticamente detecta campos nos dados no grupo de logs e os exibe no painel à direta, em **Discovered fields** (Campos detectados). 

# Sintaxe da regra do Contributor Insights no CloudWatch
<a name="ContributorInsights-RuleSyntax"></a>

Esta seção explica a sintaxe das regras do Contributor Insights Use essa sintaxe somente quando estiver criando uma regra inserindo um bloco JSON. Se você usar o assistente para criar uma regra, não será necessário conhecer a sintaxe. Para obter mais informações sobre como criar regras usando o assistente, consulte [Criação de uma regra do Contributor Insights no CloudWatch](ContributorInsights-CreateRule.md).

Todas as correspondências de regras a valores e nomes de campos de eventos de logs diferenciam letras maiúsculas de minúsculas.

O exemplo a seguir ilustra a sintaxe de logs JSON.

```
{
    "Schema": {
        "Name": "CloudWatchLogRule",
        "Version": 1
    },
    "LogGroupNames": [
        "API-Gateway-Access-Logs*",
        "Log-group-name2"
    ],
    "LogFormat": "JSON",
    "Contribution": {
        "Keys": [
            "$.ip"
        ],
        "ValueOf": "$.requestBytes",
        "Filters": [
            {
                "Match": "$.httpMethod",
                "In": [
                    "PUT"
                ]
            }
        ]
    },
    "AggregateOn": "Sum"
}
```Campos nas regras do Contributor Insights

Schema  
 O valor de `Schema` para uma regra que analisa dados do CloudWatch Logs deverá ser sempre `{"Name": "CloudWatchLogRule", "Version": 1}` 

LogGroupNames  
 Uma matriz de strings. Para cada elemento na matriz, é possível usar `*` no final de uma string para incluir todos os grupos de log com nomes que começam com esse prefixo.   
Tenha cuidado com o uso de curingas em nomes de grupos de logs. Serão feitas cobranças por cada evento de log que corresponda a uma regra. Se você pesquisar acidentalmente mais grupos de logs do que pretendia, isso poderá gerar cobranças inesperadas. Para obter mais informações, consulte [Preços do Amazon CloudWatch](https://aws.amazon.com/cloudwatch/pricing).

LogGroupARNs  
Se você estiver criando essa regra em uma conta de monitoramento da observabilidade entre contas do CloudWatch, você pode usar `LogGroupARNs` para especificar grupos de logs nas contas de origem vinculadas à conta de monitoramento e para especificar grupos de logs na própria conta de monitoramento. Você deve especificar `LogGroupNames` ou `LogGroupARNs` na regra, mas não ambos.  
 `LogGroupARNs` é uma matriz de strings. Para cada elemento da matriz, você tem a opção de usar `*` como curinga em determinadas situações. Por exemplo, você pode definir `arn:aws:logs:us-west-1:*:log-group/MyLogGroupName2` para especificar grupos de logs denominados `MyLogGroupName2` em todas as contas de origem e na conta de monitoramento, na região Oeste dos EUA (Norte da Califórnia). Você também pode definir `arn:aws:logs:us-west-1:111122223333:log-group/GroupNamePrefix*` para especificar todos os grupos de logs na região Oeste dos EUA (Norte da Califórnia) em 111122223333 que tenham nomes começando com `GroupNamePrefix`.  
Você não pode especificar um ID de conta da AWS parcial como prefixo com um curinga.   
Tenha cuidado com o uso de curingas com ARNs s de grupos de logs. Serão feitas cobranças por cada evento de log que corresponda a uma regra. Se você pesquisar acidentalmente mais grupos de logs do que pretendia, isso poderá gerar cobranças inesperadas. Para obter mais informações, consulte [Preços do Amazon CloudWatch](https://aws.amazon.com/cloudwatch/pricing).

LogFormat  
 Os valores válidos são `JSON` e `CLF`. 

Contribuição  
 Esse objeto inclui uma matriz `Keys` com até quatro membros, opcionalmente, um único `ValueOf` e, opcionalmente, uma matriz de até quatro `Filters`. 

Chaves  
 Uma matriz de até quatro campos de log que são usados como dimensões para classificar colaboradores. Se você inserir mais de uma chave, cada combinação exclusiva de valores para as chaves será contada como um colaborador exclusivo. Os campos devem ser especificados usando a notação no formato de propriedade JSON. 

ValueOf  
 (Opcional) Especifique isso somente quando estiver especificando `Sum` como o valor de `AggregateOn`. O `ValueOf` especifica um campo de log com valores numéricos. Nesse tipo de regra, os colaboradores são classificados pela soma do valor desse campo, em vez do número de ocorrências nas entradas do log. Por exemplo, se você quiser classificar os colaboradores pelo `BytesSent` total durante um período, defina `ValueOf` como `BytesSent` e especifique `Sum` em `AggregateOn`. 

Filtros  
 Especifica uma matriz de até quatro filtros para restringir os eventos de log que serão incluídos no relatório. Se você especificar vários filtros, eles serão avaliados pelo Contributor Insights com um operador lógico AND (E). Você pode usar isso para excluir eventos de log irrelevantes na pesquisa ou escolher um único colaborador para ter o comportamento analisado.  
Cada membro da matriz deve incluir um campo `Match` e um campo indicando o tipo de operador de correspondência que deve ser usado.  
O campo `Match` especifica um campo de log para ser avaliado no filtro. O campo de log é especificado usando a notação de formato de propriedade JSON.  
O campo de operador de correspondência deve ser um dos seguintes: `In`, `NotIn`, `StartsWith`, `GreaterThan`, `LessThan`, `EqualTo`, `NotEqualTo` ou `IsPresent`. Se o campo de operador for `In`, `NotIn` ou `StartsWith`, ele será seguido por uma matriz de valores de string a serem verificados. O Contributor Insights avalia a matriz de valores de string com um operador OR (OU). A matriz pode incluir até 10 valores de string.  
Se o campo de operador for `GreaterThan`, `LessThan`, `EqualTo` ou `NotEqualTo`, ele será seguido por um único valor número com o qual será comparado.  
Se o campo de operador for `IsPresent`, ele será seguido por `true` ou `false`. Esse operador corresponde a eventos de log dependendo se o campo de log especificado estava presente ou não no evento de log. O `isPresent` funciona somente com valores no nó folha de propriedades JSON. Por exemplo, um filtro que procura correspondências com `c-count` não avaliará um evento de log com um valor de `details.c-count.c1`.  
Consulte o seguinte para exemplos de filtro:  

```
{"Match": "$.httpMethod", "In": [ "PUT", ] }
{"Match": "$.StatusCode", "EqualTo": 200 }
{"Match": "$.BytesReceived", "GreaterThan": 10000}
{"Match": "$.eventSource", "StartsWith": [ "ec2", "ecs" ] }
```

AggregateOn  
 Os valores válidos são `Count` e `Sum`. Especifica se o relatório deve ser agregado com base em uma contagem de ocorrências ou em uma soma dos valores do campo especificada no campo `ValueOf`. 

**Notação de formato de propriedade JSON**

Os campos `Keys`, `ValueOf` e `Match` seguem o formato de propriedade JSON sem notação de ponto, onde `$` representa a raiz do objeto JSON. Isto é seguido por um ponto e por uma string alfanumérica com o nome da subpropriedade. Vários níveis de propriedade são compatíveis.

O primeiro caractere da string só pode ser A-Z ou a-z. Os caracteres a seguir da string podem ser A-Z, a-z ou 0-9.

A lista a seguir ilustra exemplos válidos do formato de propriedade JSON

```
$.userAgent
$.endpoints[0]
$.users[1].name
$.requestParameters.instanceId
```

**Campo adicional em regras para logs em CLF**

Os eventos de log em Common Log Format (CLF) não têm nomes para os campos como JSON. Para fornecer os campos a serem usados pelas regras do Contributor Insights, um log em CLF pode ser tratado como uma matriz com um índice que começa em `1`. É possível especificar o primeiro campo como **"1"**, o segundo campo como **"2"** e assim por diante.

Para tornar uma regra para um log em CLF mais fácil de ler, é possível usar `Fields`. Isso permite fornecer um alias de nomeação para os locais de campo CLF. Por exemplo, você pode especificar que o local "4" é um endereço IP. Após especificado, `IpAddress` pode ser usado como uma propriedade em `Keys`, `ValueOf` e `Filters` na regra.

Veja a seguir um exemplo de uma regra para um log em que o CLF usa o campo `Fields`.

```
{
    "Schema": {
        "Name": "CloudWatchLogRule",
        "Version": 1
    },
    "LogGroupNames": [
        "API-Gateway-Access-Logs*"
    ],
    "LogFormat": "CLF",
    "Fields": {
        "4": "IpAddress",
        "7": "StatusCode"
    },
    "Contribution": {
        "Keys": [
            "IpAddress"
        ],
        "Filters": [
            {
                "Match": "StatusCode",
                "EqualTo": 200
            }
        ]
    },
    "AggregateOn": "Count"
}
```

# Exemplos de regras do CloudWatch Contributor Insights
<a name="ContributorInsights-Rule-Examples"></a>

Esta seção contém exemplos que ilustram casos de uso para regras do Contributor Insights.

**Logs de fluxo da VPC: transferências de byte por endereço IP de origem e endereço IP de destino**

```
{
    "Schema": {
        "Name": "CloudWatchLogRule",
        "Version": 1
    },
    "LogGroupNames": [
        "/aws/containerinsights/sample-cluster-name/flowlogs"
    ],
    "LogFormat": "CLF",
    "Fields": {
        "4": "srcaddr",
        "5": "dstaddr",
        "10": "bytes"
    },
    "Contribution": {
        "Keys": [
            "srcaddr",
            "dstaddr"
        ],
        "ValueOf": "bytes",
        "Filters": []
    },
    "AggregateOn": "Sum"
}
```

**Logs de fluxo da VPC: número mais alto de solicitações HTTPS**

```
{
    "Schema": {
        "Name": "CloudWatchLogRule",
        "Version": 1
    },
    "LogGroupNames": [
        "/aws/containerinsights/sample-cluster-name/flowlogs"
    ],
    "LogFormat": "CLF",
    "Fields": {
        "5": "destination address",
        "7": "destination port",
        "9": "packet count"
    },
    "Contribution": {
        "Keys": [
            "destination address"
        ],
        "ValueOf": "packet count",
        "Filters": [
            {
                "Match": "destination port",
                "EqualTo": 443
            }
        ]
    },
    "AggregateOn": "Sum"
}
```

**Logs de fluxo da VPC: conexões TCP rejeitadas**

```
{
    "Schema": {
        "Name": "CloudWatchLogRule",
        "Version": 1
    },
    "LogGroupNames": [
        "/aws/containerinsights/sample-cluster-name/flowlogs"
    ],
    "LogFormat": "CLF",
    "Fields": {
        "3": "interfaceID",
        "4": "sourceAddress",
        "8": "protocol",
        "13": "action"
    },
    "Contribution": {
        "Keys": [
            "interfaceID",
            "sourceAddress"
        ],
        "Filters": [
            {
                "Match": "protocol",
                "EqualTo": 6
            },
            {
                "Match": "action",
                "In": [
                    "REJECT"
                ]
            }
        ]
    },
    "AggregateOn": "Sum"
}
```

**Respostas do Route 53 NxDomain por endereço de origem**

```
{
    "Schema": {
        "Name": "CloudWatchLogRule",
        "Version": 1
    },
    "AggregateOn": "Count",
    "Contribution": {
        "Filters": [
            {
                "Match": "$.rcode",
                "StartsWith": [
                    "NXDOMAIN"
                ]
            }
        ],
        "Keys": [
            "$.srcaddr"
        ]
    },
    "LogFormat": "JSON",
    "LogGroupNames": [
        "<loggroupname>"
    ]
}
```

**Consultas do Route 53 Resolver por nome de domínio**

```
{
    "Schema": {
        "Name": "CloudWatchLogRule",
        "Version": 1
    },
    "AggregateOn": "Count",
    "Contribution": {
        "Filters": [],
        "Keys": [
            "$.query_name"
        ]
    },
    "LogFormat": "JSON",
    "LogGroupNames": [
        "<loggroupname>"
    ]
}
```

**Consultas do Route 53 Resolver por tipo de consulta e endereço de origem**

```
{
    "Schema": {
        "Name": "CloudWatchLogRule",
        "Version": 1
    },
    "AggregateOn": "Count",
    "Contribution": {
        "Filters": [],
        "Keys": [
            "$.query_type",
            "$.srcaddr"
        ]
    },
    "LogFormat": "JSON",
    "LogGroupNames": [
        "<loggroupname>"
    ]
}
```

# Visualização de relatórios do Contributor Insights no CloudWatch
<a name="ContributorInsights-ViewReports"></a>

Para visualizar gráficos de dados do relatório e uma lista de classificação de colaboradores encontrados pelas regras, siga estas etapas.

**Como visualizar os relatórios de regras**

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

1. No painel de navegação, selecione **Logs**, **Contributor Insights**.

   

1. Na lista de regras, escolha o nome de uma regra.

   O gráfico exibe os resultados da regra pelas últimas três horas. A tabela abaixo do gráfico mostra os 10 principais colaboradores.

1. Para alterar o número de colaboradores mostrados na tabela, selecione **Top 10 contributors (10 principais colaboradores)** na parte superior do gráfico.

1. Para filtrar o gráfico a fim de que ele exiba somente os resultados de um único colaborador, escolha o colaborador na legenda da tabela. Para exibir novamente todos os colaboradores, escolha o mesmo colaborador novamente na legenda.

1. Para alterar o intervalo de tempo mostrado no relatório, escolha **15m**, **30m**, **1h**, **2h**, **3h** ou **personalizado** na parte superior do gráfico.

   O intervalo de tempo máximo para o relatório é de 24 horas, mas é possível escolher uma janela de 24 horas que ocorreu até 15 dias atrás. Para escolher uma janela de tempo no passado, selecione **custom (personalizado)**, **absolute (absoluto)** e especifique a janela de tempo.

1. Para alterar a duração do período usado para a agregação e a classificação de colaboradores, selecione **period (período)** na parte superior do gráfico. Visualizar um período mais longo geralmente mostra um relatório mais suave, com poucos picos Escolher um período mais curto tem mais possibilidade de exibir picos.

1. Para adicionar este grafo a um painel do CloudWatch, escolha **Add to dashboard** (Adicionar ao painel).

1. Para abrir a janela de consulta do CloudWatch Logs Insights, com o grupo de log nesse relatório já carregado na caixa de consulta, selecione **View logs** (Visualizar logs).

1. Para exportar os dados do relatório para a área de transferência como um arquivo CSV, selecione **Export (Exportar)**.

# Métricas em representações gráficas geradas por regras no CloudWatch
<a name="ContributorInsights-GraphReportData"></a>

O Contributor Insights fornece uma função matemática de métrica, `INSIGHT_RULE_METRIC`. Você pode usar essa função para adicionar dados de um relatório do Contributor Insights a um grafo na guia **Metrics** (Métricas) do console do CloudWatch. Você também pode definir um alarme com base nessa função matemática. Para mais informações sobre funções matemáticas de métrica, consulte [Uso de expressões matemáticas com as métricas do CloudWatch](using-metric-math.md).

Para usar essa função matemática de métrica, é necessário estar conectado em uma conta que tenha as permissões `cloudwatch:GetMetricData` e `cloudwatch:GetInsightRuleReport`.



A sintaxe é `INSIGHT_RULE_METRIC(ruleName, metricName)`. *ruleName* é o nome de uma regra do Contributor Insights, e *metricName* é um dos valores na lista a seguir. O valor de *metricName* determina qual tipo de dados a função matemática retorna.
+ `UniqueContributors`: o número de colaboradores exclusivos para cada ponto de dados.
+ `MaxContributorValue`: o valor do principal colaborador para cada ponto de dados. A identidade do colaborador pode mudar para cada ponto de dados no gráfico.

  Se essa regra for agregada por `Count`, o principal colaborador de cada ponto de dados será o colaborador com mais ocorrências nesse período. Se a regra for agregada por `Sum`, o principal colaborador será o que tiver a maior soma no campo de log especificado pelo `Value` da regra durante esse período.
+ `SampleCount`: o número de pontos de dados correspondentes pela regra.
+ `Sum`: a soma dos valores de todos os colaboradores durante o período representado por esse ponto de dados.
+ `Minimum`: o valor mínimo de uma única observação durante o período representado por esse ponto de dados.
+ `Maximum`: o valor máximo de uma única observação durante o período representado por esse ponto de dados.
+ `Average`: o valor médio de todos os colaboradores durante o período representado por esse ponto de dados.

## Definir um alarme para os dados de métrica do Contributor Insights
<a name="ContributorInsights-GraphReportData-Alarm"></a>

É possível definir alarmes em métricas geradas pelo Contributor Insights usando a função `INSIGHT_RULE_METRIC`. Por exemplo, você pode criar um alarme com base na porcentagem de conexões de Transmission Control Protocol (TCP – Protocolo de controle de transmissão) rejeitadas. Para começar com esse tipo de alarme, você pode criar regras como as mostradas nos dois exemplos a seguir:

**Exemplo de regra: "RejectedConnectionsRule"**

```
{
    "Schema": {
        "Name": "CloudWatchLogRule",
        "Version": 1
    },
    "LogGroupNames": [
        "/aws/containerinsights/sample-cluster-name/flowlogs"
    ],
    "LogFormat": "CLF",
    "Fields": {
        "3": "interfaceID",
        "4": "sourceAddress",
        "8": "protocol",
        "13": "action"
    },
    "Contribution": {
        "Keys": [
            "interfaceID",
            "sourceAddress"
        ],
        "Filters": [
            {
                "Match": "protocol",
                "EqualTo": 6
            },
            {
                "Match": "action",
                "In": [
                    "REJECT"
                ]
            }
        ]
    },
    "AggregateOn": "Sum"
}
```

**Exemplo de regra: "TotalConnectionsRule"**

```
{
    "Schema": {
        "Name": "CloudWatchLogRule",
        "Version": 1
    },
    "LogGroupNames": [
        "/aws/containerinsights/sample-cluster-name/flowlogs"
    ],
    "LogFormat": "CLF",
    "Fields": {
        "3": "interfaceID",
        "4": "sourceAddress",
        "8": "protocol",
        "13": "action"
    },
    "Contribution": {
        "Keys": [
            "interfaceID",
            "sourceAddress"
        ],
        "Filters": [{
            "Match": "protocol",
            "EqualTo": 6
        }],
        "AggregateOn": "Sum"
    }
}
```

Depois de criar suas regras, você pode selecionar a guia **Metrics** (Métricas), no Console do CloudWatch, e usar as seguintes expressões matemáticas de métrica de exemplo para representar gráficos dos dados que o Contributor Insights relata:

**Exemplo: expressões matemáticas de métrica**

```
e1 INSIGHT_RULE_METRIC("RejectedConnectionsRule", "Sum")
e2 INSIGHT_RULE_METRIC("TotalConnectionsRule", "Sum")
e3 (e1/e2)*100
```

No exemplo, a expressão matemática de métrica `e3` retorna todas as conexões TCP rejeitadas. Se quiser ser notificado quando 20% das conexões TCP forem rejeitadas, você poderá modificar a expressão, alterando o limite de `100` para `20`.

**nota**  
Você pode criar um alarme em uma métrica que você está monitorando a partir da seção **Metrics** (Métricas). Enquanto estiver na guia **Graphed metrics** (Representar métricas em gráficos), você poderá selecionar o ícone **Create alarm** (Criar alarme) na coluna **Actions** (Ações). O ícone **Create alarm** (Criar alarme) parece um sino. 

Para obter mais informações sobre como criar gráficos de métricas e usar funções matemáticas de métricas, consulte a seguinte seção: [Adicionar uma expressão matemática a um gráfico do CloudWatch](using-metric-math.md#adding-metrics-expression-console).

# Uso de regras integradas do Contributor Insights no CloudWatch
<a name="ContributorInsights-BuiltInRules"></a>

Você pode usar as regras internas do Contributor Insights para analisar métricas de outros produtos da AWS. Os produtos a seguir oferecem suporte a regras internas:
+ [Contributor Insights para Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/contributorinsights.html) no *Guia do desenvolvedor do Amazon DynamoDB*.
+ [Usar as regras integradas do Contributor Insights](https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-cloudwatch-metrics.html#privatelink-contributor-insights) no *Guia do AWS PrivateLink*.

# Detectar problemas comuns de aplicações com o CloudWatch Application Insights
<a name="cloudwatch-application-insights"></a>

É possível usar o Amazon CloudWatch Application Insights para detectar problemas em suas aplicações. O CloudWatch Application Insights facilita a observabilidade das suas aplicações e dos recursos subjacentes da AWS. Ele ajuda a configurar os melhores monitores para os recursos da aplicação, a analisar dados continuamente para procurar sinais de problemas com suas aplicações. O Application Insights, que é desenvolvido pelo [Sagemaker](https://docs.aws.amazon.com/sagemaker/latest/dg/wahtis.html) e outras tecnologias da AWS, fornece painéis automatizados que exibem problemas potenciais com aplicações monitoradas, que ajudam a isolar rapidamente problemas contínuos com suas aplicações e sua infraestrutura. A visibilidade melhorada da integridade de suas aplicações que o Application Insights fornece ajuda a reduzir tempo médio de reparo (MTTR) para solucionar os problemas de sua aplicação.

Quando você adiciona suas aplicações ao Amazon CloudWatch Application Insights, ele examina os recursos das aplicações, recomenda e configura métricas e logs no [CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) para componentes da aplicação. Os exemplos de componentes de aplicação incluem bancos de dados de backend do SQL Server e níveis do Microsoft IIS/Web. O Application Insights analisa os padrões da métrica usando dados históricos para detectar anomalias, além de detectar continuamente erros e exceções do sistema operacional da aplicação e logs de infraestrutura. Ele correlaciona essas observações usando uma combinação de algoritmos de classificação e regras integradas. Em seguida, cria automaticamente os painéis que exibem as observações relevantes e informações sobre a gravidade do problema para ajudar você a priorizar suas ações. Para problemas comuns nas pilhas de aplicações .NET e SQL, como a latência da aplicação, backups com falha do SQL Server, vazamentos de memória, solicitações HTTP grandes e operações de E/S canceladas, ele fornece insights adicionais que indicam a possível causa raiz do problema e as etapas para a resolução. A integração incorporada ao [AWS SSM OpsCenter](https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter.html) permite resolver problemas executando o documento relevante do Systems Manager Automation. 

**Topics**
+ [O que é o Amazon CloudWatch Application Insights?](appinsights-what-is.md)
+ [Como o Application Insights funciona](appinsights-how-works.md)
+ [Pré-requisitos, políticas do IAM e permissões necessárias](appinsights-accessing.md)
+ [Configuração da aplicação para monitoramento](appinsights-setting-up.md)
+ [Observabilidade do Application Insights entre contas](appinsights-cross-account.md)
+ [Trabalhar com configurações de componentes](component-config.md)
+ [Usar modelos do CloudFormation](appinsights-cloudformation.md)
+ [Tutorial: como configurar o monitoramento para o SAP ASE](appinsights-tutorial-sap-ase.md)
+ [Tutorial: Configurar o monitoramento para SAP HANA](appinsights-tutorial-sap-hana.md)
+ [Tutorial: Configurar monitoramento para o SAP NetWeaver](appinsights-tutorial-sap-netweaver.md)
+ [Visualizar e solucionar problemas do Application Insights](appinsights-troubleshooting.md)
+ [Logs e métricas compatíveis](appinsights-logs-and-metrics.md)

# O que é o Amazon CloudWatch Application Insights?
<a name="appinsights-what-is"></a>

O CloudWatch Application Insights ajudaa monitorar as aplicações que usam instâncias do Amazon EC2 juntamente com outros [recursos de aplicações](#appinsights-components). Ele identifica e configura os principais logs de métricas e alarmes na pilha de tecnologia e nos recursos da aplicação (por exemplo, banco de dados Microsoft SQL Server, servidores web (IIS) e de aplicações, SO, load balancers e filas). Ele monitora continuamente os logs e as métricas para detectar e correlacionar anomalias e erros. Quando erros e anomalias são detectados, o Application Insights gera o [CloudWatch Events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) que é possível usar para configurar notificações ou executar ações. Para auxiliar na solução de problemas, ele cria painéis automatizados para problemas detectados, que incluem anomalias de métricas correlacionadas e erros de log com insights adicionais para indicar uma potencial causa raiz do problema. Os painéis automatizados ajudam a tomar medidas corretivas rápidas para manter a integridade de suas aplicações e evitar o impacto nos usuários finais da aplicação. Ele também cria OpsItems para que você possa resolver problemas usando o [AWS SSM OpsCenter](https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter.html).

É possível configurar contadores importantes, como transações de gravação espelhada por segundo, comprimento da fila de recuperação e atraso da transação, bem como logs de eventos do Windows no CloudWatch. Quando ocorre um evento de failover ou problema com sua workload de alta disponibilidade do SQL, como um acesso restrito para consultar um banco de dados de destino, o CloudWatch Application Insights oferece insights automatizados.

O CloudWatch Application Insights integra-se ao[AWS Launch Wizard](https://docs.aws.amazon.com/launchwizard/latest/userguide/what-is-launch-wizard.html) para fornecer uma experiência de configuração de monitoramento com um clique para implantar workloads de alta disponibilidade do SQL Server na AWS. Ao selecionar a opção para configurar o monitoramento e os insights com o Application Insights no [console do Launch Wizard](https://console.aws.amazon.com/launchwizard), o CloudWatch Application Insights configura automaticamente métricas, logs e alarmes relevantes no CloudWatch e inicia o monitoramento das workloadsrecém-implantadas. É possível exibir informações automatizadas e problemas detectados, juntamente com a integridade de suas workloads de alta disponibilidade do SQL Server, no console do CloudWatch.

**Topics**
+ [Recursos](#appinsights-features)
+ [Conceitos](#appinsights-concepts)
+ [Preços](#appinsights-pricing)
+ [Serviços relacionados](#appinsights-related-services)
+ [Componentes da aplicação com suporte](#appinsights-components)
+ [Pilhas de tecnologia compatíveis](#appinsights-stack)

## Recursos
<a name="appinsights-features"></a>

O Application Insights fornece os recursos a seguir.

**Configuração automática de monitores para recursos de aplicações**  
O CloudWatch Application Insights reduz o tempo necessário para configurar o monitoramento de suas aplicações. Ele faz isso verificando os recursos da aplicação, fornecendo uma lista personalizável de métricas e logs recomendados e configurando-os no CloudWatch para fornecer a visibilidade necessária dos recursos da aplicação, como o Amazon EC2 e os balanceadores de carga elásticos (ELB). Ele também configura alarmes dinâmicos em métricas monitoradas. Os alarmes são atualizados automaticamente com base nas anomalias detectadas nas duas semanas anteriores. 

**Notificação e detecção de problemas**  
O CloudWatch Application Insights detecta sinais de possíveis problemas com sua aplicação, como anomalias de métrica e erros de log. Ele correlaciona essas observações com possíveis problemas superficiais com sua aplicação. Em seguida, ele gera CloudWatch Events, [que podem ser configurados para receber notificações ou executar ações](appinsights-cloudwatch-events.md). Isso elimina a necessidade de criar alarmes em métricas individuais ou erros de log. Além disso, você pode [configurar as notificações do Amazon SNS](appinsights-problem-notifications.md) para receber alertas de problemas detectados.

**Solução de problemas**  
O CloudWatch Application Insights cria painéis automáticos do CloudWatch para os problemas que são detectados. Os painéis mostram detalhes sobre o problema, incluindo as anomalias de métricas associadas e erros de log para ajudar a solucionar problemas. Eles também fornecem informações adicionais que indicam possíveis causas das anomalias e dos erros. 

## Conceitos
<a name="appinsights-concepts"></a>

Os seguintes conceitos são importantes para entender como o Application Insights monitora sua aplicação.

**Componente**  
Um agrupamento personalizado, individual ou agrupado automaticamente de recursos semelhantes que compõem uma aplicação. Recomendamos agrupar recursos semelhantes em componentes personalizados para melhor monitoramento.

**Observação**  
Um evento individual (anomalia de métrica, log de erro ou exceção) que é detectado com uma aplicação ou recurso da aplicação.

**Problema**  
Os problemas são detectados ao correlacionar, classificar e agrupar observações relacionadas. 

Para ver definições de outros conceitos principais do CloudWatch Application Insights, consulte [Conceitos do Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html).

## Preços
<a name="appinsights-pricing"></a>

O CloudWatch Application Insights configura as métricas e os logs recomendados para determinados recursos da aplicação usando as métricas, os logs e os eventos do CloudWatch para enviar notificações sobre os problemas detectados. Esses recursos são cobrados em sua conta da AWS de acordo com o [preço do CloudWatch](https://aws.amazon.com/cloudwatch/pricing). Para os problemas detectados, [OpsItems do SSM](https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-working-with-OpsItems.html) também são criados pelo Application Insights para notificar você sobre problemas. Além disso, o Application Insights cria [parâmetros do SSM Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) para configurar os agentes do CloudWatch nas instâncias. Os recursos do Systems Manager do Amazon EC2 são alterados de acordo com os [preços do SSM](https://aws.amazon.com/systems-manager/pricing/). Você não é cobrado por assistência na configuração, monitoramento, análise de dados ou detecção de problemas.

### Custos do CloudWatch Application Insights
<a name="appinsights-pricing-ec2"></a>

Os custos do Amazon EC2 incluem o uso dos seguintes recursos:
+ Agente do CloudWatch
  + Grupos de logs do agente do CloudWatch
  + Métricas do agente do CloudWatch
  + Grupos de logs do Prometheus (para workloads JMX)

Os custos de todos os recursos incluem o uso dos seguintes recursos:
+ Alarmes do CloudWatch (maior parte do custo)
+ Opsitems do SSM (custo mínimo)

### Exemplo de cálculo de custos
<a name="appinsights-pricing-example"></a>

Os custos neste exemplo são considerados de acordo com o cenário a seguir.

Você criou um grupo de recursos que inclui o seguinte:
+ Uma instância do Amazon EC2 com o SQL Server instalado.
+ Um volume do Amazon EBS anexado.

Quando você integra esse grupo de recursos com o CloudWatch Application Insights, a workload do SQL Server instalada na instância do Amazon EC2 é detectada. O CloudWatch Application Insights começa a monitorar as métricas a seguir.

As métricas a seguir são monitoradas para a instância do SQL Server:
+ CPUUtilization
+ StatusCheckFailed
+ % de bytes confirmados em uso na memória
+ Mbytes de memória disponíveis
+ Total/s de bytes de interface de rede
+ % de uso de arquivo de paginação
+ % de tempo de disco do disco físico
+ % de tempo de processador do processador
+ SQLServer: proporção de acertos do cache do gerenciador de buffer
+ SQLServer: expectativa de vida do gerenciador de buffer
+ SQLServer: processos de estatísticas gerais bloqueados
+ SQLServer: conexões de usuário de estatísticas gerais
+ SQLServer: bloqueia o número de bloqueios/s
+ SQLServer: solicitações em lote/s de estatísticas do SQL
+ Tamanho da fila do processador do sistema

As métricas a seguir são monitoradas para os volumes anexados à instância do SQL Server:
+ VolumeReadBytes
+ VolumeWriteBytes
+ VolumeReadOps
+ VolumeWriteOps
+ VolumeTotalReadTime
+ VolumeTotalWriteTime
+ VolumeIdleTime
+ VolumeQueueLength
+ VolumeThroughputPercentage
+ VolumeConsumedReadWriteOps
+ BurstBalance

Para esse cenário, os custos são calculados de acordo com a página [CloudWatch pricing](https://aws.amazon.com/cloudwatch/pricing/) (Preços do CloudWatch) e a página [SSM pricing](https://aws.amazon.com/systems-manager/pricing/) (Preços do SSM):
+ **Métricas personalizadas**

  Para esse cenário, 13 das métricas acima são emitidas para o CloudWatch usando o agente do CloudWatch. Essas métricas são tratadas como métricas personalizadas. O custo de cada métrica personalizada é de 0,3 USD/mês. O custo total dessas métricas personalizadas é de 13 \$1 0,3 USD = 3,90 USD/mês.
+ **Alarmes**

  Para esse cenário, o CloudWatch Application Insights monitora 26 métricas no total, o que cria 26 alarmes. O custo de cada alarme é de 0,1 USD/mês. O custo total dos alarmes é de 26 \$1 USD 0,1 = USD 2,60/mês. 
+ **Ingestão de dados e logs de erros**

  O custo da ingestão de dados é de 0,05 USD/GB e o armazenamento para o log de erros do SQL Server custa 0,03 USD/GB. O custo total da ingestão de dados e do log de erros é de 0,05 USD/GB \$1 0,03 USD/GB = 0,08 USD/GB.
+ **OpsItems do Amazon EC2 Systems Manager**

  Um OpsItem do SSM é criado para cada problema detectado pelo CloudWatch Application Insights. Para *n* problemas na aplicação (onde n é o número de problemas), o custo total é de 0,00267 USD \$1 *n/mês.*

## Serviços relacionados
<a name="appinsights-related-services"></a>

Os seguintes serviços são usados com o CloudWatch Application Insights:

**Serviços relacionados da AWS**
+ O **Amazon CloudWatch **fornece visibilidade de todo o sistema com relação à utilização do recurso, performance da aplicação e integridade operacional. Ele coleta e rastreia métricas, envia notificações de alarmes, atualiza automaticamente os recursos que estão sendo monitorados com base nas regras definidas por você e permite monitorar suas próprias métricas personalizadas. O CloudWatch Application Insights é iniciado por meio do CloudWatch, especificamente nos painéis operacionais padrão do CloudWatch. Para obter mais informações, consulte o [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html).
+ O **CloudWatch Container Insights** coleta, agrega e resume métricas e logs das suas aplicações e microsserviços conteinerizados. Você pode usar o Container Insights para monitorar as plataformas Amazon ECS, Amazon Elastic Kubernetes Service e Kubernetes no Amazon EC2. Quando o Application Insights é habilitado nos consoles Container Insights ou Application Insights, o Application Insights exibe os problemas detectados no painel do Container Insights. Para ter mais informações, consulte [Container Insights](ContainerInsights.md) .
+ O **Amazon DynamoDB** é um serviço de banco de dados NoSQL totalmente gerenciado que permite que você transfira as cargas administrativas de operação e escalabilidade de um banco de dados distribuído, para que não precise se preocupar com provisionamento, instalação e configuração de hardware, replicação, correção de software nem escalabilidade de cluster. Além disso, o DynamoDB oferece criptografia em repouso, o que elimina a carga e a complexidade operacionais envolvidas na proteção de dados confidenciais.
+ O **Amazon EC2** fornece capacidade de computação escalável na Nuvem AWS. É possível usar o Amazon EC2 para executar quantos servidores virtuais forem necessários, configurar a segurança e as redes e gerenciar o armazenamento. É possível ampliar ou reduzir para lidar com alterações nos requisitos ou com picos na popularidade, o que reduz a necessidade de prever o tráfego. Para obter mais informações, consulte o [https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) ou [https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/concepts.html](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/concepts.html).
+ O **Amazon Elastic Block Store (Amazon EBS)** oferece volumes de armazenamento em bloco para usar com instâncias do Amazon EC2. Os volumes do Amazon EBS se comportam como dispositivos de bloco brutos e não formatados. É possível montar esses volumes como dispositivos em suas instâncias. Os volumes do Amazon EBS que estão anexados a uma instância são expostos como volumes de armazenamento que persistem independentemente da vida útil da instância. É possível criar um sistema de arquivos sobre esses volumes ou utilizá-los da maneira que utilizaria um dispositivo de bloco (como um disco rígido). É possível alterar dinamicamente a configuração de um volume anexado a uma instância. Para obter mais informações, consulte o [Manual do usuário da Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html).
+ O **Amazon EC2 Auto Scaling ** ajuda a garantir que você tenha o número correto de instâncias do EC2 disponíveis para processar a carga da aplicação. Para obter mais informações, consulte o [https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html](https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html).
+ O **Elastic Load Balancing** distribui aplicações de entrada ou tráfego de rede em vários destinos, como instâncias do EC2, contêineres e endereços IP em várias zonas de disponibilidade. Para obter mais informações, consulte o [https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html).
+ O **IAM** é um serviço da Web que ajuda a controlar com segurança o acesso de seus usuários aos recursos da AWS. Use o IAM para controlar quem pode usar seus recursos da AWS (autenticação) e controlar os recursos que eles podem usar e como podem usá-los (autorização). Para obter mais informações, consulte [Autenticação e controle de acesso para o Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/auth-and-access-control-cw.html).
+ O **AWS Lambda** permite criar aplicações sem servidor compostas de funções acionadas por eventos e implantá-las automaticamente usando o CodePipeline e o AWS CodeBuild. Para obter mais informações, consulte [Aplicações do AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/deploying-lambda-apps.html). 
+ O **AWS Launch Wizard for SQL Server** reduz o tempo necessário para implantar a solução de alta disponibilidade do SQL Server na nuvem. Você insere seus requisitos de aplicações, incluindo performance, número de nós e conectividade no console do serviço, e o AWS Launch Wizard identifica os recursos da AWS corretos para implantar e executar sua aplicação SQL Server Always On. 
+ O **AWS Resource Groups** ajuda a organizar os recursos que compõem a aplicação. Com o Resource Groups, é possível gerenciar e automatizar tarefas em um grande número de recursos de uma só vez. Somente um Grupo de recursos pode ser registrado para uma única aplicação. Para obter mais informações, consulte o [https://docs.aws.amazon.com/ARG/latest/userguide/welcome.html](https://docs.aws.amazon.com/ARG/latest/userguide/welcome.html).
+ O **Amazon SQS **oferece uma fila hospedada segura, durável e disponível que permite integrar e desacoplar sistemas de software e componentes distribuídos. Para obter mais informações, consulte o [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html).
+ O **AWS Step Functions** é um compositor de função sem servidor que permite sequenciar uma variedade de produtos e recursos da AWS, inclusive funções do AWS Lambda, em fluxos de trabalho estruturados e visuais. Para saber mais, consulte o [Guia do usuário do AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html).
+ O **AWS SSM OpsCenter **agrega e padroniza OpsItems entre serviços, fornecendo dados de investigação contextual sobre cada OpsItem, OpsItems relacionados e recursos relacionados. O OpsCenter também fornece documentos (runbooks) do Systems Manager Automation que podem ser usados para resolver problemas rapidamente. É possível especificar dados personalizados e pesquisáveis para cada OpsItem. Também é possível visualizar relatórios de resumo gerados automaticamente sobre os OpsItems por status e origem. Para saber mais, consulte o [https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter.html](https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter.html).
+ O **Amazon API Gateway** é um produto da AWS para criação, publicação, manutenção, monitoramento e proteção de APIs REST e WebSocket em qualquer escala. Os desenvolvedores de API podem criar APIs que acessem a AWS ou outros serviços da Web, bem como dados armazenados na Nuvem AWS. Para obter mais informações, consulte o [Manual do usuário do Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html).
**nota**  
O Application Insights e compatível apenas com protocolos API REST (v1 do serviço API Gateway).
+ O **Amazon Elastic Container Service (Amazon ECS)** é um serviço de orquestração de contêiner totalmente gerenciado. Você pode usar o Amazon ECS para executar suas aplicações mais sigilosas e essenciais à missão. Para obter mais informações, consulte o [Guia do desenvolvedor do Amazon Elastic Container Service](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html).
+ O **Amazon Elastic Kubernetes Service (Amazon EKS)** é um serviço gerenciado que você pode usar para executar o Kubernetes na AWS, eliminando a necessidade de instalar e manter seus próprios nós ou seu ambiente de gerenciamento do Kubernetes. O Kubernetes é um sistema de código aberto para automatizar a implantação, a escalabilidade e o gerenciamento de aplicações em contêineres. Para obter mais informações, consulte o [Manual do usuário do Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html).
+ **Kubernetes no Amazon EC2**. O Kubernetes é um software de código aberto que ajuda a implantar e gerenciar aplicações em contêineres em escala. O Kubernetes gerencia clusters de instâncias de computação do Amazon EC2 e executa contêineres nessas instâncias com processos para implantação, manutenção e escalabilidade. Com o Kubernetes, é possível executar qualquer tipo de aplicação em contêineres com o mesmo conjunto de ferramentas on-premises e na nuvem. Para obter mais informações, consulte [Documentação do Kubernetes: conceitos básicos](https://kubernetes.io/docs/setup/).
+ O **Amazon FSx** ajuda a iniciar e executar sistemas de arquivos bastante utilizados que são totalmente gerenciados pela AWS. Com o Amazon FSx, é possível aproveitar os conjuntos de recursos e a performance de sistemas de arquivos comuns de código aberto e licenciados comercialmente para evitar tarefas administrativas demoradas. Para mais informações, consulte a [documentação do Amazon FSx](https://docs.aws.amazon.com/fsx/).
+ O **Amazon Simple Notification Service (SNS)** é um serviço de mensagens totalmente gerenciado para comunicação entre aplicações e de aplicação para pessoa. Você pode configurar o Amazon SNS para monitoramento pelo Application Insights. Quando o Amazon SNS é configurado como um recurso de monitoramento, o Application Insights rastreia as métricas do SNS para ajudar a determinar a causa de possíveis problemas e falhas em mensagens do SNS.
+ O **Amazon Elastic File System (Amazon EFS)** é um sistema de arquivos NFS elástico totalmente gerenciado para uso com serviços e recursos on-premises da Nuvem AWS. Ele foi criado para escalar até petabytes sob demanda sem interromper os aplicativos. Ele aumenta e diminui automaticamente à medida que arquivos são adicionados e removidos, o que elimina a necessidade de provisionar e gerenciar a capacidade para acomodar o crescimento. Para obter mais informações, consulte a [documentação do Amazon Elastic File System](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEFS.html).

**Serviços relacionados de terceiros**
+ Para algumas workloads e aplicações monitoradas no Application Insights, o **Prometheus JMX Exporter** é instalado usando o AWS Systems Manager Distributor para que o CloudWatch Application Insights possa recuperar métricas específicas do Java. Quando você escolhe monitorar uma aplicação Java, o Application Insights instala automaticamente o Prometheus JMX Exporter para você. 

## Componentes da aplicação com suporte
<a name="appinsights-components"></a>

O CloudWatch Application Insights verifica seu grupo de recursos para identificar os componentes da aplicação. Os componentes podem ser individuais, agrupados automaticamente (como instâncias em um grupo de Auto Scaling ou por trás de um load balancer) ou personalizados (agrupando instâncias do Amazon EC2 individuais). 

Os seguintes componentes são compatíveis com o CloudWatch Application Insights:

**AWSComponentes da**
+ Amazon EC2
+ Amazon EBS
+ Amazon RDS
+ Elastic Load Balancing: Application Load Balancer e Classic Load Balancer (todas as instâncias de destino desses balanceadores de carga são identificadas e configuradas).
+ Grupos do Amazon EC2 Auto Scaling: AWS Auto Scaling (os grupos do Auto Scaling são configurados dinamicamente para todas as instâncias de destino; se a aplicação aumentar a escala na vertical, o CloudWatch Application Insights configurará automaticamente as novas instâncias). Os grupos do Auto Scaling não têm suporte para grupos de recursos baseados em pilha do CloudFormation.
+ AWS Lambda
+ Amazon Simple Queue Service (Amazon SQS)
+ Tabela do Amazon DynamoDB
+ Métricas de bucket do Amazon S3
+ AWS Step Functions
+ Etapas da API REST do Amazon API Gateway
+ Amazon Elastic Container Service (Amazon ECS): cluster, serviço e tarefa
+ Amazon Elastic Kubernetes Service (Amazon EKS): cluster
+ Kubernetes no Amazon EC2: cluster do Kubernetes em execução no EC2
+ Tópico do Amazon SNS

Atualmente, nenhum outro recurso do tipo de componente é rastreado pelo CloudWatch Application Insights. Se um tipo de componente que é compatível não aparecer na sua aplicação do Application Insights, pode ser que ele já esteja registrado e sendo gerenciado por outra aplicação sua monitorada pelo Application Insights. 

## Pilhas de tecnologia compatíveis
<a name="appinsights-stack"></a>

É possível usar o CloudWatch Application Insights para monitorar suas aplicações executadas em sistemas operacionais Windows Server e Linux selecionando a opção de menu suspenso da camada de aplicações para uma das seguintes tecnologias: 
+ Front‐end: servidor web do Microsoft Internet Information Services (IIS)
+ Nível do operador: 
  + NET Framework 
  + .NET Core
+ Aplicações:
  + Java
  + Implantações padrão, distribuídas e de alta disponibilidade do SAP NetWeaver
+  Active Directory
+ SharePoint
+ Bancos de dados: 
  + Microsoft SQL Server em execução no Amazon RDS ou no Amazon EC2 (incluindo configurações de alta disponibilidade do SQL Server. Consulte )., [Exemplos de configuração do componente](component-configuration-examples.md)).
  + MySQL em execução no Amazon RDS, no Amazon Aurora ou no Amazon EC2
  + PostgreSQL em execução no Amazon RDS ou no Amazon EC2
  + Tabela do Amazon DynamoDB
  + Oracle em execução no Amazon RDS ou no Amazon EC2
  + Banco de dados SAP HANA em uma única instância do Amazon EC2 e várias instâncias do EC2
  + Configuração de alta disponibilidade do banco de dados SAP HANA entre zonas de disponibilidade
  + Banco de dados SAP Sybase ASE em uma única instância do Amazon EC2
  + Configuração de alta disponibilidade do banco de dados SAP Sybase ASE entre zonas de disponibilidade

Se nenhuma das pilhas de tecnologia listadas acima se aplicar aos recursos da aplicação, será possível monitorar a pilha de aplicações escolhendo **Custom (Personalizar)** no menu suspenso da camada de aplicação na página **Manage monitoring (Gerenciar monitoramento)**.

# Trabalhos do Amazon CloudWatch Application Insights
<a name="appinsights-how-works"></a>

O CloudWatch Application Insights fornece monitoramento dos recursos das suas aplicações. As informações apresentadas a seguir descrevem como o Application Insights funciona.

**Topics**
+ [Como Application Insights monitora aplicações](#appinsights-how-works-sub)
+ [Retenção de dados](#appinsights-retention)
+ [Cotas](#appinsights-limits)
+ [Pacotes do AWS Systems Manager (SSM) usados pelo CloudWatch Application Insights](appinsights-ssm-packages.md)
+ [Documentos do AWS Systems Manager (SSM) usados ​​pelo CloudWatch Application Insights](appinsights-ssm-documents.md)

## Como Application Insights monitora aplicações
<a name="appinsights-how-works-sub"></a>

As informações apresentadas a seguir descrevem como o Application Insights realiza o monitoramento de aplicações.

**Configuração e descoberta de aplicação**  
Na primeira vez em que uma aplicação é adicionada ao CloudWatch Application Insights, ele verifica os componentes da aplicação com relação aos principais logs, métricas e outras fontes de dados recomendados que devem ser monitorados para a aplicação. É possível, então, configurar a aplicação com base nessas recomendações. 

**Pré-processamento de dados**  
O CloudWatch Application Insights analisa continuamente as fontes de dados que estão sendo monitoradas em todos os recursos da aplicação para detectar anomalias de métrica e erros de log (observações). 

**Detecção de problema inteligente**  
O mecanismo do CloudWatch Application Insights detecta problemas em sua aplicação ao correlacionar observações usando algoritmos de classificação e regras integradas. Para auxiliar na solução de problemas, ele cria painéis automatizados do CloudWatch, que incluem informações contextuais sobre os problemas. 

**Alerta e ação**  
Quando o CloudWatch Application Insights detecta um problema em sua aplicação, ele gera CloudWatch Events para notificar você sobre o problema. Consulte [Cloudwatch Events do Application Insights para problemas detectados](appinsights-cloudwatch-events.md) para obter mais informações sobre como configurar esses Eventos. Além disso, você pode [configurar as notificações do Amazon SNS](appinsights-problem-notifications.md) para receber alertas de problemas detectados.

**Exemplo de cenário**

Você tem uma aplicação ASP .NET baseado em um banco de dados do SQL Server. Repentinamente, o banco de dados começa a apresentar mau funcionamento por causa de alta pressão de memória. Isso causa uma degradação na performance da aplicação e possivelmente erros HTTP 500 nos servidores web e no load balancer.

Com o CloudWatch Application Insights e analytics inteligente, é possível identificar a camada da aplicação que está causando o problema conferindo o painel criado dinamicamente que exibe as métricas relacionadas e os trechos do arquivo de log. Nesse caso, o problema pode estar na camada de banco de dados do SQL.

## Retenção de dados
<a name="appinsights-retention"></a>

O CloudWatch Application Insights retém problemas por 55 dias e observações por 60 dias.

## Cotas
<a name="appinsights-limits"></a>

Para obter cotas padrão do CloudWatch Application Insights, consulte [endpoints e cotas do Amazon CloudWatch Application Insights](https://docs.aws.amazon.com/general/latest/gr/applicationinsights.html). A menos que especificado de outra forma, cada cota é por região da AWS. Entre em contato com o [AWS Support](https://console.aws.amazon.com/support/home#/case/create?issueType=technical) para solicitar aumento na cota de serviço. Muitos serviços têm cotas que não podem ser alteradas. Para obter mais informações sobre as cotas de um serviço específico, consulte a documentação desse serviço. 

# Pacotes do AWS Systems Manager (SSM) usados pelo CloudWatch Application Insights
<a name="appinsights-ssm-packages"></a>

Os pacotes listados nesta seção são usados pelo Application Insights e podem ser gerenciados e implantados de forma independente com o AWS Systems Manager Distributor. Para obter mais informações sobre o SSM Distributor, consulte[AWS Systems Manager Distributor](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor.html) no *Manual do usuário do AWS Systems Manager*.

**Topics**
+ [`AWSObservabilityExporter-JMXExporterInstallAndConfigure`](#configure-java)
+ [`AWSObservabilityExporter-SAP-HANADBExporterInstallAndConfigure`](#appinsights-ssm-sap-prometheus)
+ [`AWSObservabilityExporter-HAClusterExporterInstallAndConfigure`](#appinsights-ssm-sap-prometheus-ha)
+ [`AWSObservabilityExporter-SAP-SAPHostExporterInstallAndConfigure`](#appinsights-ssm-sap-host-exporter)
+ [`AWSObservabilityExporter-SQLExporterInstallAndConfigure`](#appinsights-ssm-sql-prometheus)

## `AWSObservabilityExporter-JMXExporterInstallAndConfigure`
<a name="configure-java"></a>

É possível recuperar métricas Java específicas de workloads a partir do [Prometheus JMX Exporter](https://prometheus.io/docs/instrumenting/exporters/#third-party-exporters) para que o Application Insights configure e monitore alarmes. No console do Application Insights, na página **Manage monitoring** (Gerenciar monitoramento) Página, **JAVA application** (Aplicação JAVA) da lista suspensa **Application tier** (Nível da aplicação). Em **JAVA Prometheus exporter configuration** (Configuração do JAVA Prometheus Exporter), selecione seu **Collection method** (Método de coleta) e **JMX port number** (Número da porta JMX). 

Para usar o [AWS Systems Manager Distributor](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor.html) para empacotar, instalar e configurar o pacote do Prometheus JMX Exporter fornecido pela AWS de modo independente do Application Insights, realize as etapas a seguir.

**Pré-requisitos para usar o pacote SSM do Prometheus JMX Exporter**
+ SSM Agent versão 2.3.1550.0 ou posterior instalado
+ A variável de ambiente JAVA\$1HOME está definida

**Instalar e configurar o pacote `AWSObservabilityExporter-JMXExporterInstallAndConfigure`**  
O pacote `AWSObservabilityExporter-JMXExporterInstallAndConfigure` é um pacote do SSM Distributor que você pode usar para instalar e configurar o [Prometheus JMX Exporter](https://github.com/prometheus/jmx_exporter). Quando as métricas Java são enviadas pelo Prometheus JMX Exporter, é possível configurar o atendente do CloudWatch ppara recuperar as métricas do serviço CloudWatch.

1. Com base em suas preferências, prepare o [arquivo de configuração YAML do Prometheus JMX Exporter](https://github.com/prometheus/jmx_exporter#configuration) localizado no repositório do Prometheus no GitHub. O exemplo de configuração e as descrições de opções podem ser usados para orientar você.

1. Copie o arquivo de configuração YAML do Prometheus JMX Exporter codificado como Base64 para um novo parâmetro SSM em [SSM Parameter Store](https://console.aws.amazon.com/systems-manager/parameters) (Armazenamento de parâmetros do SSM).

1. Navegue até o console do [SSM Distributor](https://console.aws.amazon.com/systems-manager/distributor) e abra a guia **Owned by Amazon** (Propriedade da Amazon). Selecione **AWSObservabilityExporter-JMXExporterInstallAndConfigure** e escolha **Install one time** (Instalar uma vez).

1. Atualize o parâmetro do SSM criado na primeira etapa substituindo “Additional Arguments” (Argumentos adicionais) por:

   ```
   {
     "SSM_EXPORTER_CONFIGURATION": "{{ssm:<SSM_PARAMETER_STORE_NAME>}}",
     "SSM_EXPOSITION_PORT": "9404"
   }
   ```
**nota**  
A porta 9404 é a porta padrão usada para enviar métricas do Prometheus JMX. É possível atualizá-la.

**Exemplo: configurar o atendente do CloudWatch para recuperar métricas do Java**

1. Instale o JMX Exporter do Prometheus, conforme descrito no procedimento anterior. Em seguida, confira o status da porta para verificar que ele está instalado corretamente em sua instância.

   Exemplo de instalação bem-sucedida na instância do Windows

   ```
   PS C:\> curl http://localhost:9404 (http://localhost:9404/)
   StatusCode : 200
   StatusDescription : OK
   Content : # HELP jvm_info JVM version info
   ```

   Exemplo de instalação bem-sucedida na instância do Linux

   ```
   $ curl localhost:9404
   # HELP jmx_config_reload_failure_total Number of times configuration have failed to be reloaded.
   # TYPE jmx_config_reload_failure_total counter
   jmx_config_reload_failure_total 0.0
   ```

1. Crie o arquivo YAML de detecção de serviço do Prometheus. O exemplo de arquivo de detecção de serviço abaixo executa o seguinte:
   + Especifica a porta de host do Prometheus JMX Exporter como `localhost: 9404`.
   + Anexa rótulos (`Application`, `ComponentName` e`InstanceId`) para as métricas, que podem ser definidas como dimensões métricas do CloudWatch.

   ```
   $ cat prometheus_sd_jmx.yaml 
   - targets:
     - 127.0.0.1:9404
     labels:
       Application: myApp
       ComponentName: arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/sampl-Appli-MMZW8E3GH4H2/aac36d7fea2a6e5b
       InstanceId: i-12345678901234567
   ```

1. Crie o arquivo YAML de configuração do Prometheus JMX Exporter. O exemplo de arquivo de configuração a seguir especifica:
   + O intervalo de trabalho de recuperação de métricas e o período de tempo limite.
   + Os trabalhos de recuperação de métricas (`jmx` e `sap`), também conhecido como “scraping”, que incluem o nome do trabalho, o máximo de séries temporais retornadas por vez e o caminho do arquivo de detecção de serviço. 

   ```
   $ cat prometheus.yaml 
   global:
     scrape_interval: 1m
     scrape_timeout: 10s
   scrape_configs:
     - job_name: jmx
       sample_limit: 10000
       file_sd_configs:
         - files: ["/tmp/prometheus_sd_jmx.yaml"]
     - job_name: sap
       sample_limit: 10000
       file_sd_configs:
         - files: ["/tmp/prometheus_sd_sap.yaml"]
   ```

1. Verifique se o atendente do CloudWatch está instalado em sua instância do Amazon EC2 e se a versão é 1.247346.1b249759 ou posterior. Para instalar o atendente do CloudWatch em sua instância do EC2, consulte [Instalar o atendente do CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-on-EC2-Instance.html). Para verificar a versão, consulte [Encontrar informações sobre versões do atendente do CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/troubleshooting-CloudWatch-Agent.html#CloudWatch-Agent-troubleshooting-agent-version).

1. Configure o atendente do CloudWatch. Para obter mais informações sobre como configurar o arquivo de configuração do atendente do CloudWatch, consulte [Criar ou editar manualmente o arquivo de configuração do atendente do CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html). O exemplo do arquivo de configuração do atendente do CloudWatch abaixo executa o seguinte:
   + Especifica o caminho do arquivo de configuração do Prometheus JMX Exporter.
   + Especifica o grupo de logs de destino em que os logs de métrica do EMF serão publicados.
   + Especifica dois conjuntos de dimensões para cada nome da métrica.
   + Envia 8 métricas do CloudWatch (4 nomes da métricas \$1 2 conjuntos de dimensões por nome da métrica).

   ```
   {
      "logs":{
         "logs_collected":{
            ....
         },
         "metrics_collected":{
            "prometheus":{
               "cluster_name":"prometheus-test-cluster",
               "log_group_name":"prometheus-test",
               "prometheus_config_path":"/tmp/prometheus.yaml",
               "emf_processor":{
                  "metric_declaration_dedup":true,
                  "metric_namespace":"CWAgent",
                  "metric_unit":{
                     "jvm_threads_current":"Count",
                     "jvm_gc_collection_seconds_sum":"Second",
                     "jvm_memory_bytes_used":"Bytes"
                  },
                  "metric_declaration":[
                     {
                        "source_labels":[
                           "job"
                        ],
                        "label_matcher":"^jmx$",
                        "dimensions":[
                           [
                              "InstanceId",
                              "ComponentName"
                           ],
                           [
                              "ComponentName"
                           ]
                        ],
                        "metric_selectors":[
                           "^java_lang_threading_threadcount$",
                           "^java_lang_memory_heapmemoryusage_used$",
                           "^java_lang_memory_heapmemoryusage_committed$"
                        ]
                     }
                  ]
               }
            }
         }
      },
      "metrics":{
         ....
      }
   }
   ```

## `AWSObservabilityExporter-SAP-HANADBExporterInstallAndConfigure`
<a name="appinsights-ssm-sap-prometheus"></a>

É possível recuperar métricas SAP HANA específicas de workloads a partir do [exportador de banco de dados Prometheus HANA](https://prometheus.io/docs/instrumenting/exporters/#third-party-exporters) para que o Application Insights configure e monitore alarmes. Para obter mais informações, consulte [Configurar seu banco de dados SAP HANA para monitoramento](appinsights-tutorial-sap-hana.md#appinsights-tutorial-sap-hana-set-up) neste guia.

Para usar o [AWS Systems Manager Distributor](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor.html) para empacotar, instalar e configurar o pacote do exortador de banco de dados Prometheus HANA fornecido pela AWS de maneira independente do Application Insights, realize as etapas a seguir.

**Pré-requisitos para usar o pacote SSM do exportador de banco de dados Prometheus HANA**
+ SSM Agent versão 2.3.1550.0 ou posterior instalado
+ Banco de dados SAP HANA
+ Sistema operacional Linux (SUSE Linux, RedHat Linux)
+ Um segredo com credenciais de monitoramento de banco de dados SAP HANA usando AWS Secrets Manager. Crie um segredo no formato de pares chave-valor, especifique o nome de usuário da chave e insira o usuário do banco de dados para o valor. Adicione uma segunda senha da chave e, em seguida, digite a senha para o valor. Para obter mais informações sobre criação de segredos, consulte [Criar um segredo](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html) no *Guia do usuário do AWS Secrets Manager*. O segredo deve ser formatado da seguinte forma:

  ```
  {
    "username": "<database_user>",
    "password": "<database_password>"
  }
  ```

**Instalar e configurar o pacote `AWSObservabilityExporter-SAP-HANADBExporterInstallAndConfigure`**  
O pacote `AWSObservabilityExporter-SAP-HANADBExporterInstallAndConfigure` é um pacote do SSM Distributor que você pode usar para instalar e configurar o [exportador de banco de dados HANA do Prometheus](https://github.com/prometheus/jmx_exporter). Quando as métricas Java são enviadas pelo exportador de banco de dados HANA do Prometheus, é possível configurar o atendente do CloudWatch para recuperar as métricas do serviço CloudWatch.

1. Criar um parâmetro do SSM no [Parameter Store do SSM](https://console.aws.amazon.com/systems-manager/parameters) para armazenar as configurações do Exportador. Veja a seguir um exemplo do valor de parâmetro.

   ```
   {\"exposition_port\":9668,\"multi_tenant\":true,\"timeout\":600,\"hana\":{\"host\":\"localhost\",\"port\":30013,\"aws_secret_name\":\"HANA_DB_CREDS\",\"scale_out_mode\":true}}
   ```
**nota**  
Neste exemplo, a exportação é executada somente na instância do Amazon EC2 com o banco de dados `SYSTEM` ativo. Ele permanecerá ocioso nas outras instâncias do EC2 para evitar métricas duplicadas. O exportador pode recuperar todas as informações do inquilino do banco de dados a partir do banco de dados `SYSTEM`.

1. Criar um parâmetro do SSM no [Parameter Store do SSM](https://console.aws.amazon.com/systems-manager/parameters) para armazenar as consultas de métricas do exportador. O pacote pode aceitar mais de um parâmetro de métricas. Cada parâmetro deve ter um formato de objeto JSON válido. Veja a seguir um exemplo do valor de parâmetro.

   ```
   {\"SELECT MAX(TIMESTAMP) TIMESTAMP, HOST, MEASURED_ELEMENT_NAME CORE, SUM(MAP(CAPTION, 'User Time', TO_NUMBER(VALUE), 0)) USER_PCT, SUM(MAP(CAPTION, 'System Time', TO_NUMBER(VALUE), 0)) SYSTEM_PCT, SUM(MAP(CAPTION, 'Wait Time', TO_NUMBER(VALUE), 0)) WAITIO_PCT, SUM(MAP(CAPTION, 'Idle Time', 0, TO_NUMBER(VALUE))) BUSY_PCT, SUM(MAP(CAPTION, 'Idle Time', TO_NUMBER(VALUE), 0)) IDLE_PCT FROM sys.M_HOST_AGENT_METRICS WHERE MEASURED_ELEMENT_TYPE = 'Processor' GROUP BY HOST, MEASURED_ELEMENT_NAME;\":{\"enabled\":true,\"metrics\":[{\"name\":\"hanadb_cpu_user\",\"description\":\"Percentage of CPU time spent by HANA DB in user space, over the last minute (in seconds)\",\"labels\":[\"HOST\",\"CORE\"],\"value\":\"USER_PCT\",\"unit\":\"percent\",\"type\":\"gauge\"},{\"name\":\"hanadb_cpu_system\",\"description\":\"Percentage of CPU time spent by HANA DB in Kernel space, over the last minute (in seconds)\",\"labels\":[\"HOST\",\"CORE\"],\"value\":\"SYSTEM_PCT\",\"unit\":\"percent\",\"type\":\"gauge\"},{\"name\":\"hanadb_cpu_waitio\",\"description\":\"Percentage of CPU time spent by HANA DB in IO mode, over the last minute (in seconds)\",\"labels\":[\"HOST\",\"CORE\"],\"value\":\"WAITIO_PCT\",\"unit\":\"percent\",\"type\":\"gauge\"},{\"name\":\"hanadb_cpu_busy\",\"description\":\"Percentage of CPU time spent by HANA DB, over the last minute (in seconds)\",\"labels\":[\"HOST\",\"CORE\"],\"value\":\"BUSY_PCT\",\"unit\":\"percent\",\"type\":\"gauge\"},{\"name\":\"hanadb_cpu_idle\",\"description\":\"Percentage of CPU time not spent by HANA DB, over the last minute (in seconds)\",\"labels\":[\"HOST\",\"CORE\"],\"value\":\"IDLE_PCT\",\"unit\":\"percent\",\"type\":\"gauge\"}]}}
   ```

   Para obter mais informações sobre consultas de métricas, consulte o repositório [https://github.com/SUSE/hanadb_exporter/blob/master/metrics.json](https://github.com/SUSE/hanadb_exporter/blob/master/metrics.json) no GitHub.

1. Navegue até o console do [SSM Distributor](https://console.aws.amazon.com/systems-manager/distributor) e abra a guia **Owned by Amazon** (Propriedade da Amazon). Selecione **AWSObservabilityExporter-SAP-HANADBExporterInstallAndConfigure\$1** e escolha **Install one time** (Instalar uma vez).

1. Atualize o parâmetro do SSM criado na primeira etapa substituindo “Additional Arguments” (Argumentos adicionais) por:

   ```
   {
     "SSM_EXPORTER_CONFIG": "{{ssm:<*SSM_CONFIGURATIONS_PARAMETER_STORE_NAME>*}}",
     "SSM_SID": "<SAP_DATABASE_SID>",
     "SSM_EXPORTER_METRICS_1": "{{ssm:<SSM_FIRST_METRICS_PARAMETER_STORE_NAME>}}",
     "SSM_EXPORTER_METRICS_2": "{{ssm:<SSM_SECOND_METRICS_PARAMETER_STORE_NAME>}}"
   }
   ```

1. Selecione as instâncias do Amazon EC2 com banco de dados SAP HANA e escolha **Run** (Executar).

## `AWSObservabilityExporter-HAClusterExporterInstallAndConfigure`
<a name="appinsights-ssm-sap-prometheus-ha"></a>

Você pode recuperar métricas de cluster de alta disponibilidade (HA) específicas de workloads do [exportador de clusters HANA do Prometheus ](https://prometheus.io/docs/instrumenting/exporters/#third-party-exporters) para o Application Insights a fim de configurar e monitorar alarmes para uma configuração de alta disponibilidade do banco de dados SAP HANA. Para obter mais informações, consulte [Configurar seu banco de dados SAP HANA para monitoramento](appinsights-tutorial-sap-hana.md#appinsights-tutorial-sap-hana-set-up) neste guia.

Para usar o [AWS Systems Manager Distributor](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor.html) para empacotar, instalar e configurar o pacote do exportador de cluster de HA do Prometheus fornecido pela AWS de modo independente do Application Insights, realize as etapas a seguir.

**Pré-requisitos para usar o pacote SSM do Prometheus HA cluster exporter**
+ SSM Agent versão 2.3.1550.0 ou posterior instalado
+ Cluster HA para Pacemaker, Corosync, SBD e DRBD
+ Sistema operacional Linux (SUSE Linux, RedHat Linux)

**Instalar e configurar o pacote `AWSObservabilityExporter-HAClusterExporterInstallAndConfigure`**  
O pacote `AWSObservabilityExporter-HAClusterExporterInstallAndConfigure` é um pacote do SSM Distributor que você pode usar para instalar e configurar o Prometheus HA Cluster Exporter. Quando as métricas de cluster são enviadas pelo exportador do banco de dados HANA do Prometheus, é possível configurar o atendente do CloudWatch para recuperar as métricas do serviço CloudWatch.

1. Criar um parâmetro do SSM no [Parameter Store do SSM](https://console.aws.amazon.com/systems-manager/parameters) para armazenar as configurações do exportador no formato JSON. Veja a seguir um exemplo do valor de parâmetro.

   ```
   {\"port\":\"9664\",\"address\":\"0.0.0.0\",\"log-level\":\"info\",\"crm-mon-path\":\"/usr/sbin/crm_mon\",\"cibadmin-path\":\"/usr/sbin/cibadmin\",\"corosync-cfgtoolpath-path\":\"/usr/sbin/corosync-cfgtool\",\"corosync-quorumtool-path\":\"/usr/sbin/corosync-quorumtool\",\"sbd-path\":\"/usr/sbin/sbd\",\"sbd-config-path\":\"/etc/sysconfig/sbd\",\"drbdsetup-path\":\"/sbin/drbdsetup\",\"enable-timestamps\":false}
   ```

   Para obter mais informações sobre a configuração do exportador, consulte o repositório [https://github.com/ClusterLabs/ha_cluster_exporter/blob/master/ha_cluster_exporter.yaml](https://github.com/ClusterLabs/ha_cluster_exporter/blob/master/ha_cluster_exporter.yaml) no GitHub.

1. Navegue até o console do [SSM Distributor](https://console.aws.amazon.com/systems-manager/distributor) e abra a guia **Owned by Amazon** (Propriedade da Amazon). Selecione **AWSOBservabilityExporter-HaclusterExporterInstallAndConfigure\$1** e escolha **Install one time** (Instalar uma vez).

1. Atualize o parâmetro do SSM criado na primeira etapa substituindo “Additional Arguments” (Argumentos adicionais) por:

   ```
   {
     "SSM_EXPORTER_CONFIG": "{{ssm:<*SSM_CONFIGURATIONS_PARAMETER_STORE_NAME>*}}"
   }
   ```

1. Selecione as instâncias do Amazon EC2 com banco de dados SAP HANA e escolha **Run** (Executar).

## `AWSObservabilityExporter-SAP-SAPHostExporterInstallAndConfigure`
<a name="appinsights-ssm-sap-host-exporter"></a>

Você pode recuperar, do [exportador do Prometheus para host do SAP](https://prometheus.io/docs/instrumenting/exporters/#third-party-exporters), as métricas do SAP NetWeaver específicas da workload, para que o Application Insights configure e monitore alarmes para as implantações distribuídas e de alta disponibilidade do SAP NetWeaver.

Para usar o [AWS Systems Manager Distributor](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor.html) para empacotar, instalar e configurar o pacote do exportador do host SAP independentemente do Application Insights, conclua as etapas a seguir.

**Pré-requisitos para usar o pacote do SSM de exportador do host SAP Prometheus**
+ SSM Agent versão 2.3.1550.0 ou posterior instalado
+ Servidores de aplicações do SAP NetWeaver
+ Sistema operacional Linux (SUSE Linux, RedHat Linux)

**Instalar e configurar o pacote `AWSObservabilityExporter-SAP-SAPHostExporterInstallAndConfigure`**  
O pacote `AWSObservabilityExporter-SAP-SAPHostExporterInstallAndConfigure` é um pacote do SSM Distributor que você pode usar para instalar e configurar o exportador de métricas Prometheus do SAP NetWeaver. Quando as métricas do SAP NetWeaver são enviadas pelo exportador do Prometheus, o agente do CloudWatch pode ser configurado para recuperar as métricas para o serviço CloudWatch.

1. Criar um parâmetro do SSM no [Parameter Store do SSM](https://console.aws.amazon.com/systems-manager/parameters) para armazenar as configurações do exportador no formato JSON. Veja a seguir um exemplo do valor de parâmetro.

   ```
   {\"address\":\"0.0.0.0\",\"port\":\"9680\",\"log-level\":\"info\",\"is-HA\":false}
   ```
   + **address**

     O endereço de destino para o qual o Prometheus envia métricas. O valor padrão é `localhost`.
   + **porta**

     A porta de destino para a qual enviar métricas do Prometheus. O valor padrão é `9680`.
   + **is-HA**

     `true` para implantações de alta disponibilidade do SAP NetWeaver. Para todas as outras implantações, o valor é `false`.

1. Navegue até o console do [SSM Distributor](https://console.aws.amazon.com/systems-manager/distributor) e abra a guia **Owned by Amazon** (Propriedade da Amazon). Selecione **AWSObservabilityExporter-SAP-SAPHostExporterInstallAndConfigure** e escolha **Install one time** (Instalar uma vez).

1. Atualize o parâmetro do SSM criado na primeira etapa substituindo “Additional Arguments” (Argumentos adicionais) por:

   ```
   {
     "SSM_EXPORTER_CONFIG": "{{ssm:<SSM_CONFIGURATIONS_PARAMETER_STORE_NAME>}}",
     "SSM_SID": "<SAP_DATABASE_SID>",
     "SSM_INSTANCES_NUM": "<instances_number seperated by comma>"
   }
   ```

   **Exemplo**

   ```
   {
     "SSM_EXPORTER_CONFIG": "{{ssm:exporter_config_paramter}}",
     "SSM_INSTANCES_NUM": "11,12,10",
     "SSM_SID": "PR1"
   }
   ```

1. Selecione as instâncias do Amazon EC2 com aplicações do SAP NetWeaver e escolha **Run** (Executar).

**nota**  
O exportador do Prometheus processa as métricas do SAP NetWeaver em um endpoint local. O endpoint local só pode ser acessado pelos usuários do sistema operacional na instância do Amazon EC2. Assim, após a instalação do pacote do exportador, as métricas ficam disponíveis para todos os usuários do sistema operacional. O endpoint local padrão é o `localhost:9680/metrics`.

## `AWSObservabilityExporter-SQLExporterInstallAndConfigure`
<a name="appinsights-ssm-sql-prometheus"></a>

É possível recuperar métricas de SQL Server específicas de workloads a partir do [Exportador do Prometheus SQL](https://prometheus.io/docs/instrumenting/exporters/#third-party-exporters) para que o Application Insights monitore os principais alarmes. 

Para usar o [Distribuidor do AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor.html) para empacotar, instalar e configurar o pacote do exportador do SQL independentemente do Application Insights, conclua as etapas a seguir.

**Pré-requisitos para usar o pacote SSM do exportador do Prometheus SQL**
+ SSM Agent versão 2.3.1550.0 ou posterior instalado
+ Instância do Amazon EC2 executando o SQL Server no Windows com a autenticação de usuário do SQL Server ativada.
+ Um usuário do SQL Server com as permissões a seguir:

  ```
  GRANT VIEW ANY DEFINITION TO
  ```

  ```
  GRANT VIEW SERVER STATE TO
  ```
+ Um segredo contendo a string de conexão do banco de dados usando AWS Secrets Manager. Para obter mais informações sobre criação de segredos, consulte [Criar um segredo](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html) no *Guia do usuário do AWS Secrets Manager*. O segredo deve ser formatado da seguinte forma:

  ```
  {
    "data_source_name":"sqlserver://<username>:<password>@localhost:1433"
  }
  ```
**nota**  
Se a senha ou o nome de usuário contiverem caracteres especiais, você deverá codificar com porcento os caracteres especiais para garantir uma conexão com êxito ao banco de dados.

**Instalar e configurar o pacote `AWSObservabilityExporter-SQLExporterInstallAndConfigure`**  
O pacote `AWSObservabilityExporter-SQLExporterInstallAndConfigure` é um pacote do SSM Distributor que pode ser usado para instalar e configurar o exportador de métricas SQL Prometheus. Quando as métricas são enviadas pelo exportador do Prometheus, é possível configurar o agente do CloudWatch para recuperar as métricas do serviço CloudWatch.

1. Com base nas suas preferências, prepare a configuração YAML do SQL Exporter. O exemplo de configuração a seguir tem uma única métrica configurada. Use a [configuração de exemplo](https://github.com/burningalchemist/sql_exporter/blob/master/examples/sql_exporter.yml) para atualizar a configuração com métricas adicionais ou criar sua própria configuração.

   ```
   ---
   global:
     scrape_timeout_offset: 500ms
     min_interval: 0s
     max_connections: 3
     max_idle_connections: 3
   target:
     aws_secret_name: <SECRET_NAME>
     collectors:
       - mssql_standard
   collectors:
     - collector_name: mssql_standard
       metrics: 
       - metric_name: mssql_batch_requests
         type: counter
         help: 'Number of command batches received.'
         values: [cntr_value]
         query: |
           SELECT cntr_value
           FROM sys.dm_os_performance_counters WITH (NOLOCK)
           WHERE counter_name = 'Batch Requests/sec'
   ```

1. Copie o arquivo de configuração YAML do exportador do Prometheus SQL codificado como Base64 para um novo parâmetro SSM em [Armazenamento de parâmetros do SSM](https://console.aws.amazon.com/systems-manager/parameters).

1. Navegue até o console do [SSM Distributor](https://console.aws.amazon.com/systems-manager/distributor) e abra a guia **Owned by Amazon** (Propriedade da Amazon). Selecione **AWSObservabilityExporter-SQLExporterInstallAndConfigure** e escolha **Instalar uma vez**.

1. Substitua os "Argumentos adicionais" pelas informações a seguir. O `SSM_PARAMETER_NAME` é o nome do parâmetro que foi criado na Etapa 2.

   ```
   {
     "SSM_EXPORTER_CONFIGURATION": 
       "{{ssm:<SSM_PARAMETER_STORE_NAME>}}",
       "SSM_PROMETHEUS_PORT": "9399",
       "SSM_WORKLOAD_NAME": "SQL"                         
   }
   ```

1. Selecione a instância do Amazon EC2 com o banco de dados SQL Server e escolha executar.

# Documentos do AWS Systems Manager (SSM) usados ​​pelo CloudWatch Application Insights
<a name="appinsights-ssm-documents"></a>

O Application Insights usa os documentos do SSM listados nesta seção para definir as ações que o AWS Systems Manager executa em suas instâncias gerenciadas. Esses documentos utilizam a funcionalidade `Run Command` do Systems Manager para automatizar as tarefas necessárias para a execução das funcionalidades de monitoramento do Application Insights. As programações de execuções para esses documentos são mantidas pelo Application Insights e não podem ser alteradas.

Para obter mais informações sobre os documentos do SSM, consulte [Documentos do AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/documents.html) no *Guia do usuário do AWS Systems Manager*.

## Documentos gerenciados pelo CloudWatch Application Insights
<a name="ssm-documents-appinsights-managed"></a>

A tabela apresentada a seguir lista os documentos do SSM que são gerenciados pelo Application Insights.


| Nome do documento | Descrição | Programação de execução | 
| --- | --- | --- | 
|  `AWSEC2-DetectWorkload`  |  Detecta automaticamente as aplicações em execução no seu ambiente de aplicações que podem ser configuradas para serem monitoradas pelo Application Insights.  |  Esse documento é executado de hora em hora no ambiente de aplicações para obter detalhes atualizados das aplicações.  | 
|  `AWSEC2-CheckPerformanceCounterSets`  |  Verifica se os namespaces do contador de performance estão habilitados nas instâncias do Windows do Amazon EC2.  |  Esse documento é executado de hora em hora no seu ambiente de aplicações e vai monitorar somente as métricas do contador de performance se os namespaces correspondentes estiverem habilitados.  | 
|  `AWSEC2-ApplicationInsightsCloudwatchAgentInstallAndConfigure`  |  Instala e configura o agente do CloudWatch com base na configuração de monitoramento dos componentes da aplicação.  |  Esse documento é executado a cada 30 minutos para garantir que a configuração do agente do CloudWatch esteja sempre precisa e atualizada. O documento também é executado imediatamente após uma alteração ser realizada na configuração de monitoramento da aplicação, como a adição ou a remoção de métricas ou a atualização das configurações de log.   | 

## Documentos gerenciados pelo AWS Systems Manager
<a name="ssm-documents-aws-managed"></a>

Os documentos apresentados a seguir são usados ​​pelo CloudWatch Application Insights e gerenciados pelo Systems Manager.

**`AWS-ConfigureAWSPackage`**  
O Application Insights usa esse documento para instalar e desinstalar pacotes de distribuidores exportadores do Prometheus, para coletar métricas específicas da workload e para habilitar o monitoramento abrangente de workloads em instâncias do Amazon EC2 do cliente. O CloudWatch Application Insights instalará os pacotes de distribuidores exportadores do Prometheus somente se a workload de destino correlacionada estiver em execução na sua instância. 

A tabela apresentada a seguir lista os pacotes de distribuidores exportadores do Prometheus e as workloads de destino correlacionadas.


| Nome do pacote de distribuidor exportador do Prometheus | Workload de destino | 
| --- | --- | 
|  `AWSObservabilityExporter-HAClusterExporterInstallAndConfigure`  |  SAP HANA HA  | 
|  `AWSObservabilityExporter-JMXExporterInstallAndConfigure`  |  Java/JMX  | 
|  `AWSObservabilityExporter-SAP-HANADBExporterInstallAndConfigure`  |  SAP HANA  | 
|  `AWSObservabilityExporter-SAP-SAPHostExporterInstallAndConfigure`  |  NetWeaver  | 
|  `AWSObservabilityExporter-SQLExporterInstallAndConfigure`  |  SQL Server (Windows) e SAP ASE (Linux)  | 

**`AmazonCloudWatch-ManageAgent`**  
O Application Insights usa esse documento para gerenciar o status e a configuração do agente do CloudWatch em suas instâncias e para coletar métricas e logs internos no nível do sistema usando as instâncias do Amazon EC2 em sistemas operacionais.

# Pré-requisitos, políticas do IAM e permissões necessárias para obter acesso ao CloudWatch Application Insights
<a name="appinsights-accessing"></a>

Para começar a usar o CloudWatch Application Insights, verifique se você atendeu aos pré-requisitos apresentados a seguir, criou uma política do IAM e anexou as permissões, se necessário.

**Topics**
+ [Pré-requisitos para a configuração de uma aplicação para monitoramento](appinsights-prereqs.md)
+ [Política do IAM para o CloudWatch Application Insights](appinsights-iam.md)
+ [Permissões de função do IAM para integração de aplicações baseadas em conta](appinsights-account-based-onboarding-permissions.md)

# Pré-requisitos para a configuração de uma aplicação para monitoramento
<a name="appinsights-prereqs"></a>

É necessário concluir os seguintes pré-requisitos para configurar uma aplicação com o CloudWatch Application Insights:
+ **Capacitação do AWS Systems Manager**: instale o Systems Manager Agent (SSM Agent) nas suas instâncias do Amazon EC2 e capacite-as para o SSM. Para obter informações sobre como instalar o SSM Agent, consulte [Configurando o AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-setting-up.html), no *Guia do usuário do AWS Systems Manager*.
+ **Perfil de instância do Amazon EC2**: você deve anexar os perfis de instância do Amazon EC2 a seguir para habilitar o Systems Manager
  + Você deve anexar o perfil do `AmazonSSMManagedInstanceCore` para habilitar o Systems Manager. Para obter mais informações, consulte [exemplos de políticas baseadas em identidade do AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/auth-and-access-control-iam-identity-based-access-control.html).
  + Você deve anexar a política do `CloudWatchAgentServerPolicy` para permitir que métricas e logs de instâncias sejam emitidos por meio do CloudWatch. Para obter mais informações, consulte [Criar perfis e usuários do IAM para uso com o agente do CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create-iam-roles-for-cloudwatch-agent.html).
+ **Grupos de recursos do AWS** – Para integrar suas aplicações ao CloudWatch Application Insights, crie um grupo de recursos da AWS que inclua todos os recursos associados usados por sua pilha de aplicações. Isso inclui Application Load Balancers, instâncias do Amazon EC2 que executam o IIS e o front-end da Web, níveis de operador do .NET e bancos de dados SQL Server. Para obter mais informações sobre componentes de aplicações e pilhas de tecnologia compatíveis com o Application Insights, consulte [Componentes da aplicação com suporte](appinsights-what-is.md#appinsights-components). O CloudWatch Application Insights inclui automaticamente grupos do Auto Scaling usando as mesmas pilhas do CloudFormation ou etiquetas que seu grupo de recursos, pois grupos do Auto Scaling não são compatíveis com o grupos de recursos do CloudFormation. Para obter mais informações, consulte [Conceitos básicos do AWS Resource Groups](https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted.html).
+ **Permissões do IAM**: para usuários que não têm acesso administrativo, você deve criar uma política do AWS Identity and Access Management (IAM) que permita ao Application Insights criar um perfil vinculado ao serviço e anexá-lo à identidade do usuário. Para obter informações sobre como criar uma política do IAM, consulte [Política do IAM para o CloudWatch Application Insights](appinsights-iam.md).
+ **Perfil vinculado ao serviço**: o Application Insights usa os perfis vinculadas ao serviço do AWS Identity and Access Management (IAM). Ao criar a primeira aplicação com o Application Insights, é criada uma função vinculada ao serviço no console do Application Insights. Para obter mais informações, consulte [Usar funções vinculadas ao serviço do CloudWatch Application Insights](CHAP_using-service-linked-roles-appinsights.md).
+ **Suporte às métricas de contador de performance para instâncias do Windows do EC2**: para monitorar as métricas de contador de performance em suas instâncias do Windows do Amazon EC2, os contadores de performance devem ser instalados nas instâncias. Para métricas de contador de performance e nomes de conjuntos de contadores de performance correspondentes, consulte [Métricas de contador de performance](application-insights-performance-counter.md). Para obter mais informações sobre contadores de performance, consulte [Contadores de performance](https://docs.microsoft.com/en-us/windows/win32/perfctrs/performance-counters-portal).
+ **Agente do Amazon CloudWatch**: o Application Insights instala e configura o agente do CloudWatch. Se você tiver o agente CloudWatch instalado, o Application Insights manterá sua configuração. Para evitar um conflito de mesclagem, remova a configuração de recursos que você deseja usar no Application Insights do arquivo de configuração do agente do CloudWatch existente. Para obter mais informações, consulte [Criar ou editar manualmente o arquivo de configuração do atendente do CloudWatch](CloudWatch-Agent-Configuration-File-Details.md).

# Política do IAM para o CloudWatch Application Insights
<a name="appinsights-iam"></a>

Para usar o CloudWatch Application Insights, é necessário criar uma [política do AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) e anexá-la ao usuário, grupo ou perfil. Para obter mais informações sobre usuários, grupos e perfis, consulte [Identidades do IAM (usuários, grupos e perfis)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html). A política do IAM define as permissões do usuário.

**Para criar uma política do IAM usando o console**  
Para criar uma política do IAM usando o console do IAM, execute as seguintes etapas.

1. Acesse o [console do IAM](https://console.aws.amazon.com/iam/home). No painel de navegação à esquerda, selecione **Policies (Políticas)**.

1. Na parte superior da página, selecione **Create policy (Criar política)**.

1. Selecione a guia **JSON**.

1. Copie e cole o documento JSON a seguir na guia **JSON**.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Action": [
                   "applicationinsights:*",
                   "iam:CreateServiceLinkedRole",
                   "iam:ListRoles",
                   "resource-groups:ListGroups"
               ],
               "Effect": "Allow",
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Selecione **Review Policy (Revisar política)**.

1. Insira um **Name (Nome)** para a política, por exemplo, "AppInsightsPolicy". Opcionalmente, insira uma **Description (Descrição)**.

1. Selecione **Create Policy (Criar política)**.

1. No painel de navegação esquerdo, escolha **Grupos de usuários**, **Usuários** ou **Perfis**.

1. Selecione o nome do grupo de usuários, usuário ou perfil ao qual deseja anexar a política.

1. Selecione **Add permissions (Adicionar permissões)**.

1. Selecione **Attach existing policies directly (Anexar políticas existentes diretamente)**.

1. Procure a política que acabou de criar e marque a caixa de seleção à esquerda do nome da política.

1. Selecione **Next: Review (Próximo: revisar)**.

1. Certifique-se de que a política correta está listada e selecione **Add permissions (Adicionar permissões)**.

1. Faça login com o usuário associado à política que você acabou de criar ao usar o CloudWatch Application Insights.

**Para criar uma política do IAM usando a AWS CLI**  
Para criar uma política do IAM usando a AWS CLI, execute a operação [create-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/create-policy.html) na linha de comando utilizando o documento JSON acima como um arquivo na pasta atual. 

**Para criar uma política do IAM usando o AWS Tools for Windows PowerShell**  
Para criar uma política do IAM usando o AWS Tools for Windows PowerShell, execute o cmdlt [New-IAMPolicy](https://docs.aws.amazon.com/powershell/latest/reference/items/New-IAMPolicy.html) utilizando documento JSON acima como um arquivo na pasta atual. 

# Permissões de função do IAM para integração de aplicações baseadas em conta
<a name="appinsights-account-based-onboarding-permissions"></a>

Se você quiser integrar todos os recursos em sua conta e optar por não usar a [Política de gerenciamento do Application Insights](security-iam-awsmanpol-appinsights.md) para acesso total à funcionalidade do Application Insights, você deve anexar as seguintes permissões à sua função do IAM para que o Application Insights possa descobrir todos os recursos em sua conta:

```
"ec2:DescribeInstances" 
"ec2:DescribeNatGateways"
"ec2:DescribeVolumes"
"ec2:DescribeVPCs"
"rds:DescribeDBInstances"
"rds:DescribeDBClusters"
"sqs:ListQueues"
"elasticloadbalancing:DescribeLoadBalancers"
"autoscaling:DescribeAutoScalingGroups"
"lambda:ListFunctions"
"dynamodb:ListTables"
"s3:ListAllMyBuckets"
"sns:ListTopics"
"states:ListStateMachines"
"apigateway:GET"
"ecs:ListClusters"
"ecs:DescribeTaskDefinition" 
"ecs:ListServices"
"ecs:ListTasks"
"eks:ListClusters"
"eks:ListNodegroups"
"fsx:DescribeFileSystems"
"route53:ListHealthChecks"
"route53:ListHostedZones"
"route53:ListQueryLoggingConfigs"
"route53resolver:ListFirewallRuleGroups"
"route53resolver:ListFirewallRuleGroupAssociations"
"route53resolver:ListResolverEndpoints"
"route53resolver:ListResolverQueryLogConfigs"
"route53resolver:ListResolverQueryLogConfigAssociations"
"logs:DescribeLogGroups"
"resource-explorer:ListResources"
```

# Configuração da aplicação para monitoramento usando o Console de gerenciamento da AWS
<a name="appinsights-setting-up"></a>

Esta seção fornece as etapas para instalar, configurar e gerenciar a aplicação do CloudWatch Application Insights usando o console, a AWS CLI e o AWS Tools for Windows PowerShell.

**Topics**
+ [Etapas do console](appinsights-setting-up-console.md)
+ [Etapas da linha de comando](appinsights-setting-up-command.md)
+ [Eventos](appinsights-cloudwatch-events.md)
+ [Notificações](appinsights-problem-notifications.md)

# Instalar, configurar e gerenciar sua aplicação para monitoramento no console do CloudWatch
<a name="appinsights-setting-up-console"></a>

Esta seção fornece as etapas para instalar, configurar e gerenciar a aplicação para monitoramento no console do CloudWatch.

**Topics**
+ [Adicionar e configurar uma aplicação](#appinsights-add-configure)
+ [Habilitar o Application Insights para monitoramento de recursos do Amazon ECS e do Amazon EKS](#appinsights-container-insights)
+ [Desabilitar o monitoramento de um componente da aplicação](#appinsights-disable-monitoring)
+ [Excluir uma aplicação](#appinsights-delete-app)

## Adicionar e configurar uma aplicação
<a name="appinsights-add-configure"></a>

**Adicionar e configurar uma aplicação no console do CloudWatch**  
Para começar a usar o CloudWatch Application Insights no console do CloudWatch, siga estas etapas.

1. **Início.** Abra a [página inicial do console do CloudWatch](https://console.aws.amazon.com/cloudwatch). No painel de navegação esquerdo, em **Insights**, escolha **Application Insights**. Essa página exibe a lista de aplicações que são monitoradas pelo Application Insights do CloudWatch, além dos status de monitoramento. 

1. **Adicione uma aplicação.** Para configurar o monitoramento para sua aplicação, escolha **Add an application** (Adicionar uma aplicação). Ao escolher **Add an application** (Adicionar uma aplicação), você será direcionado para **Choose Application Type** (Escolher o tipo de aplicação). 
   + **Aplicação baseada em grupo de recursos**. Ao selecionar essa opção, você pode escolher quais grupos de recursos monitorar nessa conta. Para usar várias aplicações em um componente, você deve usar o monitoramento baseado em grupos de recursos. 
   + **Aplicação baseada em conta**. Ao selecionar essa opção, você poderá monitorar todos os recursos dessa conta. Se você quiser monitorar todos os recursos em uma conta, recomendamos usar esta opção em vez da a opção baseada em grupo de recursos, pois o processo de integração de aplicações é mais rápido.
**nota**  
Não é possível combinar o monitoramento baseado em grupo de recursos com o monitoramento baseado em conta usando o Application Insights. Para alterar o tipo de aplicação, você deve excluir todas aquelas que estão sendo monitoradas e **Choose Application Type** (Escolher o tipo de aplicação). 

   Quando você adiciona sua primeira aplicação para monitoramento, o CloudWatch Application Insights cria uma função vinculada ao serviço em sua conta, o que dá permissões ao Application Insights para chamar outros serviços da AWS em seu nome. Para obter mais informações sobre a função vinculada ao serviço criada em sua conta pelo Application Insights, consulte [Usar funções vinculadas ao serviço do CloudWatch Application Insights](CHAP_using-service-linked-roles-appinsights.md).

1. 

------
#### [ Resource-based application monitoring ]

   1. **Selecione uma aplicação ou grupo de recursos.**Na página **Specify application details** (Especificar os detalhes da aplicação), selecione na lista suspensa o grupo de recursos da AWS que contém os recursos da sua aplicação. Esses recursos incluem servidores front-end, load balancers, grupos de Auto Scaling e servidores de banco de dados. 

      Se você não criou um grupo de recursos para sua aplicação, pode fazer isso escolhendo **Create new resource group** (Criar grupo de recursos). Para obter mais informações sobre a criação de grupos de recursos, consulte [https://docs.aws.amazon.com/ARG/latest/userguide/welcome.html](https://docs.aws.amazon.com/ARG/latest/userguide/welcome.html). 

   1. **Notificações para insights de problemas.** Para visualizar e receber notificações quando problemas forem detectados em aplicações selecionadas, selecione notificações do Amazon SNS ou Opsitems do OpsCenter do Systems Manager.

      1. **Configure a notificação do Amazon SNS (recomendado).** Escolha **Selecionar tópico existente** ou **Criar tópico**. 

      1. **Integração ao Systems Manager OpsCenter da AWS.** Em **Configurações avançadas**, marque a caixa de seleção **Gerar Opsitems do OpsCenter do Systems Manager para ações corretivas**. Para rastrear as operações executadas para resolver itens de trabalho operacionais (OpsItems) relacionados aos recursos da AWS, forneça o ARN do tópico do Amazon SNS.

   1. **Monitorar CloudWatch Events**. Marque a caixa de seleção para integrar o monitoramento do Application Insights com o CloudWatch Events para obter insights do Amazon EBS, Amazon EC2,AWS CodeDeploy, Amazon ECS, APIs e notificações do AWS Health, Amazon RDS, Amazon S3 eAWS Step Functions.

   1. **Etiquetas (opcionais**. O CloudWatch Application Insights oferece suporte a grupos de recurso baseados em etiquetas e baseados no CloudFormation (com exceção dos grupos do Auto Scaling). Para obter mais informações, consulte [Trabalhar com o Tag Editor](https://docs.aws.amazon.com/ARG/latest/userguide/tag-editor.html).

   1. Escolha **Próximo**.

      Um [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) será gerado para a aplicação no formato a seguir.

      ```
      arn:partition:applicationinsights:region:account-id:application/resource-group/resource-group-name
      ```

      Exemplo

      ```
      arn:aws:applicationinsights:us-east-1:123456789012:application/resource-group/my-resource-group
      ```

   1. Na página **Revisar componentes detectados**, em **Revisar componentes para monitoramento**, a tabela lista os componentes detectados e suas workloads detectadas associadas.
**nota**  
Para componentes que ofereçam suporte a várias workloads personalizadas, é possível monitorar até cinco workloads para cada componente. Essas workloads serão monitoradas separadamente do componente.  
![\[A seção de componentes detectados do console do CloudWatch Application Insights: visão geral dos componentes detectados e das workloads associadas.\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/appinsights-multiapp-review-component.png)

      Em **Workloads associadas**, há várias mensagens possíveis que aparecem se uma workload não estiver listada.
      + **Não foi possível detectar workloads**: ocorreu um problema ao tentar detectar workloads. Certifique-se de ter concluído [Pré-requisitos para a configuração de uma aplicação para monitoramento](appinsights-prereqs.md). Se você precisar adicionar workloads, escolha **Editar componente**.
      + **Nenhuma workload trabalho detectada**: não detectamos nenhuma workload. Talvez seja necessário adicionar workloads. Para fazer isso, escolha **Editar componente**.
      + **Não aplicável**: o componente não oferece suporte a workloads personalizadas e será monitorado com métricas, alarmes e logs padrão. Você não pode adicionar workloads a esses componentes.

   1. Para editar um componente, selecione um componente e, em seguida, escolha **Editar componente**. Um painel lateral se abrirá com as workloads detectadas no componente. Nesse painel, é possível editar os detalhes do componente e adicionar novas workloads.  
![\[A análise detectou a seção de componentes do console do CloudWatch Application Insights: workloads associadas podem ser editadas.\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/appinsights-multiapp-edit-component.png)
      + Para editar o tipo ou nome da workload, use a lista suspensa.  
![\[A seção Editar componente do console do CloudWatch Application Insights: lista suspensa do tipo de workload.\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/appinsights-multiapp-edit-name-type.png)
      + Para adicionar uma workload ao componenyte, escolha **Adicionar nova workload**.  
![\[A seção de edição do componente do console do CloudWatch Application Insights: botão inferior esquerdo para adicionar uma nova workload.\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/appinsights-multiapp-add-workload.png)
        + Se **Adicionar nova workload** não aparecer, esse componente não oferece suporte a várias workloads.
        + Se o título **Workloads associadas** não aparecer, esse componente não oferece suporte a workloads personalizadas.
      + Para remover uma workload, escolha **Remover** ao lado da workload que você deseja remover do monitoramento.  
![\[A seção de edição do componente do console do CloudWatch Application Insights: remover uma workload.\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/appinsights-multiapp-remove-workload.png)
      + Para desativar o monitoramento de todo o componente, desmarque a caixa de seleção **Monitoramento**.  
![\[A seção de edição do componente da caixa de seleção do CloudWatch Application Insights para desabilitar o monitoramento.\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/appinsights-multiapp-disable-monitoring.png)
      + Quando terminar de editar o componente, escolha **Salvar alterações** no canto inferior direito. Todas as alterações nas workloads de um componente serão visíveis na tabela **Revisar componentes para monitoramento**, em **Workloads associadas**.

   1. Na página **Revisar componentes detectados**, escolha **Avançar**.

   1. A página **Especificar detalhes do componente** inclui todos os componentes com workloads associadas personalizáveis da etapa anterior.
**nota**  
Se um cabeçalho de um componente tiver uma tag *opcional*, detalhes adicionais das workloads nesse componente serão opcionais.

      Se um componente não aparecer nessa página, o componente não terá detalhes adicionais que possam ser especificados nesta etapa.

   1. Escolha **Próximo**.

   1. Na página **Revisar e enviar**, revise todos os detalhes do componente monitorado e da workload.

   1. Selecione **Enviar**.

------
#### [ Account-based application monitoring ]

   1. **Application name (Nome da aplicação**. Insira um nome para sua aplicação baseada em conta.

   1. **Monitoramento automatizado de novos recursos**. Por padrão, o Application Insights usa as configurações recomendadas para configurar o monitoramento de componentes de recursos que são adicionados à sua conta após a integração da aplicação. Você pode excluir o monitoramento de recursos adicionados após a integração da aplicação desmarcando a caixa de seleção.

   1. **Monitorar CloudWatch Events**. Marque a caixa de seleção para integrar o monitoramento do Application Insights com o CloudWatch Events para obter insights do Amazon EBS, Amazon EC2,AWS CodeDeploy, Amazon ECS, APIs e notificações do AWS Health, Amazon RDS, Amazon S3 eAWS Step Functions.

   1. **Integração ao Systems Manager OpsCenter da AWS.** Para visualizar e receber notificações quando problemas forem detectados em aplicações selecionadas, selecione a caixa de seleção **Generate Systems Manager OpsCenter OpsItems for remedial actions** (Gerar OpsItems do Systems Manager OpsCenter para ações corretivas). Para rastrear as operações executadas para resolver itens de trabalho operacionais (OpsItems) relacionados aos recursos da AWS, forneça o ARN do tópico do SNS. 

   1. **Etiquetas (opcionais**. O CloudWatch Application Insights oferece suporte a grupos de recurso baseados em etiquetas e baseados no CloudFormation (com exceção dos grupos do Auto Scaling). Para obter mais informações, consulte [Trabalhar com o Tag Editor](https://docs.aws.amazon.com/ARG/latest/userguide/tag-editor.html).

   1. **Recursos descobertos**. Todos os recursos descobertos em sua conta são adicionados a esta lista. Se o Application Insights não conseguir descobrir todos os recursos da conta, uma mensagem de erro será exibida na parte superior da página. Esta mensagem inclui um link para a [documentação sobre como adicionar as permissões necessárias](appinsights-account-based-onboarding-permissions.md).

   1. Escolha **Próximo**.

      Um [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) será gerado para a aplicação no formato a seguir.

      ```
      arn:partition:applicationinsights:region:account-id:application/TBD/application-name
      ```

      Exemplo

      ```
      arn:aws:applicationinsights:us-east-1:123456789012:application/TBD/my-application
      ```

------

1. Depois de enviar a configuração de monitoramento da aplicação, você acessará a página de detalhes da aplicação, onde é possível visualizar o **Resumo da aplicação** e a lista **Componentes monitorados** e **Componentes não monitorados**. Além disso, se selecionar as guias ao lado de **Componentes**, você verá o **Histórico de configuração**, os **Padrões de logs** e as **Tags** que aplicou.

   Para visualizar insights da aplicação, escolha **View Insights** (Visualizar Insights).

   É possível atualizar suas seleções para monitoramento e integração do CloudWatch Events ao AWS Systems Manager OpsCenter escolhendo **Edit** (Editar).

   Em **Components** (Componentes), é possível selecionar o menu **Actions** (Ações) para criar, modificar ou desagrupar um grupo de instâncias.

   É possível gerenciar o monitoramento de componentes, incluindo camada de aplicação, grupos de log, logs de eventos, métricas e alarmes personalizados. Para isso, selecione o marcador ao lado de um componente e escolha **Manage monitoring** (Gerenciar o monitoramento).

## Habilitar o Application Insights para monitoramento de recursos do Amazon ECS e do Amazon EKS
<a name="appinsights-container-insights"></a>

Você pode habilitar o Application Insights para monitorar aplicações e microsserviços em contêiner no console do Container Insights. O Application Insights oferece suporte ao monitoramento dos seguintes recursos:
+ Clusters do Amazon ECS
+ Serviços do Amazon ECS
+ Tarefas do Amazon ECS
+ Clusters do Amazon EKS

Quando o Application Insights está ativado, ele fornece métricas e registros recomendados, detecta possíveis problemas, gera CloudWatch Events e cria painéis automáticos para suas aplicações e microsserviços em contêiner.

Você pode habilitar o Application Insights para recursos em contêiner nos consoles Container Insights ou Application Insights.

**Habilitar insights de aplicações no console Container Insights**  
No console do Container Insights, no painel **Performance Monitoring** (Monitoramento da performance) do Container Insights, escolha **Auto-configure Application Insights** (Configurar automaticamente o Application Insights). Quando o Application Insights está habilitado, ele exibe detalhes sobre problemas detectados.

**Habilitar o Application Insights a partir do console**  
Quando clusters do ECS aparecem na lista de componentes, o Application Insights permite automaticamente o monitoramento adicional de contêiner com o Container Insights 

Em clusters do EKS, é possível habilitar o monitoramento adicional com o Container Insights para fornecer informações de diagnóstico, como falhas de reinicialização de contêiner, para ajudar você a isolar e resolver problemas. São necessárias etapas adicionais para configurar o Container Insights para o EKS. Consulte [Configurar o Container Insights no Amazon EKS e no Kubernetes](deploy-container-insights-EKS.md) para obter mais informações sobre as etapas do Container Insights no EKS. 

O monitoramento adicional para EKS com o Container Insights é compatível com instâncias Linux com EKS.

Para obter mais informações sobre a compatibilidade do Container Insights com clusters ECS e EKS, consulte [Container Insights](ContainerInsights.md).

## Desabilitar o monitoramento de um componente da aplicação
<a name="appinsights-disable-monitoring"></a>

Para desabilitar o monitoramento de um componente da aplicação, na página de detalhes da aplicação, selecione o componente para o qual deseja desabilitar o monitoramento. Escolha **Actions ** (Ações) e, em seguida, **Remove from monitoring** (Remover do monitoramento). 

## Excluir uma aplicação
<a name="appinsights-delete-app"></a>

Para excluir uma aplicação, mo painel do CloudWatch, no painel de navegação esquerdo, escolha **Application Insights** em **Insights**. Selecione a aplicação que você deseja excluir. Em **Actions** (Ações), escolha **Delete application** (Excluir aplicação). Isso exclui o monitoramento e exclui todos os monitores salvos para os componentes da aplicação. Os recursos da aplicação não são excluídos. 

# Instalar, configurar e gerenciar sua aplicação para monitoramento usando a linha de comando
<a name="appinsights-setting-up-command"></a>

Esta seção apresenta as etapas necessárias para instalar, configurar e gerenciar a aplicação para monitoramento usando a AWS CLI e o AWS Tools for Windows PowerShell.

**Topics**
+ [Adicionar e gerenciar uma aplicação](#appinsights-config-app-command)
+ [Gerenciar e atualizar o monitoramento](#appinsights-monitoring)
+ [Configurar o monitoramento para grupos de disponibilidade Always On do SQL](#configure-sql)
+ [Configurar o monitoramento para MySQL RDS](#configure-mysql-rds)
+ [Configurar o monitoramento para MySQL EC2](#configure-mysql-ec2)
+ [Configurar o monitoramento para o PostgreSQL RDS](#configure-postgresql-rds)
+ [Configurar o monitoramento para o PostgreSQL EC2](#configure-postgresql-ec2)
+ [Configurar o monitoramento para o Oracle RDS](#configure-oracle-rds)
+ [Configurar o monitoramento para o Oracle EC2](#configure-oracle-ec2)

## Adicionar e gerenciar uma aplicação
<a name="appinsights-config-app-command"></a>

Você pode adicionar, obter informações sobre, gerenciar e configurar sua aplicação do Application Insights usando a linha de comando. 

**Topics**
+ [Adicionar uma aplicação](#appinsights-add-app)
+ [Descrever uma aplicação](#appinsights-describe-app)
+ [Listar os componentes em uma aplicação](#appinsights-list-components)
+ [Descrever um componente](#appinsights-describe-components)
+ [Agrupar recursos semelhantes em um componente personalizado](#appinsights-group-resources-components)
+ [Desagrupar um componente personalizado](#appinsights-ungroup-resources-components)
+ [Atualizar uma aplicação](#appinsights-update-app)
+ [Atualizar um componente personalizado](#appinsights-update-component)

### Adicionar uma aplicação
<a name="appinsights-add-app"></a>

**Adicionar uma aplicação usando a AWS CLI**  
Para usar a AWS CLI para adicionar uma aplicação ao grupo de recursos chamado `my-resource-group`, com o OpsCenter habilitado para entregar o opsItem criado ao ARN do tópico do SNS ` arn:aws:sns:us-east-1:123456789012:MyTopic`, use o comando a seguir.

```
aws application-insights create-application --resource-group-name my-resource-group --ops-center-enabled --ops-item-sns-topic-arn arn:aws:sns:us-east-1:123456789012:MyTopic
```

**Adicionar uma aplicação usando o AWS Tools for Windows PowerShell**  
Para usar o AWS Tools for Windows PowerShell para adicionar uma aplicação ao grupo de recursos chamado `my-resource-group`, com o OpsCenter habilitado para entregar o opsItem criado ao ARN do tópico do SNS `arn:aws:sns:us-east-1:123456789012:MyTopic`, use o comando a seguir.

```
New-CWAIApplication -ResourceGroupName my-resource-group -OpsCenterEnabled true -OpsItemSNSTopicArn arn:aws:sns:us-east-1:123456789012:MyTopic
```

### Descrever uma aplicação
<a name="appinsights-describe-app"></a>

**Descrever uma aplicação usando a AWS CLI**  
Para usar o AWS CLI para descrever uma aplicação criada em um grupo de recursos chamado `my-resource-group`, use o comando a seguir.

```
aws application-insights describe-application --resource-group-name my-resource-group
```

**Descrever uma aplicação usando o AWS Tools for Windows PowerShell**  
Para usar o AWS Tools for Windows PowerShell para descrever uma aplicação criada em um grupo de recursos chamado `my-resource-group`, use o comando a seguir.

```
Get-CWAIApplication -ResourceGroupName my-resource-group
```

### Listar os componentes em uma aplicação
<a name="appinsights-list-components"></a>

**Listar os componentes de uma aplicação usando a AWS CLI**  
Para usar o AWS CLI para listar os componentes criados em um grupo de recursos chamado `my-resource-group`, use o comando a seguir.

```
aws application-insights list-components --resource-group-name my-resource-group
```

**Listar os componentes de uma aplicação usando o AWS Tools for Windows PowerShell**  
Para usar o AWS Tools for Windows PowerShell para listar os componentes criados em um grupo de recursos chamado `my-resource-group`, use o comando a seguir.

```
Get-CWAIComponentList -ResourceGroupName my-resource-group
```

### Descrever um componente
<a name="appinsights-describe-components"></a>

**Descrever um componente usando a AWS CLI**  
É possível usar o seguinte comando da AWS CLI para descrever um componente chamado `my-component` que pertence a uma aplicação criada em um grupo de recursos chamado `my-resource-group`.

```
aws application-insights describe-component --resource-group-name my-resource-group --component-name my-component
```

**Descrever um componente usando AWS Tools for Windows PowerShell**  
É possível usar o seguinte comando da AWS Tools for Windows PowerShell para descrever um componente chamado `my-component` que pertence a uma aplicação criada em um grupo de recursos chamado `my-resource-group`.

```
Get-CWAIComponent -ComponentName my-component -ResourceGroupName my-resource-group
```

### Agrupar recursos semelhantes em um componente personalizado
<a name="appinsights-group-resources-components"></a>

Recomendamos agrupar recursos semelhantes, como instâncias do servidor Web do .NET, em componentes personalizados para uma integração mais fácil e melhores monitoramento e insights. O CloudWatch Application Insights é compatível com grupos personalizados para instâncias do EC2.

**Para agrupar recursos em um componente personalizado usando a AWS CLI**  
Para usar a AWS CLI para agrupar três instâncias (`arn:aws:ec2:us-east-1:123456789012:instance/i-11111`, `arn:aws:ec2:us-east-1:123456789012:instance/i-22222` e `arn:aws:ec2:us-east-1:123456789012:instance/i-33333`) em um componente personalizado chamado `my-component` para uma aplicação criada para o grupo de recursos chamado `my-resource-group`, use o comando a seguir. 

```
aws application-insights create-component --resource-group-name my-resource-group --component-name my-component --resource-list arn:aws:ec2:us-east-1:123456789012:instance/i-11111 arn:aws:ec2:us-east-1:123456789012:instance/i-22222 arn:aws:ec2:us-east-1:123456789012:instance/i-33333
```

**Para agrupar recursos em um componente personalizado usando AWS Tools for Windows PowerShell**  
Para usar AWS Tools for Windows PowerShell para agrupar três instâncias (`arn:aws:ec2:us-east-1:123456789012:instance/i-11111`, `arn:aws:ec2:us-east-1:123456789012:instance/i-22222` e `arn:aws:ec2:us-east-1:123456789012:instance/i-33333`) em um componente personalizado chamado `my-component` para uma aplicação criada para o grupo de recursos chamado `my-resource-group`, use o comando a seguir.

```
New-CWAIComponent -ResourceGroupName my-resource-group -ComponentName my-component -ResourceList arn:aws:ec2:us-east-1:123456789012:instance/i-11111,arn:aws:ec2:us-east-1:123456789012:instance/i-22222,arn:aws:ec2:us-east-1:123456789012:instance/i-33333 
```

### Desagrupar um componente personalizado
<a name="appinsights-ungroup-resources-components"></a>

**Para desagrupar um componente personalizado usando a AWS CLI**  
Para usar o AWS CLI para desagrupar um componente personalizado chamado `my-component` em uma aplicação criada no grupo de recursos `my-resource-group`, use o comando a seguir. 

```
aws application-insights delete-component --resource-group-name my-resource-group --component-name my-new-component
```

**Para desagrupar um componente personalizado usando o AWS Tools for Windows PowerShell**  
Para usar o AWS Tools for Windows PowerShell para desagrupar um componente personalizado chamado `my-component` em uma aplicação criada no grupo de recursos `my-resource-group`, use o comando a seguir.

```
Remove-CWAIComponent -ComponentName my-component -ResourceGroupName my-resource-group
```

### Atualizar uma aplicação
<a name="appinsights-update-app"></a>

**Atualizar uma aplicação usando a AWS CLI**  
É possível usar a AWS CLI para atualizar uma aplicação para gerar OpsItems do AWS Systems Manager OpsCenter para problemas detectados na aplicação e associar os OpsItems criados ao tópico `arn:aws:sns:us-east-1:123456789012:MyTopic` do SNS usando o comando a seguir.

```
aws application-insights update-application --resource-group-name my-resource-group --ops-center-enabled --ops-item-sns-topic-arn arn:aws:sns:us-east-1:123456789012:MyTopic
```

**Atualizar uma aplicação usando o AWS Tools for Windows PowerShell**  
É possível usar o AWS Tools for Windows PowerShell para atualizar uma aplicação para gerar OpsItems do AWS SSM OpsCenter para problemas detectados na aplicação e associar os OpsItems criados ao tópico `arn:aws:sns:us-east-1:123456789012:MyTopic` do SNS usando o comando a seguir.

```
Update-CWAIApplication -ResourceGroupName my-resource-group -OpsCenterEnabled true -OpsItemSNSTopicArn arn:aws:sns:us-east-1:123456789012:MyTopic
```

### Atualizar um componente personalizado
<a name="appinsights-update-component"></a>

**Atualizar um componente personalizado usando a AWS CLI**  
Você pode usar a AWS CLI para atualizar um componente personalizado chamado `my-component` com um novo nome de componente, `my-new-component`, e um grupo atualizado de instâncias usando o comando a seguir.

```
aws application-insights update-component --resource-group-name my-resource-group --component-name my-component --new-component-name my-new-component --resource-list arn:aws:ec2:us-east-1:123456789012:instance/i-44444 arn:aws:ec2:us-east-1:123456789012:instance/i-55555
```

**Atualizar um componente personalizado usando o AWS Tools for Windows PowerShell**  
Você pode usar a AWS Tools for Windows PowerShell para atualizar um componente personalizado chamado `my-component` com um novo nome de componente, `my-new-component`, e um grupo atualizado de instâncias usando o comando a seguir.

```
Update-CWAIComponent -ComponentName my-component -NewComponentName my-new-component -ResourceGroupName my-resource-group -ResourceList arn:aws:ec2:us-east-1:123456789012:instance/i-44444,arn:aws:ec2:us-east-1:123456789012:instance/i-55555
```

## Gerenciar e atualizar o monitoramento
<a name="appinsights-monitoring"></a>

Você pode gerenciar e atualizar o monitoramento da aplicação Application Insights usando a linha de comando.

**Topics**
+ [Listar problemas com sua aplicação](#appinsights-list-problems-monitoring)
+ [Descrever um problema de aplicação](#appinsights-describe-app-problem)
+ [Descrever as anomalias ou os erros associados a um problema](#appinsights-describe-anomalies)
+ [Descrever uma anomalia ou um erro com a aplicação](#appinsights-describe-anomalies)
+ [Descrever as configurações de monitoramento de um componente](#appinsights-describe-monitoring)
+ [Descrever a configuração de monitoramento recomendada de um componente](#appinsights-describe-rec-monitoring)
+ [Atualizar as configurações de monitoramento de um componente](#update-monitoring)
+ [Remover um grupo de recursos especificado do monitoramento do Application Insights](#update-monitoring)

### Listar problemas com sua aplicação
<a name="appinsights-list-problems-monitoring"></a>

**Listar problemas com sua aplicação usando a AWS CLI**  
Para usar a AWS CLI para listar problemas em sua aplicação detectados entre 1.000 e 10.000 milissegundos desde a época Unix para uma aplicação criada em um grupo de recursos chamado `my-resource-group`, use o comando a seguir.

```
aws application-insights list-problems --resource-group-name my-resource-group --start-time 1000 --end-time 10000
```

**Listar problemas com sua aplicação usando o AWS Tools for Windows PowerShell**  
Para usar a AWS Tools for Windows PowerShell para listar problemas em sua aplicação detectados entre 1.000 e 10.000 milissegundos desde a época Unix para uma aplicação criada em um grupo de recursos chamado `my-resource-group`, use o comando a seguir.

```
$startDate = "8/6/2019 3:33:00"
$endDate = "8/6/2019 3:34:00"
Get-CWAIProblemList -ResourceGroupName my-resource-group -StartTime $startDate -EndTime $endDate
```

### Descrever um problema de aplicação
<a name="appinsights-describe-app-problem"></a>

**Descrever um problema de aplicação usando a AWS CLI**  
Para usar a AWS CLI para descrever uma falha com o ID do problema `p-1234567890`, use o comando a seguir.

```
aws application-insights describe-problem —problem-id p-1234567890
```

**Descrever um problema de aplicação usando o AWS Tools for Windows PowerShell**  
Para usar a AWS Tools for Windows PowerShell para descrever uma falha com o ID do problema `p-1234567890`, use o comando a seguir.

```
Get-CWAIProblem -ProblemId p-1234567890
```

### Descrever as anomalias ou os erros associados a um problema
<a name="appinsights-describe-anomalies"></a>

**Descrever as anomalias ou os erros associados a um problema usando a AWS CLI**  
Para usar a AWS CLI para descrever as anomalias ou os erros associados a uma falha com o ID do problema `p-1234567890`, use o comando a seguir.

```
aws application-insights describe-problem-observations --problem-id -1234567890
```

**Descrever as anomalias ou os erros associados a um problema usando o AWS Tools for Windows PowerShell**  
Para usar a AWS Tools for Windows PowerShell para descrever as anomalias ou os erros associados a uma falha com o ID do problema `p-1234567890`, use o comando a seguir.

```
Get-CWAIProblemObservation -ProblemId p-1234567890
```

### Descrever uma anomalia ou um erro com a aplicação
<a name="appinsights-describe-anomalies"></a>

**Descrever uma anomalia ou um erro na aplicação usando a AWS CLI**  
Para usar a AWS CLI para descrever uma anomalia ou um erro na aplicação com o ID de observação `o-1234567890`, use o comando a seguir.

```
aws application-insights describe-observation —observation-id o-1234567890
```

**Descrever uma anomalia ou um erro na aplicação usando o AWS Tools for Windows PowerShell**  
Para usar a AWS Tools for Windows PowerShell para descrever uma anomalia ou um erro na aplicação com o ID de observação `o-1234567890`, use o comando a seguir.

```
Get-CWAIObservation -ObservationId o-1234567890
```

### Descrever as configurações de monitoramento de um componente
<a name="appinsights-describe-monitoring"></a>

**Descrever as configurações de monitoramento de um componente usando a AWS CLI**  
Para usar a AWS CLI para descrever a configuração do monitoramento de um componente chamado `my-component` em uma aplicação criada no grupo de recursos `my-resource-group`, use o comando a seguir.

```
aws application-insights describe-component-configuration —resource-group-name my-resource-group —component-name my-component
```

**Descrever as configurações de monitoramento de um componente usando o AWS Tools for Windows PowerShell**  
Para usar o AWS Tools for Windows PowerShell para descrever a configuração do monitoramento de um componente chamado `my-component` em uma aplicação criada no grupo de recursos `my-resource-group`, use o comando a seguir.

```
Get-CWAIComponentConfiguration -ComponentName my-component -ResourceGroupName my-resource-group
```

Para obter mais informações sobre a configuração do componente e, por exemplo, arquivos JSON, consulte [Trabalhar com configurações de componentes](component-config.md).

### Descrever a configuração de monitoramento recomendada de um componente
<a name="appinsights-describe-rec-monitoring"></a>

**Descrever a configuração de monitoramento recomendada de um componente usando a AWS CLI**  
Quando o componente faz parte de uma aplicação .NET Worker, é possível usar a AWS CLI para descrever a configuração de monitoramento recomendada de um componente chamado `my-component` em uma aplicação criada no grupo de recursos `my-resource-group` usando o comando a seguir.

```
aws application-insights describe-component-configuration-recommendation --resource-group-name my-resource-group --component-name my-component --tier DOT_NET_WORKER
```

**Descrever a configuração de monitoramento recomendada de um componente usando o AWS Tools for Windows PowerShell**  
Quando o componente faz parte de uma aplicação .NET Worker, é possível usar a AWS Tools for Windows PowerShell para descrever a configuração de monitoramento recomendada de um componente chamado `my-component` em uma aplicação criada no grupo de recursos `my-resource-group` usando o comando a seguir.

```
Get-CWAIComponentConfigurationRecommendation -ComponentName my-component -ResourceGroupName my-resource-group -Tier DOT_NET_WORKER
```

Para obter mais informações sobre a configuração do componente e, por exemplo, arquivos JSON, consulte [Trabalhar com configurações de componentes](component-config.md).

### Atualizar as configurações de monitoramento de um componente
<a name="update-monitoring"></a>

**Atualizar as configurações de monitoramento de um componente usando a AWS CLI**  
Para usar a AWS CLI para atualizar o componente chamado `my-component` em uma aplicação criada no grupo de recursos chamado `my-resource-group`, use o comando a seguir. O comando inclui estas ações:

1. Habilitar o monitoramento do componente.

1. Definir o nível do componente como `.NET Worker`.

1. Atualizar a configuração JSON do componente para ler o arquivo local `configuration.txt`.

```
aws application-insights update-component-configuration --resource-group-name my-resource-group --component-name my-component --tier DOT_NET_WORKER --monitor --component-configuration "file://configuration.txt"
```

**Atualizar as configurações de monitoramento de um componente usando a AWS Tools for Windows PowerShell**  
Para usar a AWS Tools for Windows PowerShell para atualizar o componente chamado `my-component` em uma aplicação criada no grupo de recursos chamado `my-resource-group`, use o comando a seguir. O comando inclui estas ações:

1. Habilitar o monitoramento do componente.

1. Definir o nível do componente como `.NET Worker`.

1. Atualizar a configuração JSON do componente para ler o arquivo local `configuration.txt`.

```
[string]$config = Get-Content -Path configuration.txt
Update-CWAIComponentConfiguration -ComponentName my-component -ResourceGroupName my-resource-group -Tier DOT_NET_WORKER -Monitor 1 -ComponentConfiguration $config
```

Para obter mais informações sobre a configuração do componente e, por exemplo, arquivos JSON, consulte [Trabalhar com configurações de componentes](component-config.md).

### Remover um grupo de recursos especificado do monitoramento do Application Insights
<a name="update-monitoring"></a>

**Remover um grupo de recursos especificado do monitoramento do Application Insights usando a AWS CLI**  
Para usar a AWS CLI para remover uma aplicação criada no grupo de recursos chamado `my-resource-group` do monitoramento, use o comando a seguir.

```
aws application-insights delete-application --resource-group-name my-resource-group
```

**Remover um grupo de recursos especificado do monitoramento do Application Insights usando a AWS Tools for Windows PowerShell**  
Para usar a AWS Tools for Windows PowerShell para remover uma aplicação criada no grupo de recursos chamado `my-resource-group` do monitoramento, use o comando a seguir.

```
Remove-CWAIApplication -ResourceGroupName my-resource-group
```

## Configurar o monitoramento para grupos de disponibilidade Always On do SQL
<a name="configure-sql"></a>

1. Crie uma aplicação para o grupo de recursos com as instâncias do SQL HA EC2.

   ```
   aws application-insights create-application ‐-region <REGION> ‐-resource-group-name  <RESOURCE_GROUP_NAME>
   ```

1. Defina as instâncias do EC2 que representam o cluster de HA do SQL criando um componente de aplicação.

   ```
   aws application-insights create-component ‐-resource-group-name  "<RESOURCE_GROUP_NAME>" ‐-component-name SQL_HA_CLUSTER ‐-resource-list  "arn:aws:ec2:<REGION>:<ACCOUNT_ID>:instance/<CLUSTER_INSTANCE_1_ID>" "arn:aws:ec2:<REGION>:<ACCOUNT_ID>:instance/<CLUSTER_INSTANCE_2_ID>
   ```

1. Configure o componente de HA do SQL.

   ```
   aws application-insights  update-component-configuration ‐-resource-group-name "<RESOURCE_GROUP_NAME>" ‐-region <REGION> ‐-component-name "SQL_HA_CLUSTER" ‐-monitor ‐-tier SQL_SERVER_ALWAYSON_AVAILABILITY_GROUP ‐-monitor  ‐-component-configuration '{
     "subComponents" : [ {
       "subComponentType" : "AWS::EC2::Instance",
       "alarmMetrics" : [ {
         "alarmMetricName" : "CPUUtilization",
         "monitor" : true
       }, {
         "alarmMetricName" : "StatusCheckFailed",
         "monitor" : true
       }, {
         "alarmMetricName" : "Processor % Processor Time",
         "monitor" : true
       }, {
         "alarmMetricName" : "Memory % Committed Bytes In Use",
         "monitor" : true
       }, {
         "alarmMetricName" : "Memory Available Mbytes",
         "monitor" : true
       }, {
         "alarmMetricName" : "Paging File % Usage",
         "monitor" : true
       }, {
         "alarmMetricName" : "System Processor Queue Length",
         "monitor" : true
       }, {
         "alarmMetricName" : "Network Interface Bytes Total/sec",
         "monitor" : true
       }, {
         "alarmMetricName" : "PhysicalDisk % Disk Time",
         "monitor" : true
       }, {
         "alarmMetricName" : "SQLServer:Buffer Manager Buffer cache hit ratio",
         "monitor" : true
       }, {
         "alarmMetricName" : "SQLServer:Buffer Manager Page life expectancy",
         "monitor" : true
       }, {
         "alarmMetricName" : "SQLServer:General Statistics Processes blocked",
         "monitor" : true
       }, {
         "alarmMetricName" : "SQLServer:General Statistics User Connections",
         "monitor" : true
       }, {
         "alarmMetricName" : "SQLServer:Locks Number of Deadlocks/sec",
         "monitor" : true
       }, {
         "alarmMetricName" : "SQLServer:SQL Statistics Batch Requests/sec",
         "monitor" : true
       }, {
         "alarmMetricName" : "SQLServer:Database Replica File Bytes Received/sec",
         "monitor" : true
       }, {
         "alarmMetricName" : "SQLServer:Database Replica Log Bytes Received/sec",
         "monitor" : true
       }, {
         "alarmMetricName" : "SQLServer:Database Replica Log remaining for undo",
         "monitor" : true
       }, {
         "alarmMetricName" : "SQLServer:Database Replica Log Send Queue",
         "monitor" : true
       }, {
         "alarmMetricName" : "SQLServer:Database Replica Mirrored Write Transaction/sec",
         "monitor" : true
       }, {
         "alarmMetricName" : "SQLServer:Database Replica Recovery Queue",
         "monitor" : true
       }, {
         "alarmMetricName" : "SQLServer:Database Replica Redo Bytes Remaining",
         "monitor" : true
       }, {
         "alarmMetricName" : "SQLServer:Database Replica Redone Bytes/sec",
         "monitor" : true
       }, {
         "alarmMetricName" : "SQLServer:Database Replica Total Log requiring undo",
         "monitor" : true
       }, {
         "alarmMetricName" : "SQLServer:Database Replica Transaction Delay",
         "monitor" : true
       } ],
       "windowsEvents" : [ {
         "logGroupName" : "WINDOWS_EVENTS-Application-<RESOURCE_GROUP_NAME>",
         "eventName" : "Application",
         "eventLevels" : [ "WARNING", "ERROR", "CRITICAL", "INFORMATION" ],
         "monitor" : true
       }, {
         "logGroupName" : "WINDOWS_EVENTS-System-<RESOURCE_GROUP_NAME>",
         "eventName" : "System",
         "eventLevels" : [ "WARNING", "ERROR", "CRITICAL" ],
         "monitor" : true
       }, {
         "logGroupName" : "WINDOWS_EVENTS-Security-<RESOURCE_GROUP_NAME>",
         "eventName" : "Security",
         "eventLevels" : [ "WARNING", "ERROR", "CRITICAL" ],
         "monitor" : true
       } ],
       "logs" : [ {
         "logGroupName" : "SQL_SERVER_ALWAYSON_AVAILABILITY_GROUP-<RESOURCE_GROUP_NAME>",
         "logPath" : "C:\\Program Files\\Microsoft SQL Server\\MSSQL**.MSSQLSERVER\\MSSQL\\Log\\ERRORLOG",
         "logType" : "SQL_SERVER",
         "monitor" : true,
         "encoding" : "utf-8"
       } ]
     }, {
       "subComponentType" : "AWS::EC2::Volume",
       "alarmMetrics" : [ {
         "alarmMetricName" : "VolumeReadBytes",
         "monitor" : true
       }, {
       "alarmMetricName" : "VolumeWriteBytes",
         "monitor" : true
       }, {
       "alarmMetricName" : "VolumeReadOps",
         "monitor" : true
       }, {
       "alarmMetricName" : "VolumeWriteOps",
         "monitor" : true
       }, {
       "alarmMetricName" : "VolumeQueueLength",
         "monitor" : true
       }, {
       "alarmMetricName" : "VolumeThroughputPercentage",
         "monitor" : true
       }, {
       "alarmMetricName" : "BurstBalance",
         "monitor" : true
       } ]
     } ]
   }'
   ```

**nota**  
O Application Insights deve ingerir logs de eventos da aplicação (nível de informações) para detectar atividades do cluster, como failover.

## Configurar o monitoramento para MySQL RDS
<a name="configure-mysql-rds"></a>

1. Crie uma aplicação para o grupo de recursos com a instância de banco de dados MySQL do RDS.

   ```
   aws application-insights create-application ‐-region <REGION> ‐-resource-group-name  <RESOURCE_GROUP_NAME>
   ```

1. O log de erros está habilitado por padrão. O log de consulta lento pode ser habilitado usando grupos de parâmetros de dados. Para obter mais informações, consulte [Acessar os logs gerais e de consultas lentas do MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.Concepts.MySQL.html#USER_LogAccess.MySQL.Generallog).
   + `set slow_query_log = 1`
   + `set log_output = FILE`

1. Exporte os logs a serem monitorados para os logs do CloudWatch. Para obter mais informações, consulte [Publicar logs MySQL no CloudWatch Logs](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.Concepts.MySQL.html#USER_LogAccess.MySQLDB.PublishtoCloudWatchLogs).

1. Configure o componente MySQL RDS.

   ```
   aws application-insights  update-component-configuration ‐-resource-group-name "<RESOURCE_GROUP_NAME>" ‐-region <REGION> ‐-component-name "<DB_COMPONENT_NAME>" ‐-monitor ‐-tier DEFAULT ‐-monitor  ‐-component-configuration "{\"alarmMetrics\":[{\"alarmMetricName\":\"CPUUtilization\",\"monitor\":true}],\"logs\":[{\"logType\":\"MYSQL\",\"monitor\":true},{\"logType\": \"MYSQL_SLOW_QUERY\",\"monitor\":false}]}"
   ```

## Configurar o monitoramento para MySQL EC2
<a name="configure-mysql-ec2"></a>

1. Crie uma aplicação para o grupo de recursos com as instâncias do SQL HA EC2.

   ```
   aws application-insights create-application ‐-region <REGION> ‐-resource-group-name  <RESOURCE_GROUP_NAME>
   ```

1. O log de erros está habilitado por padrão. O log de consulta lento pode ser habilitado usando grupos de parâmetros de dados. Para obter mais informações, consulte [Acessar os logs gerais e de consultas lentas do MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.Concepts.MySQL.html#USER_LogAccess.MySQL.Generallog).
   + `set slow_query_log = 1`
   + `set log_output = FILE`

1. Configure o componente MySQL EC2.

   ```
   aws application-insights  update-component-configuration ‐-resource-group-name "<RESOURCE_GROUP_NAME>" ‐-region <REGION> ‐-component-name "<DB_COMPONENT_NAME>" ‐-monitor ‐-tier MYSQL ‐-monitor  ‐-component-configuration "{\"alarmMetrics\":[{\"alarmMetricName\":\"CPUUtilization\",\"monitor\":true}],\"logs\":[{\"logGroupName\":\"<UNIQUE_LOG_GROUP_NAME>\",\"logPath\":\"C:\\\\ProgramData\\\\MySQL\\\\MySQL Server **\\\\Data\\\\<FILE_NAME>.err\",\"logType\":\"MYSQL\",\"monitor\":true,\"encoding\":\"utf-8\"}]}"
   ```

## Configurar o monitoramento para o PostgreSQL RDS
<a name="configure-postgresql-rds"></a>

1. Crie uma aplicação para o grupo de recursos com a instância de banco de dados PostgreSQL RDS.

   ```
   aws application-insights create-application ‐-region <REGION> ‐-resource-group-name  <RESOURCE_GROUP_NAME>
   ```

1. A publicação de logs do PostgreSQL no CloudWatch não é habilitada por padrão. Para habilitar o monitoramento, abra o console do RDS e selecione o banco de dados a ser monitorado. Escolha **Modify** (Modificar) no canto superior direito e marque a caixa de seleção rotulada com o log do **PostgreSQL**. Selecione **Continue** (Continuar) para salvar essa configuração.

1. Os logs do PostgreSQL são exportados para o CloudWatch.

1. Configure o componente PostgreSQL RDS .

   ```
   aws application-insights update-component-configuration --region <REGION> --resource-group-name <RESOURCE_GROUP_NAME> --component-name <DB_COMPONENT_NAME> --monitor --tier DEFAULT --component-configuration 
   "{
      \"alarmMetrics\":[
         {
            \"alarmMetricName\": \"CPUUtilization\",
            \"monitor\": true
         }
      ],
      \"logs\":[
         {
            \"logType\": \"POSTGRESQL\",
            \"monitor\": true
         }
      ]
   }"
   ```

## Configurar o monitoramento para o PostgreSQL EC2
<a name="configure-postgresql-ec2"></a>

1. Crie uma aplicação para o grupo de recursos com a instância do PostgreSQL EC2.

   ```
   aws application-insights create-application ‐-region <REGION> ‐-resource-group-name  <RESOURCE_GROUP_NAME>
   ```

1. Configure o componente PostgreSQL EC2.

   ```
   aws application-insights update-component-configuration ‐-region <REGION> ‐-resource-group-name <RESOURCE_GROUP_NAME> ‐-component-name <DB_COMPONENT_NAME> ‐-monitor ‐-tier POSTGRESQL ‐-component-configuration 
   "{
      \"alarmMetrics\":[
         {
            \"alarmMetricName\":\"CPUUtilization\",
            \"monitor\":true
         }
      ],
      \"logs\":[
         {
            \"logGroupName\":\"<UNIQUE_LOG_GROUP_NAME>\",
            \"logPath\":\"/var/lib/pgsql/data/log/\",
            \"logType\":\"POSTGRESQL\",
            \"monitor\":true,
            \"encoding\":\"utf-8\"
         }
      ]
   }"
   ```

## Configurar o monitoramento para o Oracle RDS
<a name="configure-oracle-rds"></a>

1. Crie uma aplicação para o grupo de recursos com a instância de banco de dados Oracle RDS.

   ```
   aws application-insights create-application ‐-region <REGION> ‐-resource-group-name  <RESOURCE_GROUP_NAME>
   ```

1. A publicação de logs do Oracle no CloudWatch não é habilitada por padrão. Para habilitar o monitoramento, abra o console do RDS e selecione o banco de dados a ser monitorado. Escolha **Modify** (Modificar) no canto superior direito e marque as caixas de seleção rotuladas com o log **Alert** e **Listener**. Selecione **Continue** (Continuar) para salvar essa configuração.

1. Os logs Oracle são exportados para o CloudWatch.

1. Configure o componente Oracle RDS.

   ```
   aws application-insights update-component-configuration --region <REGION> --resource-group-name <RESOURCE_GROUP_NAME> --component-name <DB_COMPONENT_NAME> --monitor --tier DEFAULT --component-configuration 
   "{
      \"alarmMetrics\":[
         {
            \"alarmMetricName\": \"CPUUtilization\",
            \"monitor\": true
         }
      ],
      \"logs\":[
         {
            \"logType\": \"ORACLE_ALERT\",
            \"monitor\": true
         },
         {
            \"logType\": \"ORACLE_LISTENER\",
            \"monitor\": true
         }
      ]
   }"
   ```

## Configurar o monitoramento para o Oracle EC2
<a name="configure-oracle-ec2"></a>

1. Crie uma aplicação para o grupo de recursos com a instância Oracle EC2.

   ```
   aws application-insights create-application ‐-region <REGION> ‐-resource-group-name  <RESOURCE_GROUP_NAME>
   ```

1. Configure o componente Oracle EC2.

   ```
   aws application-insights update-component-configuration ‐-region <REGION> ‐-resource-group-name <RESOURCE_GROUP_NAME> ‐-component-name <DB_COMPONENT_NAME> ‐-monitor ‐-tier ORACLE ‐-component-configuration 
   "{
      \"alarmMetrics\":[
         {
            \"alarmMetricName\":\"CPUUtilization\",
            \"monitor\":true
         }
      ],
      \"logs\":[
         {
            \"logGroupName\":\"<UNIQUE_LOG_GROUP_NAME>\",
            \"logPath\":\"/opt/oracle/diag/rdbms/*/*/trace\",
            \"logType\":\"ORACLE_ALERT\",
            \"monitor\":true,
         },
         {
            \"logGroupName\":\"<UNIQUE_LOG_GROUP_NAME>\",
            \"logPath\":\"/opt/oracle/diag/tnslsnr/$HOSTNAME/listener/trace/\",
            \"logType\":\"ORACLE_ALERT\",
            \"monitor\":true,
         }
      ]
   }"
   ```

# Cloudwatch Events do Application Insights para problemas detectados
<a name="appinsights-cloudwatch-events"></a>

Para cada aplicação que é adicionada ao Application Insights, um evento do CloudWatch é publicado para os seguintes eventos, com base no melhor esforço:
+ **Criação do problema.** Emitido quando o CloudWatch Application Insights detecta um novo problema.
  + Tipo de detalhe: **"Application Insights Problem Detected" (Detectado problema do Application Insights)**
  + Detalhe:
    + `problemId`: o ID do problema detectado.
    + `region`: a região da AWS onde o problema foi criado.
    + `resourceGroupName`: o grupo de recursos da aplicação registrado para o qual o problema foi detectado.
    + `status`: o status do problema. O status e as definições possíveis são os seguintes:
      + `In progress`: um novo problema foi identificado. O problema ainda está recebendo observações.
      + `Recovering`: o problema está se estabilizando. Você pode resolver manualmente o problema quando ele está nesse estado. 
      + `Resolved`: o problema está resolvido. Não há novas observações sobre esse problema.
      + `Recurring`: o problema foi resolvido nas últimas 24 horas. Ele foi reaberto devido a observações adicionais.
    + `severity`: a gravidade do problema.
    + `problemUrl`: o URL do console para o problema.
+ **Atualização do problema.** Emitido quando o problema é atualizado com uma nova observação ou quando uma observação existente é atualizada e o problema é atualizado subsequentemente. As atualizações incluem uma resolução ou o encerramento do problema.
  + Tipo de detalhe: ** "Application Insights Problem Updated" (Problema do Application Insights atualizado)**
  + Detalhe:
    + `problemId`: o ID do problema criado.
    + `region`: a região da AWS onde o problema foi criado.
    + `resourceGroupName`: o grupo de recursos da aplicação registrado para o qual o problema foi detectado.
    + `status`: o status do problema.
    + `severity`: a gravidade do problema.
    + `problemUrl`: o URL do console para o problema.

# Receber notificações de problemas detectados
<a name="appinsights-problem-notifications"></a>

Você pode usar as notificações do Amazon SNS, o OpsCenter do Systems Manager ou o CloudWatch Events para receber notificações sobre problemas detectados nas aplicações. 

**Notificações do Amazon SNS do CloudWatch Application Insights de problemas detectados**  
Você pode configurar notificações do Amazon SNS usando o Console de gerenciamento da AWS ou a AWS CLI. Para configurar notificações usando o Console de gerenciamento da AWS, você deve ter as permissões necessárias do Amazon SNS, conforme mostrado no exemplo a seguir. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Effect": "Allow",
        "Action": [
          "sns:ListTopics",
          "sns:Subscribe",
          "sns:CreateTopic"
        ],    
        "Resource": [
          "*" 
        ]
      }
    ]    
}
```

------

Depois de configurar as notificações do Amazon SNS, você receberá notificações por e-mail quando um problema for criado ou resolvido. Você também receberá notificações quando uma nova observação for adicionada a um problema existente.

O exemplo a seguir mostra o conteúdo de uma notificação por e-mail.

```
    You are receiving this email because Problem "p-1234567" has been CREATED by Amazon CloudWatch Application Insights
    
    Problem Details: 
    Problem URL: https:////console.aws.amazon.com/cloudwatch/home?region=us-east-1#settings:AppInsightsSettings/problemDetails?problemId=p-1234567
    Problem Summary: Title of the problem
    Severity: HIGH
    Insights: Something specific is broken
    Status : RESOLVED
    AffectedResource: arn:aws:ec2:us-east-1:555555555555:host/testResource
    Region: us-east-1
    RecurringCount: 0
    StartTime: 2019-03-23T10:42:57.777Z
    LastUpdatedTime: 2019-03-23T21:49:37.777Z
    LastRecurrenceTime: 
    StopTime: 2019-03-23T21:49:37.777Z
    
    Recent Issues
    - TelemetryArn:alarm1
      StartTime: 2024-08-15T22:12:46.007Z
      StopTime:
    - TelemetryArn:log-group1
      StartTime: 2024-08-15T22:12:46.007Z
      StopTime: 2024-08-15T22:12:46.007Z
```

**Como receber notificações de problemas usando o Systems Manager**  
**Ações por meio do AWS Systems Manager.** O CloudWatch Application Insights oferece integração incorporada ao Systems Manager OpsCenter. Se você optar por usar essa integração para sua aplicação, um OpsItem será criado no console do OpsCenter para cada problema detectado com a aplicação. No console do OpsCenter, é possível visualizar informações resumidas sobre o problema detectado pelo CloudWatch Application Insights e escolher um runbook do Systems Manager Automation para executar ações corretivas ou identificar ainda mais processos do Windows que estejam causando problemas de recursos na aplicação. 

**Como receber notificações de problemas usando o CloudWatch Events**  
No console do CloudWatch, selecione **Regras** em **Eventos**, no painel de navegação esquerdo. Na página **Regras **, selecione **Criar regra**. Escolha o **Amazon CloudWatch Application Insights** na lista suspensa **Service Name** (Nome do serviço) e escolha o **Event Type** (Tipo de evento). Depois, escolha **Adicionar destino** e selecione o destino e os parâmetros, por exemplo, um **tópico do SNS** ou uma **função do Lambda**. 

# Observabilidade do Application Insights entre contas
<a name="appinsights-cross-account"></a>

Com a observabilidade entre contas do CloudWatch Application Insights, é possível monitorar e solucionar problemas de aplicações que abranjam várias contas da AWS em uma região.

É possível usar o Amazon CloudWatch Observability Access Manager para configurar uma ou mais de suas contas da AWS como conta de monitoramento. Você fornecerá à conta de monitoramento a capacidade de visualizar dados em sua conta de origem criando um coletor em sua conta de monitoramento. Você usa o coletor para criar um link da sua conta de origem para sua conta de monitoramento. Para obter mais informações, consulte [Observabilidade entre contas do CloudWatch](CloudWatch-Unified-Cross-Account.md).

**Recursos necessários**  
Para a funcionalidade adequada de observabilidade entre contas do CloudWatch Application Insights, certifique-se de que os tipos a seguir de telemetria sejam compartilhados por meio do CloudWatch Observability Access Manager.
+ Aplicações no CloudWatch Application Insights
+ Métricas no Amazon CloudWatch
+ Grupos de logs no Amazon CloudWatch Logs
+ Rastreamentos no [AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html)

# Trabalhar com configurações de componentes
<a name="component-config"></a>

Uma configuração de componente é um arquivo de texto em formato JSON que descreve as definições de configuração do componente. Esta seção fornece um exemplo de fragmento do modelo, descrições de seções de configuração do componente e exemplos de configurações do componente.

**Topics**
+ [Fragmento do modelo](component-config-json.md)
+ [Seções](component-config-sections.md)
+ [Exemplo de configurações para serviços relevantes](component-configuration-examples.md)

# Fragmento do modelo de configuração do componente
<a name="component-config-json"></a>

O exemplo a seguir mostra um fragmento de modelo no formato JSON.

```
{
  "alarmMetrics" : [
    list of alarm metrics
  ],
  "logs" : [
    list of logs
  ],
  "processes" : [
   list of processes
  ],
  "windowsEvents" : [
    list of windows events channels configurations
  ],
  "alarms" : [
    list of CloudWatch alarms
  ],
  "jmxPrometheusExporter": {
    JMX Prometheus Exporter configuration
  },
  "hanaPrometheusExporter": {
      SAP HANA Prometheus Exporter configuration
  },
  "haClusterPrometheusExporter": {
      HA Cluster Prometheus Exporter configuration
  },
  "netWeaverPrometheusExporter": {
      SAP NetWeaver Prometheus Exporter configuration
  },
  "subComponents" : [
    {
      "subComponentType" : "AWS::EC2::Instance" ...
      component nested instances configuration
    },
    {
      "subComponentType" : "AWS::EC2::Volume" ...
      component nested volumes configuration
    }
  ]
}
```

# Seções de configuração do componente
<a name="component-config-sections"></a>

Uma configuração do componente contém várias seções principais. As seções de uma configuração de componente podem estar listadas em qualquer ordem.
+ **alarmMetrics (opcional)**

  Uma lista de [métricas](#component-config-metric) a serem monitoradas para o componente. Todos os tipos de componentes podem ter uma seção alarmMetrics. 
+ **logs (opcional)**

  Uma lista de [logs](#component-configuration-log) a serem monitorados para o componente. Somente as instâncias do EC2 podem ter uma seção logs. 
+ **processos (opcional)**

  Uma lista de [processos](#component-configuration-process) a serem monitorados para o componente. Somente as instâncias do EC2 podem ter uma seção de processos. 
+ **subComponents (opcional)**

  Configuração de instância aninhada de subComponent do volume para o componente. Os tipos de componentes a seguir podem ter instâncias aninhadas e uma seção subComponent: ELB, ASG, instâncias do EC2 agrupadas personalizadas e instâncias do EC2.
+ **alarmes (opcional)**

  Uma lista de [alarmes](#component-configuration-alarms) a serem monitorados para o componente. Todos os tipos de componentes podem ter uma seção de alarmes.
+ **windowsEvents (opcional)**

  Uma lista de [eventos do Windows](#windows-events) a serem monitorados para o componente. Somente o Windows em instâncias do EC2 tem uma seção `windowsEvents`.
+ **JMXPrometheusExporter (opcional)**

  Configuração do JMX Protheus Exporter.
+ **hanaPrometheusExporter (opcional)**

  Configuração do SAP HANA Prometheus Exporter.
+ **haClusterPrometheusExporter (opcional)**

  Configuração do HA Cluster Prometheus Exporter.
+ **netWeaverPrometheusExporter (opcional) **

  Configuração do exportador do Prometheus para SAP NetWeaver.
+ **sapAsePrometheusExporter (opcional)**

  Configuração do SAP ASE Prometheus Exporter.

O exemplo a seguir mostra a sintaxe para o **fragmento da seção subComponents** no formato JSON.

```
[
  {
    "subComponentType" : "AWS::EC2::Instance",
    "alarmMetrics" : [
      list of alarm metrics
    ],
    "logs" : [
      list of logs
    ],
    "processes": [
      list of processes
    ],
    "windowsEvents" : [
      list of windows events channels configurations
    ]
  },
  {
    "subComponentType" : "AWS::EC2::Volume",
    "alarmMetrics" : [
      list of alarm metrics
    ]
  }
]
```

## Propriedades da seção de configuração de componentes
<a name="component-config-properties"></a>

Esta seção descreve as propriedades de cada seção de configuração do componente

**Topics**
+ [Métrica](#component-config-metric)
+ [Log](#component-configuration-log)
+ [Processar](#component-configuration-process)
+ [JMX Prometheus Exporter](#component-configuration-prometheus)
+ [HANA Prometheus Exporter](#component-configuration-hana-prometheus)
+ [HA Cluster Prometheus Exporter](#component-configuration-ha-cluster-prometheus)
+ [Exportador do Prometheus para NetWeaver](#component-configuration-netweaver-prometheus)
+ [SAP ASE Prometheus Exporter](#component-configuration-sap-ase-prometheus)
+ [Eventos do Windows](#windows-events)
+ [Alarme](#component-configuration-alarms)

### Métrica
<a name="component-config-metric"></a>

Define uma métrica a ser monitorada para o componente.

**JSON** 

```
{
  "alarmMetricName" : "monitoredMetricName",
  "monitor" : true/false
}
```

**Propriedades**
+ **alarmMetricName (obrigatório)**

  O nome da métrica a ser monitorada para o componente. Para saber sobre as métricas com suporte pelo Application Insights, consulte [Logs e métricas compatíveis com o Amazon CloudWatch Application Insights](appinsights-logs-and-metrics.md). 
+ **monitor (opcional)**

  Booliano para indicar se a métrica deve ser monitorada. O valor padrão é `true`.

### Log
<a name="component-configuration-log"></a>

Define um log a ser monitorado para o componente.

**JSON** 

```
{
  "logGroupName" : "logGroupName",
  "logPath" : "logPath",
  "logType" : "logType",
  "encoding" : "encodingType",
  "monitor" : true/false
}
```

**Propriedades**
+ **logGroupName (obrigatório)**

  O nome do grupo de logs do CloudWatch a ser associado ao log monitorado. Para obter as restrições de nome do grupo de logs, consulte [CreateLogGroup](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogGroup.html).
+ **logPath (necessário para componentes de instância do EC2; não necessário para componentes que não usam o CloudWatch Agent, como o AWS Lambda)**

  O caminho dos logs a serem monitorados. O caminho do log deve ser um caminho de arquivo absoluto do sistema Windows. Para obter mais informações, consulte [Arquivo de configuração do atendente do CloudWatch: seção Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html#CloudWatch-Agent-Configuration-File-Logssection). 
+ **logType (obrigatório)**

  O tipo de log decide os padrões de log em relação aos quais o Application Insights analisa o log. O tipo de log é selecionado a partir de:
  + `SQL_SERVER`
  + `MYSQL`
  + `MYSQL_SLOW_QUERY`
  + `POSTGRESQL`
  + `ORACLE_ALERT`
  + `ORACLE_LISTENER`
  + `IIS`
  + `APPLICATION`
  + `WINDOWS_EVENTS`
  + `WINDOWS_EVENTS_ACTIVE_DIRECTORY`
  + `WINDOWS_EVENTS_DNS`
  + `WINDOWS_EVENTS_IIS`
  + `WINDOWS_EVENTS_SHAREPOINT`
  + `SQL_SERVER_ALWAYSON_AVAILABILITY_GROUP`
  + `SQL_SERVER_FAILOVER_CLUSTER_INSTANCE`
  + `DEFAULT`
  + `CUSTOM`
  + `STEP_FUNCTION`
  + `API_GATEWAY_ACCESS`
  + `API_GATEWAY_EXECUTION`
  + `SAP_HANA_LOGS`
  + `SAP_HANA_TRACE`
  + `SAP_HANA_HIGH_AVAILABILITY`
  + `SAP_NETWEAVER_DEV_TRACE_LOGS`
  + `PACEMAKER_HIGH_AVAILABILITY`
+ **encoding (opcional)**

  O tipo de codificação dos logs a serem monitorados. A codificação especificada deve ser incluída na lista de [codificações compatíveis com atendentes do CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AgentReference.html). Se não for fornecida, o CloudWatch Application Insights usará o tipo de codificação padrão utf-8, exceto: 
  +  `SQL_SERVER`: codificação utf-16
  +  `IIS`: codificação ascii
+ **monitor (opcional)**

  Booliano que indica se os logs devem ser monitorados. O valor padrão é `true`.

### Processar
<a name="component-configuration-process"></a>

Define um processo a ser monitorado para o componente.

**JSON** 

```
{
  "processName" : "monitoredProcessName",
  "alarmMetrics" : [
      list of alarm metrics
  ] 
}
```

**Propriedades**
+ **processName (obrigatório)**

  O nome do processo a ser monitorado para o componente. O nome do processo não deve conter uma raiz de processo, como `sqlservr` ou `sqlservr.exe`.
+ **alarmMetrics (obrigatório)**

  Uma lista de [métricas](#component-config-metric) a serem monitoradas para esse processo. Para visualizar as métricas de processo compatíveis com o CloudWatch Application Insights, consulte [Amazon Elastic Compute Cloud (EC2)](appinsights-metrics-ec2.md).

### JMX Prometheus Exporter
<a name="component-configuration-prometheus"></a>

Define as configurações do JMX Prometheus Exporter.

**JSON** 

```
"JMXPrometheusExporter": {
  "jmxURL" : "JMX URL",
  "hostPort" : "The host and port",
  "prometheusPort" : "Target port to emit Prometheus metrics"
}
```

**Propriedades**
+ **jmxURL (opcional)**

  Uma URL completa do JMX para se conectar.
+ **hostPort (opcional)**

  O host e a porta à qual se conectar por meio de JMX remoto. Apenas um de `jmxURL` e `hostPort` pode ser especificado.
+ **prometheusPort (opcional)**

  A porta de destino para a qual enviar métricas do Prometheus. Se não for especificada, será usadaa porta padrão 9404.

### HANA Prometheus Exporter
<a name="component-configuration-hana-prometheus"></a>

Define as configurações do HANA Prometheus Exporter.

**JSON** 

```
"hanaPrometheusExporter": {
    "hanaSid": "SAP HANA  SID",
    "hanaPort": "HANA database port",
    "hanaSecretName": "HANA secret name",
    "prometheusPort": "Target port to emit Prometheus metrics"
}
```

**Propriedades**
+ **hanaSid**

  O ID do sistema SAP (SID) de três caracteres do sistema SAP HANA.
+ **hanaPort**

  A porta de banco de dados HANA pela qual o exportador consultará métricas HANA.
+ **hanaseCretName**

  O segredo do AWS Secrets Manager que armazena credenciais de usuário de monitoramento HANA. O exportador HANA Prometheus usa essas credenciais para se conectar ao banco de dados e consultar métricas HANA.
+ **prometheusPort (opcional)**

  A porta de destino para a qual o Prometheus envia métricas. Se não for especificada, será usada a porta padrão 9668.

### HA Cluster Prometheus Exporter
<a name="component-configuration-ha-cluster-prometheus"></a>

Define as configurações do HA Cluster Prometheus Exporter

**JSON** 

```
"haClusterPrometheusExporter": {
    "prometheusPort": "Target port to emit Prometheus metrics"
}
```

**Propriedades**
+ **prometheusPort (opcional)**

  A porta de destino para a qual o Prometheus envia métricas. Se não for especificada, será usada a porta padrão 9664.

### Exportador do Prometheus para NetWeaver
<a name="component-configuration-netweaver-prometheus"></a>

Define as configurações do exportador Prometheus do NetWeaver.

**JSON** 

```
"netWeaverPrometheusExporter": {
    "sapSid": "SAP NetWeaver  SID",
    "instanceNumbers": [ "Array of instance Numbers of SAP NetWeaver system "],
"prometheusPort": "Target port to emit Prometheus metrics"
}
```

**Propriedades**
+ **sapSid**

  O ID do sistema SAP (SID) de três caracteres do sistema SAP NetWeaver.
+ **instanceNumbers**

  Matriz dos números de instância do sistema SAP NetWeaver.

  **Exemplo da: **`"instanceNumbers": [ "00", "01"]`
+ **prometheusPort (opcional)**

  A porta de destino para a qual enviar as métricas do Prometheus. Se não for especificada, a porta padrão `9680` será usada.

### SAP ASE Prometheus Exporter
<a name="component-configuration-sap-ase-prometheus"></a>

Define as configurações do SAP ASE Prometheus Exporter.

**JSON** 

```
"sapASEPrometheusExporter": {
    "sapAseSid": "SAP ASE SID",
    "sapAsePort": "SAP ASE database port",
    "sapAseSecretName": "SAP ASE secret name",
    "prometheusPort": "Target port to emit Prometheus metrics",
    "agreeToEnableASEMonitoring": true
}
```

**Propriedades**
+ **sapAseSid**

  O ID do sistema SAP (SID) de três caracteres do sistema do SAP ASE.
+ **sapAsePort**

  A porta do banco de dados do SAP ASE pela qual o exportador consultará as métricas do ASE.
+ **sapAseSecretName**

  O segredo do AWS Secrets Manager que armazena as credenciais de usuário de monitoramento do ASE. O SAP ASE Prometheus Exporter usa essas credenciais para se conectar ao banco de dados e consultar as métricas do ASE.
+ **prometheusPort (opcional)**

  A porta de destino para a qual o Prometheus envia métricas. Se não for especificada, será usada a porta padrão 9399. Se houver outro banco de dados ASE que esteja usando a porta padrão, usaremos 9499.

### Eventos do Windows
<a name="windows-events"></a>

Define os eventos do Windows a serem registrados em log.

**JSON** 

```
{
  "logGroupName" : "logGroupName",
  "eventName" : "eventName",
  "eventLevels" : ["ERROR","WARNING","CRITICAL","INFORMATION","VERBOSE"],
  "monitor" : true/false
}
```

**Propriedades**
+ **logGroupName (obrigatório)**

  O nome do grupo de logs do CloudWatch a ser associado ao log monitorado. Para obter as restrições de nome do grupo de logs, consulte [CreateLogGroup](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogGroup.html).
+ **eventName (obrigatório)**

  O tipo de eventos do Windows a serem registrados em log. É equivalente ao nome do canal de log de eventos do Windows. Por exemplo, System, Security, CustomEventName etc. Esse campo é necessário para cada tipo de evento do Windows a ser registrado em log. 
+ **eventLevels (obrigatório)**

  Os níveis de evento a serem registrados. Você deve especificar cada nível a ser registrado em log. Os valores possíveis incluem `INFORMATION`, `WARNING`, `ERROR`, `CRITICAL` e `VERBOSE`. Esse campo é necessário para cada tipo de evento do Windows a ser registrado em log.
+ **monitor (opcional)**

  Booliano que indica se os logs devem ser monitorados. O valor padrão é `true`.

### Alarme
<a name="component-configuration-alarms"></a>

Define um alarme do CloudWatch a ser monitorado para o componente.

**JSON** 

```
{
  "alarmName" : "monitoredAlarmName",
  "severity" : HIGH/MEDIUM/LOW
}
```

**Propriedades**
+ **alarmName (obrigatório)**

  O nome do alarme do CloudWatch a ser monitorado para o componente.
+ **gravidade (opcional)**

  Indica o grau de interrupção quando o alarme dispara. 

# Exemplos de configuração do componente
<a name="component-configuration-examples"></a>

Os exemplos a seguir mostram configurações de componentes no formato JSON para serviços relevantes.

**Topics**
+ [Tabela do Amazon DynamoDB](component-configuration-examples-dynamo.md)
+ [Amazon EC2 Auto Scaling (ASG)](component-configuration-examples-asg.md)
+ [Cluster do Amazon EKS](component-configuration-examples-eks-cluster.md)
+ [Instância do Amazon Elastic Compute Cloud (EC2)](component-configuration-examples-ec2.md)
+ [Amazon Elastic Container Service (Amazon ECS)](component-configuration-examples-ecs.md)
+ [Serviços do Amazon ECS](component-configuration-examples-ecs-service.md)
+ [Tarefas do Amazon ECS](component-configuration-examples-ecs-task.md)
+ [Amazon Elastic File System (Amazon EFS)](component-configuration-examples-efs.md)
+ [Amazon FSx](component-configuration-examples-fsx.md)
+ [Amazon Relational Database Service (RDS) Aurora MySQL](component-configuration-examples-rds-aurora.md)
+ [Instância do banco de dados relacional (RDS) da Amazon](component-configuration-examples-rds.md)
+ [Verificação de integridade do Amazon Route 53](component-configuration-examples-health-check.md)
+ [Zona hospedada do Amazon Route 53](component-configuration-examples-hosted-zone.md)
+ [Amazon Route 53 ResolverEndpoint do](component-configuration-examples-resolver-endpoint.md)
+ [Configurações de logs de consulta do Amazon Route 53 Resolver](component-configuration-examples-resolver-query-logging.md)
+ [Bucket do Amazon S3](component-configuration-examples-s3.md)
+ [Amazon Simple Queue Service (SQS)](component-configuration-examples-sqs.md)
+ [Tópico do Amazon SNS](component-configuration-examples-sns.md)
+ [Amazon Virtual Private Cloud (Amazon VPC)](component-configuration-examples-vpc.md)
+ [Gateways de conversão de endereços de rede (NAT) da Amazon VPC](component-configuration-examples-nat-gateway.md)
+ [Etapas da API REST do API Gateway](component-configuration-examples-api-gateway.md)
+ [Elastic Load Balancing da aplicação](component-configuration-examples-application-elb.md)
+ [AWS LambdaFunção do](component-configuration-examples-lambda.md)
+ [AWS Network FirewallGrupo de regras do](component-configuration-examples-firewall-rule-group.md)
+ [associação do grupos de regras AWS Network Firewall](component-configuration-examples-firewall-rule-group-assoc.md)
+ [AWS Step Functions](component-configuration-examples-step-functions.md)
+ [Instâncias do Amazon EC2 agrupadas pelo cliente](component-configuration-examples-grouped-ec2.md)
+ [Elastic Load Balancing](component-configuration-examples-elb.md)
+ [Java](component-configuration-examples-java.md)
+ [Kubernetes no Amazon EC2](component-configuration-examples-kubernetes-ec2.md)
+ [RDS MariaDB e o RDS MySQL](component-configuration-examples-mysql.md)
+ [RDS Oracle](component-configuration-examples-oracle.md)
+ [RDS PostgreSQL](component-configuration-examples-rds-postgre-sql.md)
+ [SAP ASE no Amazon EC2](component-configuration-examples-sap-ase.md)
+ [Alta disponibilidade do SAP ASE no Amazon EC2](component-configuration-examples-sap-ase-ha.md)
+ [SAP HANA no Amazon EC2](component-configuration-examples-hana.md)
+ [SAP HANA High Availability no Amazon EC2](component-configuration-examples-hana-ha.md)
+ [SAP NetWeaver no Amazon EC2](component-configuration-examples-netweaver.md)
+ [Alta disponibilidade do SAP NetWeaver no Amazon EC2](component-configuration-examples-netweaver-ha.md)
+ [Grupos de disponibilidade Always On do SQL](component-configuration-examples-sql.md)
+ [Instância de cluster de failover do SQL](component-configuration-examples-sql-failover-cluster.md)

# Tabela do Amazon DynamoDB
<a name="component-configuration-examples-dynamo"></a>

O exemplo a seguir mostra uma configuração de componente no formato JSON para a tabela do Amazon DynamoDB.

```
{
  "alarmMetrics": [
    {
      "alarmMetricName": "SystemErrors",
      "monitor": false
    },
    {
      "alarmMetricName": "UserErrors",
      "monitor": false
    },
    {
      "alarmMetricName": "ConsumedReadCapacityUnits",
      "monitor": false
    },
    {
      "alarmMetricName": "ConsumedWriteCapacityUnits",
      "monitor": false
    },
    {
      "alarmMetricName": "ReadThrottleEvents",
      "monitor": false
    },
    {
      "alarmMetricName": "WriteThrottleEvents",
      "monitor": false
    },
    {
      "alarmMetricName": "ConditionalCheckFailedRequests",
      "monitor": false
    },
    {
      "alarmMetricName": "TransactionConflict",
      "monitor": false
    }
  ],
  "logs": []
}
```

# Amazon EC2 Auto Scaling (ASG)
<a name="component-configuration-examples-asg"></a>

O exemplo a seguir mostra uma configuração de componente no formato JSON para o Amazon EC2 Auto Scaling (ASG).

```
{
    "alarmMetrics" : [
      {
        "alarmMetricName" : "CPUCreditBalance"
      }, {
        "alarmMetricName" : "EBSIOBalance%"
      }
    ],
    "subComponents" : [
      {
        "subComponentType" : "AWS::EC2::Instance",
        "alarmMetrics" : [
          {
            "alarmMetricName" : "CPUUtilization"
          }, {
            "alarmMetricName" : "StatusCheckFailed"
          }
        ],
        "logs" : [
          {
            "logGroupName" : "my_log_group",
            "logPath" : "C:\\LogFolder\\*",
            "logType" : "APPLICATION"
          }
        ],
        "processes" : [
          {
            "processName" : "my_process",
            "alarmMetrics" : [
              {
                  "alarmMetricName" : "procstat cpu_usage",
                  "monitor" : true
              }, {
                  "alarmMetricName" : "procstat memory_rss",
                  "monitor" : true
              }
          ]
      }
  ],
        "windowsEvents" : [
          {
            "logGroupName" : "my_log_group_2",
            "eventName" : "Application",
            "eventLevels" : [ "ERROR", "WARNING", "CRITICAL" ]
          }
        ]
      }, {
        "subComponentType" : "AWS::EC2::Volume",
        "alarmMetrics" : [
          {
            "alarmMetricName" : "VolumeQueueLength"
          }, {
            "alarmMetricName" : "BurstBalance"
          }
        ]
      }
    ],
    "alarms" : [
      {
        "alarmName" : "my_asg_alarm",
        "severity" : "LOW"
      }
    ]
  }
```

# Cluster do Amazon EKS
<a name="component-configuration-examples-eks-cluster"></a>

O exemplo a seguir mostra uma configuração de componente no formato JSON para o cluster do Amazon EKS.

```
{
    "alarmMetrics":[
       {
          "alarmMetricName": "cluster_failed_node_count",
          "monitor":true
       },
       {
          "alarmMetricName": "node_cpu_reserved_capacity",
          "monitor":true
       },
       {
          "alarmMetricName": "node_cpu_utilization",
          "monitor":true
       },
       {
          "alarmMetricName": "node_filesystem_utilization",
          "monitor":true
       },
       {
          "alarmMetricName": "node_memory_reserved_capacity",
          "monitor":true
       },
       {
          "alarmMetricName": "node_memory_utilization",
          "monitor":true
       },
       {
          "alarmMetricName": "node_network_total_bytes",
          "monitor":true
       },
       {
          "alarmMetricName": "pod_cpu_reserved_capacity",
          "monitor":true
       },
       {
          "alarmMetricName": "pod_cpu_utilization",
          "monitor":true
       },
       {
          "alarmMetricName": "pod_cpu_utilization_over_pod_limit",
          "monitor":true
       },
       {
          "alarmMetricName": "pod_memory_reserved_capacity",
          "monitor":true
       },
       {
          "alarmMetricName": "pod_memory_utilization",
          "monitor":true
       },
       {
          "alarmMetricName": "pod_memory_utilization_over_pod_limit",
          "monitor":true
       },
       {
          "alarmMetricName": "pod_network_rx_bytes",
          "monitor":true
       },
       {
          "alarmMetricName": "pod_network_tx_bytes",
          "monitor":true
       }
    ],
    "logs":[
       {
          "logGroupName": "/aws/containerinsights/kubernetes/application",
          "logType":"APPLICATION",
          "monitor":true,
          "encoding":"utf-8"
       }
    ],
    "subComponents":[
       {
          "subComponentType":"AWS::EC2::Instance",
          "alarmMetrics":[
             {
                "alarmMetricName":"CPUUtilization",
                "monitor":true
             },
             {
                "alarmMetricName":"StatusCheckFailed",
                "monitor":true
             },
             {
                "alarmMetricName":"disk_used_percent",
                "monitor":true
             },
             {
                "alarmMetricName":"mem_used_percent",
                "monitor":true
             }
          ],
          "logs":[
             {
                "logGroupName":"APPLICATION-KubernetesClusterOnEC2-IAD",
                "logPath":"",
                "logType":"APPLICATION",
                "monitor":true,
                "encoding":"utf-8"
             }
          ],
          "processes" : [
            {
                "processName" : "my_process",
                "alarmMetrics" : [
                    {
                        "alarmMetricName" : "procstat cpu_usage",
                        "monitor" : true
                    }, {
                        "alarmMetricName" : "procstat memory_rss",
                        "monitor" : true
                    }
                ]
            }
        ],
          "windowsEvents":[
             {
                "logGroupName":"my_log_group_2",
                "eventName":"Application",
                "eventLevels":[
                   "ERROR",
                   "WARNING",
                   "CRITICAL"
                ],
                "monitor":true
             }
          ]
       },
       {
          "subComponentType":"AWS::AutoScaling::AutoScalingGroup",
          "alarmMetrics":[
             {
                "alarmMetricName":"CPUCreditBalance",
                "monitor":true
             },
             {
                "alarmMetricName":"EBSIOBalance%",
                "monitor":true
             }
          ]
       },
       {
          "subComponentType":"AWS::EC2::Volume",
          "alarmMetrics":[
             {
                "alarmMetricName":"VolumeReadBytes",
                "monitor":true
             },
             {
                "alarmMetricName":"VolumeWriteBytes",
                "monitor":true
             },
             {
                "alarmMetricName":"VolumeReadOps",
                "monitor":true
             },
             {
                "alarmMetricName":"VolumeWriteOps",
                "monitor":true
             },
             {
                "alarmMetricName":"VolumeQueueLength",
                "monitor":true
             },
             {
                "alarmMetricName":"BurstBalance",
                "monitor":true
             }
          ]
       }
    ]
 }
```

**nota**  
A seção `subComponents` de `AWS::EC2::Instance`, `AWS::EC2::Volume` e `AWS::AutoScaling::AutoScalingGroup`aplica-se somente ao cluster do Amazon EKS em execução no tipo de inicialização do EC2.
A seção `windowsEvents` de `AWS::EC2::Instance` em `subComponents` aplica-se somente ao Windows em execução em instâncias do Amazon EC2.

# Instância do Amazon Elastic Compute Cloud (EC2)
<a name="component-configuration-examples-ec2"></a>

O exemplo a seguir mostra uma configuração de componente no formato JSON para uma instância do Amazon EC2.

**Importante**  
Quando uma instância do Amazon EC2 entra em um estado `stopped`, ela é removida do monitoramento. Quando retorna a um estado `running`, ela é adicionada à lista de **Unmonitored components** (Componentes não monitorados) na página **Application details** (Detalhes da aplicação) do console do CloudWatch Application Insights. Se o monitoramento automático de novos recursos estiver habilitado para a aplicação, a instância será adicionada à lista de **Monitored components** (Componentes monitorados). No entanto, os logs e as métricas são definidos para o padrão da workload. A configuração anterior de log e métricas não é salva. 

```
{
    "alarmMetrics" : [
      {
        "alarmMetricName" : "CPUUtilization",
        "monitor" : true
      }, {
        "alarmMetricName" : "StatusCheckFailed"
      }
    ],
    "logs" : [
      {
        "logGroupName" : "my_log_group",
        "logPath" : "C:\\LogFolder\\*",
        "logType" : "APPLICATION",
        "monitor" : true
      },
      {
        "logGroupName" : "my_log_group_2",
        "logPath" : "C:\\LogFolder2\\*",
        "logType" : "IIS",
        "encoding" : "utf-8"
      }
    ],
    "processes" : [
        {
            "processName" : "my_process",
            "alarmMetrics" : [
                {
                    "alarmMetricName" : "procstat cpu_usage",
                    "monitor" : true
                }, {
                    "alarmMetricName" : "procstat memory_rss",
                    "monitor" : true
                }
            ]
        }
    ],
    "windowsEvents" : [
      {
        "logGroupName" : "my_log_group_3",
        "eventName" : "Application",
        "eventLevels" : [ "ERROR", "WARNING", "CRITICAL" ],
        "monitor" : true
      }, {
        "logGroupName" : "my_log_group_4",
        "eventName" : "System",
        "eventLevels" : [ "ERROR", "WARNING", "CRITICAL" ],
        "monitor" : true
    }],
     "alarms" : [
      {
        "alarmName" : "my_instance_alarm_1",
        "severity" : "HIGH"
      },
      {
        "alarmName" : "my_instance_alarm_2",
        "severity" : "LOW"
      }
    ],
     "subComponents" : [
     {
       "subComponentType" : "AWS::EC2::Volume",
       "alarmMetrics" : [
       {
         "alarmMetricName" : "VolumeQueueLength",
         "monitor" : "true"
       },
       {
         "alarmMetricName" : "VolumeThroughputPercentage",
         "monitor" : "true"
       },
       {
         "alarmMetricName" : "BurstBalance",
         "monitor" : "true"
       }]
    }]
  }
```

# Amazon Elastic Container Service (Amazon ECS)
<a name="component-configuration-examples-ecs"></a>

O exemplo a seguir mostra uma configuração de componente no formato JSON para o Amazon Elastic Container Service (Amazon ECS).

```
{
    "alarmMetrics":[
       {
          "alarmMetricName":"CpuUtilized",
          "monitor":true
       },
       {
          "alarmMetricName":"MemoryUtilized",
          "monitor":true
       },
       {
          "alarmMetricName":"NetworkRxBytes",
          "monitor":true
       },
       {
          "alarmMetricName":"NetworkTxBytes",
          "monitor":true
       },
       {
          "alarmMetricName":"RunningTaskCount",
          "monitor":true
       },
       {
          "alarmMetricName":"PendingTaskCount",
          "monitor":true
       },
       {
          "alarmMetricName":"StorageReadBytes",
          "monitor":true
       },
       {
          "alarmMetricName":"StorageWriteBytes",
          "monitor":true
       }
    ],
    "logs":[
       {
          "logGroupName":"/ecs/my-task-definition",
          "logType":"APPLICATION",
          "monitor":true
       }
    ],
    "subComponents":[
       {
          "subComponentType":"AWS::ElasticLoadBalancing::LoadBalancer",
          "alarmMetrics":[
             {
                "alarmMetricName":"HTTPCode_Backend_4XX",
                "monitor":true
             },
             {
                "alarmMetricName":"HTTPCode_Backend_5XX",
                "monitor":true
             },
             {
                "alarmMetricName":"Latency",
                "monitor":true
             },
             {
                "alarmMetricName":"SurgeQueueLength",
                "monitor":true
             },
             {
                "alarmMetricName":"UnHealthyHostCount",
                "monitor":true
             }
          ]
       },
       {
          "subComponentType":"AWS::ElasticLoadBalancingV2::LoadBalancer",
          "alarmMetrics":[
             {
                "alarmMetricName":"HTTPCode_Target_4XX_Count",
                "monitor":true
             },
             {
                "alarmMetricName":"HTTPCode_Target_5XX_Count",
                "monitor":true
             },
             {
                "alarmMetricName":"TargetResponseTime",
                "monitor":true
             },
             {
                "alarmMetricName":"UnHealthyHostCount",
                "monitor":true
             }
          ]
       },
       {
          "subComponentType":"AWS::EC2::Instance",
          "alarmMetrics":[
             {
                "alarmMetricName":"CPUUtilization",
                "monitor":true
             },
             {
                "alarmMetricName":"StatusCheckFailed",
                "monitor":true
             },
             {
                "alarmMetricName":"disk_used_percent",
                "monitor":true
             },
             {
                "alarmMetricName":"mem_used_percent",
                "monitor":true
             }
          ],
          "logs":[
             {
                "logGroupName":"my_log_group",
                "logPath":"/mylog/path",
                "logType":"APPLICATION",
                "monitor":true
             }
          ],
          "processes" : [
             {
                "processName" : "my_process",
                "alarmMetrics" : [
                    {
                        "alarmMetricName" : "procstat cpu_usage",
                        "monitor" : true
                    }, {
                        "alarmMetricName" : "procstat memory_rss",
                        "monitor" : true
                    }
                 ]
             }
          ],
          "windowsEvents":[
             {
                "logGroupName":"my_log_group_2",
                "eventName":"Application",
                "eventLevels":[
                   "ERROR",
                   "WARNING",
                   "CRITICAL"
                ],
                "monitor":true
             }
          ]
       },
       {
          "subComponentType":"AWS::EC2::Volume",
          "alarmMetrics":[
             {
                "alarmMetricName":"VolumeQueueLength",
                "monitor":"true"
             },
             {
                "alarmMetricName":"VolumeThroughputPercentage",
                "monitor":"true"
             },
             {
                "alarmMetricName":"BurstBalance",
                "monitor":"true"
             }
          ]
       }
    ]
 }
```

**nota**  
A seção `subComponents` de `AWS::EC2::Instance` e `AWS::EC2::Volume` aplica-se somente aos clusters do Amazon ECS com serviço ECS ou tarefa ECS em execução no tipo de inicialização do EC2.
A seção `windowsEvents` de `AWS::EC2::Instance` em `subComponents` aplica-se somente ao Windows em execução em instâncias do Amazon EC2.

# Serviços do Amazon ECS
<a name="component-configuration-examples-ecs-service"></a>

O exemplo a seguir mostra uma configuração de componente no formato JSON para um serviço do Amazon ECS.

```
{
    "alarmMetrics":[
       {
          "alarmMetricName":"CPUUtilization",
          "monitor":true
       },
       {
          "alarmMetricName":"MemoryUtilization",
          "monitor":true
       },
       {
          "alarmMetricName":"CpuUtilized",
          "monitor":true
       },
       {
          "alarmMetricName":"MemoryUtilized",
          "monitor":true
       },
       {
          "alarmMetricName":"NetworkRxBytes",
          "monitor":true
       },
       {
          "alarmMetricName":"NetworkTxBytes",
          "monitor":true
       },
       {
          "alarmMetricName":"RunningTaskCount",
          "monitor":true
       },
       {
          "alarmMetricName":"PendingTaskCount",
          "monitor":true
       },
       {
          "alarmMetricName":"StorageReadBytes",
          "monitor":true
       },
       {
          "alarmMetricName":"StorageWriteBytes",
          "monitor":true
       }
    ],
    "logs":[
       {
          "logGroupName":"/ecs/my-task-definition",
          "logType":"APPLICATION",
          "monitor":true
       }
    ],
    "subComponents":[
       {
          "subComponentType":"AWS::ElasticLoadBalancing::LoadBalancer",
          "alarmMetrics":[
             {
                "alarmMetricName":"HTTPCode_Backend_4XX",
                "monitor":true
             },
             {
                "alarmMetricName":"HTTPCode_Backend_5XX",
                "monitor":true
             },
             {
                "alarmMetricName":"Latency",
                "monitor":true
             },
             {
                "alarmMetricName":"SurgeQueueLength",
                "monitor":true
             },
             {
                "alarmMetricName":"UnHealthyHostCount",
                "monitor":true
             }
          ]
       },
       {
          "subComponentType":"AWS::ElasticLoadBalancingV2::LoadBalancer",
          "alarmMetrics":[
             {
                "alarmMetricName":"HTTPCode_Target_4XX_Count",
                "monitor":true
             },
             {
                "alarmMetricName":"HTTPCode_Target_5XX_Count",
                "monitor":true
             },
             {
                "alarmMetricName":"TargetResponseTime",
                "monitor":true
             },
             {
                "alarmMetricName":"UnHealthyHostCount",
                "monitor":true
             }
          ]
       },
       {
          "subComponentType":"AWS::EC2::Instance",
          "alarmMetrics":[
             {
                "alarmMetricName":"CPUUtilization",
                "monitor":true
             },
             {
                "alarmMetricName":"StatusCheckFailed",
                "monitor":true
             },
             {
                "alarmMetricName":"disk_used_percent",
                "monitor":true
             },
             {
                "alarmMetricName":"mem_used_percent",
                "monitor":true
             }
          ],
          "logs":[
             {
                "logGroupName":"my_log_group",
                "logPath":"/mylog/path",
                "logType":"APPLICATION",
                "monitor":true
             }
          ],
          "processes" : [
             {
                "processName" : "my_process",
                "alarmMetrics" : [
                {
                    "alarmMetricName" : "procstat cpu_usage",
                    "monitor" : true
                }, {
                    "alarmMetricName" : "procstat memory_rss",
                    "monitor" : true
                }
            ]
        }
    ],
          "windowsEvents":[
             {
                "logGroupName":"my_log_group_2",
                "eventName":"Application",
                "eventLevels":[
                   "ERROR",
                   "WARNING",
                   "CRITICAL"
                ],
                "monitor":true
             }
          ]
       },
       {
          "subComponentType":"AWS::EC2::Volume",
          "alarmMetrics":[
             {
                "alarmMetricName":"VolumeQueueLength",
                "monitor":"true"
             },
             {
                "alarmMetricName":"VolumeThroughputPercentage",
                "monitor":"true"
             },
             {
                "alarmMetricName":"BurstBalance",
                "monitor":"true"
             }
          ]
       }
    ]
 }
```

**nota**  
A seção `subComponents` de `AWS::EC2::Instance` e `AWS::EC2::Volume` aplica-se somente ao Amazon ECS em execução no tipo de inicialização do EC2.
A seção `windowsEvents` de `AWS::EC2::Instance` em `subComponents` aplica-se somente ao Windows em execução em instâncias do Amazon EC2.

# Tarefas do Amazon ECS
<a name="component-configuration-examples-ecs-task"></a>

O exemplo a seguir mostra uma configuração de componente no formato JSON para uma tarefa do Amazon ECS.

```
{
    "logs":[
       {
          "logGroupName":"/ecs/my-task-definition",
          "logType":"APPLICATION",
          "monitor":true
       }
    ],
    "processes" : [
        {
            "processName" : "my_process",
            "alarmMetrics" : [
                {
                    "alarmMetricName" : "procstat cpu_usage",
                    "monitor" : true
                }, {
                    "alarmMetricName" : "procstat memory_rss",
                    "monitor" : true
                }
            ]
        }
    ]
 }
```

# Amazon Elastic File System (Amazon EFS)
<a name="component-configuration-examples-efs"></a>

O exemplo a seguir mostra uma configuração de componente no formato JSON para o Amazon EFS.

```
{
   "alarmMetrics": [
     {
       "alarmMetricName": "BurstCreditBalance",
       "monitor": true
     },
     {
       "alarmMetricName": "PercentIOLimit",
       "monitor": true
     },
     {
       "alarmMetricName": "PermittedThroughput",
       "monitor": true
     },
     {
       "alarmMetricName": "MeteredIOBytes",
       "monitor": true
     },
     {
       "alarmMetricName": "TotalIOBytes",
       "monitor": true
     },
     {
       "alarmMetricName": "DataWriteIOBytes",
       "monitor": true
     },
     {
       "alarmMetricName": "DataReadIOBytes",
       "monitor": true
     },
     {
       "alarmMetricName": "MetadataIOBytes",
       "monitor": true
     },
     {
       "alarmMetricName": "ClientConnections",
       "monitor": true
     },
     {
       "alarmMetricName": "TimeSinceLastSync",
       "monitor": true
     },
     {
       "alarmMetricName": "Throughput",
       "monitor": true
     },
     {
       "alarmMetricName": "PercentageOfPermittedThroughputUtilization",
       "monitor": true
     },
     {
       "alarmMetricName": "ThroughputIOPS",
       "monitor": true
     },
     {
       "alarmMetricName": "PercentThroughputDataReadIOBytes",
       "monitor": true
     },
     {
       "alarmMetricName": "PercentThroughputDataWriteIOBytes",
       "monitor": true
     },
     {
       "alarmMetricName": "PercentageOfIOPSDataReadIOBytes",
       "monitor": true
     },
     {
       "alarmMetricName": "PercentageOfIOPSDataWriteIOBytes",
       "monitor": true
     },
     {
       "alarmMetricName": "AverageDataReadIOBytesSize",
       "monitor": true
     },
     {
       "alarmMetricName": "AverageDataWriteIOBytesSize",
       "monitor": true
     }
   ],
   "logs": [
    {
    "logGroupName": "/aws/efs/utils",
    "logType": "EFS_MOUNT_STATUS",
    "monitor": true,
    }
   ]
 }
```

# Amazon FSx
<a name="component-configuration-examples-fsx"></a>

O exemplo a seguir mostra uma configuração de componente no formato JSON para o Amazon FSx.

```
{
  "alarmMetrics": [
    {
      "alarmMetricName": "DataReadBytes",
      "monitor": true
    },
    {
      "alarmMetricName": "DataWriteBytes",
      "monitor": true
    },
    {
      "alarmMetricName": "DataReadOperations",
      "monitor": true
    },
    {
      "alarmMetricName": "DataWriteOperations",
      "monitor": true
    },
    {
      "alarmMetricName": "MetadataOperations",
      "monitor": true
    },
    {
      "alarmMetricName": "FreeStorageCapacity",
      "monitor": true
    }
  ]
}
```

# Amazon Relational Database Service (RDS) Aurora MySQL
<a name="component-configuration-examples-rds-aurora"></a>

O exemplo a seguir mostra uma configuração de componente no formato JSON do Amazon RDS Aurora MySQL.

```
{
  "alarmMetrics": [
    {
      "alarmMetricName": "CPUUtilization",
      "monitor": true
    },
    {
      "alarmMetricName": "CommitLatency",
      "monitor": true
    }
  ],
  "logs": [
    {
      "logType": "MYSQL",
      "monitor": true,
    },
    {
      "logType": "MYSQL_SLOW_QUERY",
      "monitor": false
    }
  ]
}
```

# Instância do banco de dados relacional (RDS) da Amazon
<a name="component-configuration-examples-rds"></a>

O exemplo a seguir mostra uma configuração de componente no formato JSON para uma instância do Amazon RDS.

```
{
  "alarmMetrics" : [
    {
      "alarmMetricName" : "BurstBalance",
      "monitor" : true
    }, {
      "alarmMetricName" : "WriteThroughput",
      "monitor" : false
    }
  ],

  "alarms" : [
    {
      "alarmName" : "my_rds_instance_alarm",
      "severity" : "MEDIUM"
    }
  ]
}
```

# Verificação de integridade do Amazon Route 53
<a name="component-configuration-examples-health-check"></a>

O exemplo a seguir mostra uma configuração de componente no formato JSON para verificação de integridade do Amazon Route 53.

```
{
  "alarmMetrics": [
    {
      "alarmMetricName": "ChildHealthCheckHealthyCount",
      "monitor": true
    },
    {
      "alarmMetricName": "ConnectionTime",
      "monitor": true
    },
    {
      "alarmMetricName": "HealthCheckPercentageHealthy",
      "monitor": true
    },
    {
      "alarmMetricName": "HealthCheckStatus",
      "monitor": true
    },
    {
      "alarmMetricName": "SSLHandshakeTime",
      "monitor": true
    },
    {
      "alarmMetricName": "TimeToFirstByte",
      "monitor": true
    }
  ]  
}
```

# Zona hospedada do Amazon Route 53
<a name="component-configuration-examples-hosted-zone"></a>

O exemplo a seguir mostra uma configuração de componente no formato JSON para zona hospedada do Amazon Route 53.

```
{
  "alarmMetrics": [
    {
      "alarmMetricName": "DNSQueries",
      "monitor": true
    },
    {
      "alarmMetricName": "DNSSECInternalFailure",
      "monitor": true
    },
    {
      "alarmMetricName": "DNSSECKeySigningKeysNeedingAction",
      "monitor": true
    },
    {
      "alarmMetricName": "DNSSECKeySigningKeyMaxNeedingActionAge",
      "monitor": true
    },
    {
      "alarmMetricName": "DNSSECKeySigningKeyAge",
      "monitor": true
    }
  ],
  "logs": [
    {
      "logGroupName":"/hosted-zone/logs",
      "logType": "ROUTE53_DNS_PUBLIC_QUERY_LOGS",
      "monitor": true
    }
  ]
}
```

# Amazon Route 53 ResolverEndpoint do
<a name="component-configuration-examples-resolver-endpoint"></a>

O exemplo a seguir mostra uma configuração de componente no formato JSON para o endpoint Amazon Route 53 Resolver.

```
{
  "alarmMetrics": [
    {
      "alarmMetricName": "EndpointHealthyENICount",
      "monitor": true
    },
    {
      "alarmMetricName": "EndpointUnHealthyENICount",
      "monitor": true
    },
    {
      "alarmMetricName": "InboundQueryVolume",
      "monitor": true
    },
    {
      "alarmMetricName": "OutboundQueryVolume",
      "monitor": true
    },
    {
      "alarmMetricName": "OutboundQueryAggregateVolume",
      "monitor": true
    }
  ]  
}
```

# Configurações de logs de consulta do Amazon Route 53 Resolver
<a name="component-configuration-examples-resolver-query-logging"></a>

O exemplo a seguir mostra uma configuração de componente no formato JSON para a configuração de logs de consulta do Amazon Route 53 Resolver.

```
{
  "logs": [
    {
      "logGroupName": "/resolver-query-log-config/logs",
      "logType": "ROUTE53_RESOLVER_QUERY_LOGS",
      "monitor": true
    }
  ]  
}
```

# Bucket do Amazon S3
<a name="component-configuration-examples-s3"></a>

O exemplo a seguir mostra uma configuração de componentes no formato JSON para um bucket do Amazon S3.

```
{
    "alarmMetrics" : [
        {
            "alarmMetricName" : "ReplicationLatency",
            "monitor" : true
        }, {
            "alarmMetricName" : "5xxErrors",
            "monitor" : true
        }, {
            "alarmMetricName" : "BytesDownloaded"
            "monitor" : true
        }
    ]
}
```

# Amazon Simple Queue Service (SQS)
<a name="component-configuration-examples-sqs"></a>

O exemplo a seguir mostram configurações de componentes no formato JSON para o Amazon Simple Queue Service.

```
{
  "alarmMetrics" : [
    {
      "alarmMetricName" : "ApproximateAgeOfOldestMessage"
    }, {
      "alarmMetricName" : "NumberOfEmptyReceives"
    }
  ],
  "alarms" : [
    {
      "alarmName" : "my_sqs_alarm",
      "severity" : "MEDIUM"
    }
  ]
}
```

# Tópico do Amazon SNS
<a name="component-configuration-examples-sns"></a>

O exemplo a seguir mostra uma configuração de componente no formato JSON para um tópico do Amazon SNS.

```
{
  "alarmMetrics": [
    {
      "alarmMetricName": "NumberOfNotificationsFailed",
      "monitor": true
    },
    {
      "alarmMetricName": "NumberOfNotificationsFilteredOut-InvalidAttributes",
      "monitor": true
    },
    {
      "alarmMetricName": "NumberOfNotificationsFilteredOut-NoMessageAttributes",
      "monitor": true
    },
    {
      "alarmMetricName": "NumberOfNotificationsFailedToRedriveToDlq",
      "monitor": true
    }
  ]
}
```

# Amazon Virtual Private Cloud (Amazon VPC)
<a name="component-configuration-examples-vpc"></a>

O exemplo a seguir mostra uma configuração de componente no formato JSON para a Amazon VPC.

```
{
  "alarmMetrics": [
    {
      "alarmMetricName": "NetworkAddressUsage",
      "monitor": true
    },
    {
      "alarmMetricName": "NetworkAddressUsagePeered",
      "monitor": true
    },
    {
      "alarmMetricName": "VPCFirewallQueryVolume",
      "monitor": true
    }
  ]
}
```

# Gateways de conversão de endereços de rede (NAT) da Amazon VPC
<a name="component-configuration-examples-nat-gateway"></a>

O exemplo a seguir mostra uma configuração de componentes no formato JSON para gateways de NAT.

```
{
  "alarmMetrics": [
    {
      "alarmMetricName": "ErrorPortAllocation",
      "monitor": true
    },
    {
      "alarmMetricName": "IdleTimeoutCount",
      "monitor": true
    }
  ]
}
```

# Etapas da API REST do API Gateway
<a name="component-configuration-examples-api-gateway"></a>

O exemplo a seguir mostra uma configuração de componente no formato JSON para etapas da API REST do API Gateway.

```
{ 
     "alarmMetrics" : [ 
         {
             "alarmMetricName" : "4XXError",   
             "monitor" : true
         }, 
         {
             "alarmMetricName" : "5XXError",   
             "monitor" : true
         } 
     ],
    "logs" : [
        { 
            "logType" : "API_GATEWAY_EXECUTION",   
            "monitor" : true  
        },
        { 
            "logType" : "API_GATEWAY_ACCESS",   
            "monitor" : true  
        }
    ]
}
```

# Elastic Load Balancing da aplicação
<a name="component-configuration-examples-application-elb"></a>

O exemplo a seguir mostra uma configuração de componente no formato JSON do Application Elastic Load Balancing.

```
{
  "alarmMetrics": [
    {
      "alarmMetricName": "ActiveConnectionCount",
    }, {
      "alarmMetricName": "TargetResponseTime"
    }
  ],  
  "subComponents": [
    {
      "subComponentType": "AWS::EC2::Instance",
      "alarmMetrics": [
        {
          "alarmMetricName": "CPUUtilization",
        }, {
          "alarmMetricName": "StatusCheckFailed"
        }
      ],
      "logs": [
        {
          "logGroupName": "my_log_group",
          "logPath": "C:\\LogFolder\\*",
          "logType": "APPLICATION",
        }
      ],
      "windowsEvents": [
        {
          "logGroupName": "my_log_group_2",
          "eventName": "Application",
          "eventLevels": [ "ERROR", "WARNING", "CRITICAL" ]
        }
      ]
    }, {
      "subComponentType": "AWS::EC2::Volume",
      "alarmMetrics": [
        {
          "alarmMetricName": "VolumeQueueLength",
        }, {
          "alarmMetricName": "BurstBalance"
        }
      ]
    }
  ],

  "alarms": [
    {
      "alarmName": "my_alb_alarm",
      "severity": "LOW"
    }
  ]
}
```

# AWS LambdaFunção do
<a name="component-configuration-examples-lambda"></a>

O exemplo a seguir mostra uma configuração de componente no formato JSON para a Função AWS Lambda.

```
{
  "alarmMetrics": [
    {
      "alarmMetricName": "Errors",
      "monitor": true
    },
    {
      "alarmMetricName": "Throttles",
      "monitor": true
    },
    {
      "alarmMetricName": "IteratorAge",
      "monitor": true
    },
    {
      "alarmMetricName": "Duration",
      "monitor": true
    }
  ],
  "logs": [
    {
      "logType": "DEFAULT",
      "monitor": true
    }
  ]
}
```

# AWS Network FirewallGrupo de regras do
<a name="component-configuration-examples-firewall-rule-group"></a>

O exemplo a seguir mostra uma configuração de componente no formato JSON para o grupo de regras AWS Network Firewall.

```
{
  "alarmMetrics": [
    {
      "alarmMetricName": "FirewallRuleGroupQueryVolume",
      "monitor": true
    }
  ]
}
```

# associação do grupos de regras AWS Network Firewall
<a name="component-configuration-examples-firewall-rule-group-assoc"></a>

O exemplo a seguir mostra uma configuração de componente no formato JSON para a associação do grupo de regras AWS Network Firewall.

```
{
  "alarmMetrics": [
    {
      "alarmMetricName": "FirewallRuleGroupQueryVolume",
      "monitor": true
    }
  ]
}
```

# AWS Step Functions
<a name="component-configuration-examples-step-functions"></a>

O exemplo a seguir mostra uma configuração de componentes no formato JSON para AWS Step Functions.

```
{
  "alarmMetrics": [
    {
      "alarmMetricName": "ExecutionsFailed",
      "monitor": true
    },
    {
      "alarmMetricName": "LambdaFunctionsFailed",
      "monitor": true
    },
    {
      "alarmMetricName": "ProvisionedRefillRate",
      "monitor": true
    }
  ],
  "logs": [
    {
     "logGroupName": "/aws/states/HelloWorld-Logs",
      "logType": "STEP_FUNCTION",
      "monitor": true,
    }
  ]
}
```

# Instâncias do Amazon EC2 agrupadas pelo cliente
<a name="component-configuration-examples-grouped-ec2"></a>

O exemplo a seguir mostra uma configuração de componente no formato JSON para instâncias do Amazon EC2 agrupadas pelo cliente.

```
{
    "subComponents": [
      {
        "subComponentType": "AWS::EC2::Instance",
        "alarmMetrics": [
          {
            "alarmMetricName": "CPUUtilization",
          }, 
          {
            "alarmMetricName": "StatusCheckFailed"
          }
        ],
        "logs": [
          {
            "logGroupName": "my_log_group",
            "logPath": "C:\\LogFolder\\*",
            "logType": "APPLICATION",
          }
        ],
        "processes": [
            {
                "processName": "my_process",
                "alarmMetrics": [
                    {
                        "alarmMetricName": "procstat cpu_usage",
                        "monitor": true
                    }, {
                        "alarmMetricName": "procstat memory_rss",
                        "monitor": true
                    }
                ]
            }
        ],
        "windowsEvents": [
          {
            "logGroupName": "my_log_group_2",
            "eventName": "Application",
            "eventLevels": [ "ERROR", "WARNING", "CRITICAL" ]
          }
        ]
      }, {
        "subComponentType": "AWS::EC2::Volume",
        "alarmMetrics": [
          {
            "alarmMetricName": "VolumeQueueLength",
          }, {
            "alarmMetricName": "BurstBalance"
          }
        ]
      }
    ],
    "alarms": [
      {
        "alarmName": "my_alarm",
        "severity": "MEDIUM"
      }
    ]
  }
```

# Elastic Load Balancing
<a name="component-configuration-examples-elb"></a>

O exemplo a seguir mostra uma configuração de componente no formato JSON para o Elastic Load Balancing.

```
{
    "alarmMetrics": [
      {
        "alarmMetricName": "EstimatedALBActiveConnectionCount"
      }, {
        "alarmMetricName": "HTTPCode_Backend_5XX"
      }
    ],
    "subComponents": [
      {
        "subComponentType": "AWS::EC2::Instance",
        "alarmMetrics": [
          {
            "alarmMetricName": "CPUUtilization"
          }, {
            "alarmMetricName": "StatusCheckFailed"
          }
        ],
        "logs": [
          {
            "logGroupName": "my_log_group",
            "logPath": "C:\\LogFolder\\*",
            "logType": "APPLICATION"
          }
        ],
        "processes": [
          {
            "processName": "my_process",
            "alarmMetrics": [
                {
                  "alarmMetricName": "procstat cpu_usage",
                  "monitor": true
                }, {
                  "alarmMetricName": "procstat memory_rss",
                  "monitor": true
                }
              ]
          }
        ],
        "windowsEvents": [
          {
            "logGroupName": "my_log_group_2",
            "eventName": "Application",
            "eventLevels": [ "ERROR", "WARNING", "CRITICAL" ],
            "monitor": true
          }
        ]
      }, {
        "subComponentType": "AWS::EC2::Volume",
        "alarmMetrics": [
          {
            "alarmMetricName": "VolumeQueueLength"
          }, {
            "alarmMetricName": "BurstBalance"
          }
        ]
      }
    ],
  
    "alarms": [
      {
        "alarmName": "my_elb_alarm",
        "severity": "HIGH"
      }
    ]
  }
```

# Java
<a name="component-configuration-examples-java"></a>

O exemplo a seguir mostra uma configuração de componentes no formato JSON para Java.

```
{
  "alarmMetrics": [ {
    "alarmMetricName": "java_lang_threading_threadcount",
    "monitor": true
  },
  {
    "alarmMetricName": "java_lang_memory_heapmemoryusage_used",
    "monitor": true
  },
  {
    "alarmMetricName": "java_lang_memory_heapmemoryusage_committed",
    "monitor": true
  }],
  "logs": [ ],
  "JMXPrometheusExporter": {
      "hostPort": "8686",
      "prometheusPort": "9404"
  }
}
```

**nota**  
O Application Insights não é compatível com a configuração de autenticação para o Prometheus JMX Exporter. Para obter informações sobre como configurar a autenticação, consulte a [Exemplo de configuração do Prometheus JMX Exporter](https://github.com/prometheus/jmx_exporter#configuration).

# Kubernetes no Amazon EC2
<a name="component-configuration-examples-kubernetes-ec2"></a>

O exemplo a seguir mostra uma configuração de componente no formato JSON para Kubernetes no Amazon EC2.

```
{
    "alarmMetrics":[
       {
          "alarmMetricName":"cluster_failed_node_count",
          "monitor":true
       },
       {
          "alarmMetricName":"node_cpu_reserved_capacity",
          "monitor":true
       },
       {
          "alarmMetricName":"node_cpu_utilization",
          "monitor":true
       },
       {
          "alarmMetricName":"node_filesystem_utilization",
          "monitor":true
       },
       {
          "alarmMetricName":"node_memory_reserved_capacity",
          "monitor":true
       },
       {
          "alarmMetricName":"node_memory_utilization",
          "monitor":true
       },
       {
          "alarmMetricName":"node_network_total_bytes",
          "monitor":true
       },
       {
          "alarmMetricName":"pod_cpu_reserved_capacity",
          "monitor":true
       },
       {
          "alarmMetricName":"pod_cpu_utilization",
          "monitor":true
       },
       {
          "alarmMetricName":"pod_cpu_utilization_over_pod_limit",
          "monitor":true
       },
       {
          "alarmMetricName":"pod_memory_reserved_capacity",
          "monitor":true
       },
       {
          "alarmMetricName":"pod_memory_utilization",
          "monitor":true
       },
       {
          "alarmMetricName":"pod_memory_utilization_over_pod_limit",
          "monitor":true
       },
       {
          "alarmMetricName":"pod_network_rx_bytes",
          "monitor":true
       },
       {
          "alarmMetricName":"pod_network_tx_bytes",
          "monitor":true
       }
    ],
    "logs":[
       {
          "logGroupName":"/aws/containerinsights/kubernetes/application",
          "logType":"APPLICATION",
          "monitor":true,
          "encoding":"utf-8"
       }
    ],
    "subComponents":[
       {
          "subComponentType":"AWS::EC2::Instance",
          "alarmMetrics":[
             {
                "alarmMetricName":"CPUUtilization",
                "monitor":true
             },
             {
                "alarmMetricName":"StatusCheckFailed",
                "monitor":true
             },
             {
                "alarmMetricName":"disk_used_percent",
                "monitor":true
             },
             {
                "alarmMetricName":"mem_used_percent",
                "monitor":true
             }
          ],
          "logs":[
             {
                "logGroupName":"APPLICATION-KubernetesClusterOnEC2-IAD",
                "logPath":"",
                "logType":"APPLICATION",
                "monitor":true,
                "encoding":"utf-8"
             }
          ],
          "processes" : [
            {
                "processName" : "my_process",
                "alarmMetrics" : [
                    {
                        "alarmMetricName" : "procstat cpu_usage",
                        "monitor" : true
                    }, {
                        "alarmMetricName" : "procstat memory_rss",
                        "monitor" : true
                    }
                ]
            }
        ]
       },
       {
          "subComponentType":"AWS::EC2::Volume",
          "alarmMetrics":[
             {
                "alarmMetricName":"VolumeReadBytes",
                "monitor":true
             },
             {
                "alarmMetricName":"VolumeWriteBytes",
                "monitor":true
             },
             {
                "alarmMetricName":"VolumeReadOps",
                "monitor":true
             },
             {
                "alarmMetricName":"VolumeWriteOps",
                "monitor":true
             },
             {
                "alarmMetricName":"VolumeQueueLength",
                "monitor":true
             },
             {
                "alarmMetricName":"BurstBalance",
                "monitor":true
             }
          ]
       }
    ]
 }
```

# RDS MariaDB e o RDS MySQL
<a name="component-configuration-examples-mysql"></a>

O exemplo a seguir mostra uma configuração de componentes no formato JSON para RDS MariaDB e RDS MySQL.

```
{
  "alarmMetrics": [
    {
      "alarmMetricName": "CPUUtilization",
      "monitor": true
    }
  ],
  "logs": [
    {
      "logType": "MYSQL",
      "monitor": true,
    },
    {
      "logType": "MYSQL_SLOW_QUERY",
      "monitor": false
    }
  ]
}
```

# RDS Oracle
<a name="component-configuration-examples-oracle"></a>

O exemplo a seguir mostra uma configuração de componente no formato JSON para o RDS Oracle.

```
{
  "alarmMetrics": [
    {
      "alarmMetricName": "CPUUtilization",
      "monitor": true
    }
  ],
  "logs": [
    {
      "logType": "ORACLE_ALERT",
      "monitor": true,
    },
    {
      "logType": "ORACLE_LISTENER",
      "monitor": false
    }
  ]
}
```

# RDS PostgreSQL
<a name="component-configuration-examples-rds-postgre-sql"></a>

O exemplo a seguir mostra uma configuração de componente no formato JSON para RDS PostgreSQL.

```
{
  "alarmMetrics": [
    {
      "alarmMetricName": "CPUUtilization",
      "monitor": true
    }
  ],
  "logs": [
    {
      "logType": "POSTGRESQL",
      "monitor": true
    }
  ]
}
```

# SAP ASE no Amazon EC2
<a name="component-configuration-examples-sap-ase"></a>

O exemplo a seguir mostra uma configuração de componente no formato JSON para o SAP ASE no Amazon EC2.

```
{
  "subComponents": [
    {
      "subComponentType": "AWS::EC2::Instance",
      "alarmMetrics": [
        {
          "alarmMetricName": "asedb_database_availability",
          "monitor": true
        },
        {
          "alarmMetricName": "asedb_trunc_log_on_chkpt_enabled",
          "monitor": true
        },
        {
          "alarmMetricName": "asedb_last_db_backup_age_in_days",
          "monitor": true
        },
        {
          "alarmMetricName": "asedb_last_transaction_log_backup_age_in_hours",
          "monitor": true
        },
        {
          "alarmMetricName": "asedb_suspected_database",
          "monitor": true
        },
        {
          "alarmMetricName": "asedb_db_space_usage_percent",
          "monitor": true
        },
        {
          "alarmMetricName": "asedb_db_log_space_usage_percent",
          "monitor": true
        },
        {
          "alarmMetricName": "asedb_locked_login",
          "monitor": true
        },
        {
          "alarmMetricName": "asedb_data_cache_hit_ratio",
          "monitor": true
        }
      ],
      "logs": [
        {
          "logGroupName": "SAP_ASE_SERVER_LOGS-my-resource-group",
          "logPath": "/sybase/SY2/ASE-*/install/SY2.log",
          "logType": "SAP_ASE_SERVER_LOGS",
          "monitor": true,
          "encoding": "utf-8"
        },
        {
          "logGroupName": "SAP_ASE_BACKUP_SERVER_LOGS-my-resource-group",
          "logPath": "/sybase/SY2/ASE-*/install/SY2_BS.log",
          "logType": "SAP_ASE_BACKUP_SERVER_LOGS",
          "monitor": true,
          "encoding": "utf-8"
        }
  ],
  "sapAsePrometheusExporter": {
    "sapAseSid": "ASE",
    "sapAsePort": "4901",
    "sapAseSecretName": "ASE_DB_CREDS",
    "prometheusPort": "9399",
    "agreeToEnableASEMonitoring": true
}
```

# Alta disponibilidade do SAP ASE no Amazon EC2
<a name="component-configuration-examples-sap-ase-ha"></a>

O exemplo a seguir mostra uma configuração de componente no formato JSON para a alta disponibilidade do SAP ASE no Amazon EC2.

```
{
  "subComponents": [
    {
      "subComponentType": "AWS::EC2::Instance",
      "alarmMetrics": [
        {
          "alarmMetricName": "asedb_database_availability",
          "monitor": true
        },
        {
          "alarmMetricName": "asedb_trunc_log_on_chkpt_enabled",
          "monitor": true
        },
        {
          "alarmMetricName": "asedb_last_db_backup_age_in_days",
          "monitor": true
        },
        {
          "alarmMetricName": "asedb_last_transaction_log_backup_age_in_hours",
          "monitor": true
        },
        {
          "alarmMetricName": "asedb_suspected_database",
          "monitor": true
        },
        {
          "alarmMetricName": "asedb_db_space_usage_percent",
          "monitor": true
        },
        {
          "alarmMetricName": "asedb_ha_replication_state",
          "monitor": true
        },
        {
          "alarmMetricName": "asedb_ha_replication_mode",
          "monitor": true
        },
        {
          "alarmMetricName": "asedb_ha_replication_latency_in_minutes",
          "monitor": true
        }
      ],
      "logs": [
        {
          "logGroupName": "SAP_ASE_SERVER_LOGS-my-resource-group",
          "logPath": "/sybase/SY2/ASE-*/install/SY2.log",
          "logType": "SAP_ASE_SERVER_LOGS",
          "monitor": true,
          "encoding": "utf-8"
        },
        {
          "logGroupName": "SAP_ASE_BACKUP_SERVER_LOGS-my-resource-group",
          "logPath": "/sybase/SY2/ASE-*/install/SY2_BS.log",
          "logType": "SAP_ASE_BACKUP_SERVER_LOGS",
          "monitor": true,
          "encoding": "utf-8"
        },
        {
          "logGroupName": "SAP_ASE_REP_SERVER_LOGS-my-resource-group",
          "logPath": "/sybase/SY2/DM/repservername/repservername.log",
          "logType": "SAP_ASE_REP_SERVER_LOGS",
          "monitor": true,
          "encoding": "utf-8"
        },
        {
          "logGroupName": "SAP_ASE_RMA_AGENT_LOGS-my-resource-group",
          "logPath": "/sybase/SY2/DM/RMA-*/instances/AgentContainer/logs/",
          "logType": "SAP_ASE_RMA_AGENT_LOGS",
          "monitor": true,
          "encoding": "utf-8"
        },
        {
          "logGroupName": "SAP_ASE_FAULT_MANAGER_LOGS-my-resource-group",
          "logPath": "/opt/sap/FaultManager/dev_sybdbfm",
          "logType": "SAP_ASE_FAULT_MANAGER_LOGS",
          "monitor": true,
          "encoding": "utf-8"
        }
  ],
  "sapAsePrometheusExporter": {
    "sapAseSid": "ASE",
    "sapAsePort": "4901",
    "sapAseSecretName": "ASE_DB_CREDS",
    "prometheusPort": "9399",
    "agreeToEnableASEMonitoring": true
}
```

# SAP HANA no Amazon EC2
<a name="component-configuration-examples-hana"></a>

O exemplo a seguir mostra uma configuração de componente no formato JSON para SAP HANA no Amazon EC2.

```
{
  "subComponents": [
    {
      "subComponentType": "AWS::EC2::Instance",
      "alarmMetrics": [
        {
          "alarmMetricName": "hanadb_server_startup_time_variations_seconds",
          "monitor": true
        },
        {
          "alarmMetricName": "hanadb_level_5_alerts_count",
          "monitor": true
        },
        {
          "alarmMetricName": "hanadb_level_4_alerts_count",
          "monitor": true
        },
        {
          "alarmMetricName": "hanadb_out_of_memory_events_count",
          "monitor": true
        },
        {
          "alarmMetricName": "hanadb_max_trigger_read_ratio_percent",
          "monitor": true
        },
        {
          "alarmMetricName": "hanadb_table_allocation_limit_used_percent",
          "monitor": true
        },
        {
          "alarmMetricName": "hanadb_cpu_usage_percent",
          "monitor": true
        },
        {
          "alarmMetricName": "hanadb_plan_cache_hit_ratio_percent",
          "monitor": true
        },
        {
          "alarmMetricName": "hanadb_last_data_backup_age_days",
          "monitor": true
        }
      ],
      "logs": [
        {
          "logGroupName": "SAP_HANA_TRACE-my-resourge-group",
          "logPath": "/usr/sap/HDB/HDB00/*/trace/*.trc",
          "logType": "SAP_HANA_TRACE",
          "monitor": true,
          "encoding": "utf-8"
        },
        {
          "logGroupName": "SAP_HANA_LOGS-my-resource-group",
          "logPath": "/usr/sap/HDB/HDB00/*/trace/*.log",
          "logType": "SAP_HANA_LOGS",
          "monitor": true,
          "encoding": "utf-8"
        }
      ]
    }
  ],
  "hanaPrometheusExporter": {
    "hanaSid": "HDB",
    "hanaPort": "30013",
    "hanaSecretName": "HANA_DB_CREDS",
    "prometheusPort": "9668"
  }
}
```

# SAP HANA High Availability no Amazon EC2
<a name="component-configuration-examples-hana-ha"></a>

O exemplo a seguir mostra uma configuração de componente no formato JSON para SAP HANA High Availability no Amazon EC2.

```
{
  "subComponents": [
    {
      "subComponentType": "AWS::EC2::Instance",
      "alarmMetrics": [
        {
          "alarmMetricName": "hanadb_server_startup_time_variations_seconds",
          "monitor": true
        },
        {
          "alarmMetricName": "hanadb_level_5_alerts_count",
          "monitor": true
        },
        {
          "alarmMetricName": "hanadb_level_4_alerts_count",
          "monitor": true
        },
        {
          "alarmMetricName": "hanadb_out_of_memory_events_count",
          "monitor": true
        },
        {
          "alarmMetricName": "ha_cluster_pacemaker_stonith_enabled",
          "monitor": true
        }
      ],
      "logs": [
        {
          "logGroupName": "SAP_HANA_TRACE-my-resourge-group",
          "logPath": "/usr/sap/HDB/HDB00/*/trace/*.trc",
          "logType": "SAP_HANA_TRACE",
          "monitor": true,
          "encoding": "utf-8"
        },
        {
          "logGroupName": "SAP_HANA_HIGH_AVAILABILITY-my-resource-group",
          "logPath": "/var/log/pacemaker/pacemaker.log",
          "logType": "SAP_HANA_HIGH_AVAILABILITY",
          "monitor": true,
          "encoding": "utf-8"
        }
      ]
    }
  ],
  "hanaPrometheusExporter": {
    "hanaSid": "HDB",
    "hanaPort": "30013",
    "hanaSecretName": "HANA_DB_CREDS",
    "prometheusPort": "9668"
  },
  "haClusterPrometheusExporter": {
    "prometheusPort": "9664"
  }
}
```

# SAP NetWeaver no Amazon EC2
<a name="component-configuration-examples-netweaver"></a>

O exemplo a seguir mostra uma configuração de componente no formato JSON para o SAP NetWeaver no Amazon EC2.

```
{
  "subComponents": [
    {
      "subComponentType": "AWS::EC2::Instance",
      "alarmMetrics": [
        {
          "alarmMetricName": "CPUUtilization",
          "monitor": true
        },
        {
          "alarmMetricName": "StatusCheckFailed",
          "monitor": true
        },
        {
          "alarmMetricName": "disk_used_percent",
          "monitor": true
        },
        {
          "alarmMetricName": "mem_used_percent",
          "monitor": true
        },
        {
          "alarmMetricName": "sap_alerts_ResponseTime",
          "monitor": true
        },
        {
          "alarmMetricName": "sap_alerts_ResponseTimeDialog",
          "monitor": true
        },
        {
          "alarmMetricName": "sap_alerts_ResponseTimeDialogRFC",
          "monitor": true
        },
        {
          "alarmMetricName": "sap_alerts_DBRequestTime",
          "monitor": true
        },
        {
          "alarmMetricName": "sap_alerts_LongRunners",
          "monitor": true
        },
        {
          "alarmMetricName": "sap_alerts_AbortedJobs",
          "monitor": true
        },
        {
          "alarmMetricName": "sap_alerts_BasisSystem",
          "monitor": true
        },
        {
          "alarmMetricName": "sap_alerts_Database",
          "monitor": true
        },
        {
          "alarmMetricName": "sap_alerts_Security",
          "monitor": true
        },
        {
          "alarmMetricName": "sap_alerts_System",
          "monitor": true
        },
        {
          "alarmMetricName": "sap_alerts_QueueTime",
          "monitor": true
        },
        {
          "alarmMetricName": "sap_alerts_Availability",
          "monitor": true
        },
        {
          "alarmMetricName": "sap_start_service_processes",
          "monitor": true
        },
        {
          "alarmMetricName": "sap_dispatcher_queue_now",
          "monitor": true
        },
        {
          "alarmMetricName": "sap_dispatcher_queue_max",
          "monitor": true
        },
        {
          "alarmMetricName": "sap_enqueue_server_locks_max",
          "monitor": true
        },
        {
          "alarmMetricName": "sap_enqueue_server_locks_now",
          "monitor": true
        },
        {
          "alarmMetricName": "sap_enqueue_server_locks_state",
          "monitor": true
        },
        {
          "alarmMetricName": "sap_enqueue_server_replication_state",
          "monitor": true
        }
      ],
      "logs": [
        {
          "logGroupName": "SAP_NETWEAVER_DEV_TRACE_LOGS-NetWeaver-ML4",
          "logPath": "/usr/sap/ML4/*/work/dev_w*",
          "logType": "SAP_NETWEAVER_DEV_TRACE_LOGS",
          "monitor": true,
          "encoding": "utf-8"
        }
      ]
    }
  ],
  "netWeaverPrometheusExporter": {
    "sapSid": "ML4",
    "instanceNumbers": [
      "00",
      "11"
    ],
    "prometheusPort": "9680"
  }
}
```

# Alta disponibilidade do SAP NetWeaver no Amazon EC2
<a name="component-configuration-examples-netweaver-ha"></a>

O exemplo a seguir mostra uma configuração de componente no formato JSON para alta disponibilidade do SAP NetWeaver no Amazon EC2.

```
{
  "subComponents": [
    {
      "subComponentType": "AWS::EC2::Instance",
      "alarmMetrics": [
        {
          "alarmMetricName": "ha_cluster_corosync_ring_errors",
          "monitor": true
        },
        {
          "alarmMetricName": "ha_cluster_pacemaker_fail_count",
          "monitor": true
        },
        {
          "alarmMetricName": "sap_HA_check_failover_config_state",
          "monitor": true
        },
        {
          "alarmMetricName": "sap_HA_get_failover_config_HAActive",
          "monitor": true
        },
        {
          "alarmMetricName": "sap_alerts_AbortedJobs",
          "monitor": true
        },
        {
          "alarmMetricName": "sap_alerts_Availability",
          "monitor": true
        },
        {
          "alarmMetricName": "sap_alerts_BasisSystem",
          "monitor": true
        },
        {
          "alarmMetricName": "sap_alerts_DBRequestTime",
          "monitor": true
        },
        {
          "alarmMetricName": "sap_alerts_Database",
          "monitor": true
        },
        {
          "alarmMetricName": "sap_alerts_FrontendResponseTime",
          "monitor": true
        },
        {
          "alarmMetricName": "sap_alerts_LongRunners",
          "monitor": true
        },
        {
          "alarmMetricName": "sap_alerts_QueueTime",
          "monitor": true
        },
        {
          "alarmMetricName": "sap_alerts_ResponseTime",
          "monitor": true
        },
        {
          "alarmMetricName": "sap_alerts_ResponseTimeDialog",
          "monitor": true
        },
        {
          "alarmMetricName": "sap_alerts_ResponseTimeDialogRFC",
          "monitor": true
        },
        {
          "alarmMetricName": "sap_alerts_Security",
          "monitor": true
        },
        {
          "alarmMetricName": "sap_alerts_Shortdumps",
          "monitor": true
        },
        {
          "alarmMetricName": "sap_alerts_SqlError",
          "monitor": true
        },
        {
          "alarmMetricName": "sap_alerts_System",
          "monitor": true
        },
        {
          "alarmMetricName": "sap_enqueue_server_replication_state",
          "monitor": true
        },
        {
          "alarmMetricName": "sap_start_service_processes",
          "monitor": true
        }
      ],
      "logs": [
        {
          "logGroupName": "SAP_NETWEAVER_DEV_TRACE_LOGS-NetWeaver-PR1",
          "logPath": "/usr/sap/<SID>/D*/work/dev_w*",
          "logType": "SAP_NETWEAVER_DEV_TRACE_LOGS",
          "monitor": true,
          "encoding": "utf-8"
        }
      ]
    }
  ],
  "haClusterPrometheusExporter": {
    "prometheusPort": "9664"
  },
  "netWeaverPrometheusExporter": {
    "sapSid": "PR1",
    "instanceNumbers": [
      "11",
      "12"
    ],
    "prometheusPort": "9680"
  }
}
```

# Grupos de disponibilidade Always On do SQL
<a name="component-configuration-examples-sql"></a>

O exemplo a seguir mostra uma configuração de componente no formato JSON para o SQL Always On Availability Group.

```
{
  "subComponents" : [ {
    "subComponentType" : "AWS::EC2::Instance",
    "alarmMetrics" : [ {
      "alarmMetricName" : "CPUUtilization",
      "monitor" : true
    }, {
      "alarmMetricName" : "StatusCheckFailed",
      "monitor" : true
    }, {
      "alarmMetricName" : "Processor % Processor Time",
      "monitor" : true
    }, {
      "alarmMetricName" : "Memory % Committed Bytes In Use",
      "monitor" : true
    }, {
      "alarmMetricName" : "Memory Available Mbytes",
      "monitor" : true
    }, {
      "alarmMetricName" : "Paging File % Usage",
      "monitor" : true
    }, {
      "alarmMetricName" : "System Processor Queue Length",
      "monitor" : true
    }, {
      "alarmMetricName" : "Network Interface Bytes Total/sec",
      "monitor" : true
    }, {
      "alarmMetricName" : "PhysicalDisk % Disk Time",
      "monitor" : true
    }, {
      "alarmMetricName" : "SQLServer:Buffer Manager Buffer cache hit ratio",
      "monitor" : true
    }, {
      "alarmMetricName" : "SQLServer:Buffer Manager Page life expectancy",
      "monitor" : true
    }, {
      "alarmMetricName" : "SQLServer:General Statistics Processes blocked",
      "monitor" : true
    }, {
      "alarmMetricName" : "SQLServer:General Statistics User Connections",
      "monitor" : true
    }, {
      "alarmMetricName" : "SQLServer:Locks Number of Deadlocks/sec",
      "monitor" : true
    }, {
      "alarmMetricName" : "SQLServer:SQL Statistics Batch Requests/sec",
      "monitor" : true
    }, {
      "alarmMetricName" : "SQLServer:Database Replica File Bytes Received/sec",
      "monitor" : true
    }, {
      "alarmMetricName" : "SQLServer:Database Replica Log Bytes Received/sec",
      "monitor" : true
    }, {
      "alarmMetricName" : "SQLServer:Database Replica Log remaining for undo",
      "monitor" : true
    }, {
      "alarmMetricName" : "SQLServer:Database Replica Log Send Queue",
      "monitor" : true
    }, {
      "alarmMetricName" : "SQLServer:Database Replica Mirrored Write Transaction/sec",
      "monitor" : true
    }, {
      "alarmMetricName" : "SQLServer:Database Replica Recovery Queue",
      "monitor" : true
    }, {
      "alarmMetricName" : "SQLServer:Database Replica Redo Bytes Remaining",
      "monitor" : true
    }, {
      "alarmMetricName" : "SQLServer:Database Replica Redone Bytes/sec",
      "monitor" : true
    }, {
      "alarmMetricName" : "SQLServer:Database Replica Total Log requiring undo",
      "monitor" : true
    }, {
      "alarmMetricName" : "SQLServer:Database Replica Transaction Delay",
      "monitor" : true
    } ],
    "windowsEvents" : [ {
      "logGroupName" : "WINDOWS_EVENTS-Application-<RESOURCE_GROUP_NAME>",
      "eventName" : "Application",
      "eventLevels" : [ "WARNING", "ERROR", "CRITICAL", "INFORMATION" ],
      "monitor" : true
    }, {
      "logGroupName" : "WINDOWS_EVENTS-System-<RESOURCE_GROUP_NAME>",
      "eventName" : "System",
      "eventLevels" : [ "WARNING", "ERROR", "CRITICAL" ],
      "monitor" : true
    }, {
      "logGroupName" : "WINDOWS_EVENTS-Security-<RESOURCE_GROUP_NAME>",
      "eventName" : "Security",
      "eventLevels" : [ "WARNING", "ERROR", "CRITICAL" ],
      "monitor" : true
    } ],
    "logs" : [ {
      "logGroupName" : "SQL_SERVER_ALWAYSON_AVAILABILITY_GROUP-<RESOURCE_GROUP_NAME>",
      "logPath" : "C:\\Program Files\\Microsoft SQL Server\\MSSQL**.MSSQLSERVER\\MSSQL\\Log\\ERRORLOG",
      "logType" : "SQL_SERVER",
      "monitor" : true,
      "encoding" : "utf-8"
    } ]
  }, {
    "subComponentType" : "AWS::EC2::Volume",
    "alarmMetrics" : [ {
      "alarmMetricName" : "VolumeReadBytes",
      "monitor" : true
    }, {
    "alarmMetricName" : "VolumeWriteBytes",
      "monitor" : true
    }, {
    "alarmMetricName" : "VolumeReadOps",
      "monitor" : true
    }, {
    "alarmMetricName" : "VolumeWriteOps",
      "monitor" : true
    }, {
    "alarmMetricName" : "VolumeQueueLength",
      "monitor" : true
    }, {
    "alarmMetricName" : "VolumeThroughputPercentage",
      "monitor" : true
    }, {
    "alarmMetricName" : "BurstBalance",
      "monitor" : true
    } ]
  } ]
}
```

# Instância de cluster de failover do SQL
<a name="component-configuration-examples-sql-failover-cluster"></a>

O exemplo a seguir mostra uma configuração de componente no formato JSON para instância de cluster de failover do SQL.

```
{
  "subComponents" : [ {
    "subComponentType" : "AWS::EC2::Instance",
    "alarmMetrics" : [ {
      "alarmMetricName" : "CPUUtilization",
      "monitor" : true
    }, {
      "alarmMetricName" : "StatusCheckFailed",
      "monitor" : true
    }, {
      "alarmMetricName" : "Processor % Processor Time",
      "monitor" : true
    }, {
      "alarmMetricName" : "Memory % Committed Bytes In Use",
      "monitor" : true
    }, {
      "alarmMetricName" : "Memory Available Mbytes",
      "monitor" : true
    }, {
      "alarmMetricName" : "Paging File % Usage",
      "monitor" : true
    }, {
      "alarmMetricName" : "System Processor Queue Length",
      "monitor" : true
    }, {
      "alarmMetricName" : "Network Interface Bytes Total/sec",
      "monitor" : true
    }, {
      "alarmMetricName" : "PhysicalDisk % Disk Time",
      "monitor" : true
    }, {
      "alarmMetricName" : "Bytes Received/sec",
      "monitor" : true
    }, {
      "alarmMetricName" : "Normal Messages Queue Length/sec",
      "monitor" : true
    }, {
      "alarmMetricName" : "Urgent Message Queue Length/se",
      "monitor" : true
    }, {
      "alarmMetricName" : "Reconnect Count",
      "monitor" : true
    }, {
      "alarmMetricName" : "Unacknowledged Message Queue Length/sec",
      "monitor" : true
    }, {
      "alarmMetricName" : "Messages Outstanding",
      "monitor" : true
    }, {
      "alarmMetricName" : "Messages Sent/sec",
      "monitor" : true
    }, {
      "alarmMetricName" : "Database Update Messages/sec",
      "monitor" : true
    }, {
      "alarmMetricName" : "Update Messages/sec",
      "monitor" : true
    }, {
      "alarmMetricName" : "Flushes/sec",
      "monitor" : true
    }, {
      "alarmMetricName" : "Crypto Checkpoints Saved/sec",
      "monitor" : true
    }, {
      "alarmMetricName" : "Crypto Checkpoints Restored/sec",
      "monitor" : true
    }, {
      "alarmMetricName" : "Registry Checkpoints Restored/sec",
      "monitor" : true
    }, {
      "alarmMetricName" : "Registry Checkpoints Saved/sec",
      "monitor" : true
    }, {
      "alarmMetricName" : "Cluster API Calls/sec",
      "monitor" : true
    }, {
      "alarmMetricName" : "Resource API Calls/sec",
      "monitor" : true
    }, {
      "alarmMetricName" : "Cluster Handles/sec",
      "monitor" : true
    }, {
      "alarmMetricName" : "Resource Handles/sec",
      "monitor" : true
    } ],
    "windowsEvents" : [ {
      "logGroupName" : "WINDOWS_EVENTS-Application-<RESOURCE_GROUP_NAME>",
      "eventName" : "Application",
      "eventLevels" : [ "WARNING", "ERROR", "CRITICAL"],
      "monitor" : true
    }, {
      "logGroupName" : "WINDOWS_EVENTS-System-<RESOURCE_GROUP_NAME>",
      "eventName" : "System",
      "eventLevels" : [ "WARNING", "ERROR", "CRITICAL", "INFORMATION" ],
      "monitor" : true
    }, {
      "logGroupName" : "WINDOWS_EVENTS-Security-<RESOURCE_GROUP_NAME>",
      "eventName" : "Security",
      "eventLevels" : [ "WARNING", "ERROR", "CRITICAL" ],
      "monitor" : true
    } ],
    "logs" : [ {
      "logGroupName" : "SQL_SERVER_FAILOVER_CLUSTER_INSTANCE-<RESOURCE_GROUP_NAME>",
      "logPath" : "\\\\amznfsxjmzbykwn.mydomain.aws\\SQLDB\\MSSQL**.MSSQLSERVER\\MSSQL\\Log\\ERRORLOG",
      "logType" : "SQL_SERVER",
      "monitor" : true,
      "encoding" : "utf-8"
    } ]
  }, {
    "subComponentType" : "AWS::EC2::Volume",
    "alarmMetrics" : [ {
      "alarmMetricName" : "VolumeReadBytes",
      "monitor" : true
    }, {
    "alarmMetricName" : "VolumeWriteBytes",
      "monitor" : true
    }, {
    "alarmMetricName" : "VolumeReadOps",
      "monitor" : true
    }, {
    "alarmMetricName" : "VolumeWriteOps",
      "monitor" : true
    }, {
    "alarmMetricName" : "VolumeQueueLength",
      "monitor" : true
    }, {
    "alarmMetricName" : "VolumeThroughputPercentage",
      "monitor" : true
    }, {
    "alarmMetricName" : "BurstBalance",
      "monitor" : true
    } ]
  } ]
}
```

# Criar e configurar monitoramento do CloudWatch Application Insights usando modelos do CloudFormation
<a name="appinsights-cloudformation"></a>

É possível adicionar o monitoramento do Application Insights, incluindo as principais métricas e telemetria, à aplicação, ao banco de dados e ao servidor Web, diretamente a partir de modelos do AWS CloudFormation.

Esta seção fornece exemplos de modelos do CloudFormation nos formatos JSON e YAML para ajudar você a criar e configurar o monitoramento do Application Insights.

Para exibir o recurso e a referência de propriedade do Application Insights no *Manual do usuário do CloudFormation*, consulte a [referência de tipo de recurso do Application Insights](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ApplicationInsights.html). 

**Topics**
+ [Crie uma aplicação do Application Insights para toda a pilha CloudFormation](#appinsights-cloudformation-apply-to-stack)
+ [Criar uma aplicação do Application Insights com configurações detalhadas](#appinsights-cloudformation-apply-detailed)
+ [Criar uma aplicação do Application Insights com configuração do componente modo `CUSTOM`](#appinsights-cloudformation-custom)
+ [Criar uma aplicação do Application Insights com configuração do componente modo `DEFAULT`](#appinsights-cloudformation-default)
+ [Criar uma aplicação do Application Insights com configuração do componente modo `DEFAULT_WITH_OVERWRITE`](#appinsights-cloudformation-default-with-overwrite)

## Crie uma aplicação do Application Insights para toda a pilha CloudFormation
<a name="appinsights-cloudformation-apply-to-stack"></a>

Para aplicar o modelo a seguir, é necessário criar recursos da AWS um ou mais grupos de recursos a partir dos quais criar aplicações do Application Insights para monitorar esses recursos. Para obter mais informações, consulte [Conceitos básicos do AWS Resource Groups](https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted.html).

As duas primeiras partes do modelo a seguir especificam um recurso e um grupo de recursos. A última parte do modelo cria uma aplicação Application Insights para o grupo de recursos, mas não configura a aplicação ou o monitoramento de aplicação. Para obter mais informações, consulte os detalhes do comando [CreateApplication](https://docs.aws.amazon.com/cloudwatch/latest/APIReference/API_CreateApplication.html) na *Referência de API do Amazon CloudWatch Application Insights*.

**Modelo em formato JSON**

```
{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Description": "Test Resource Group stack",
    "Resources": {
        "EC2Instance": {
            "Type": "AWS::EC2::Instance",
            "Properties": {
                "ImageId" : "ami-abcd1234efgh5678i",
                "SecurityGroupIds" : ["sg-abcd1234"]
            }
        },
        ...
        "ResourceGroup": {
            "Type": "AWS::ResourceGroups::Group",
            "Properties": {
                "Name": "my_resource_group"
            }
        },
        "AppInsightsApp": {
            "Type": "AWS::ApplicationInsights::Application",
            "Properties": {
                "ResourceGroupName": "my_resource_group"
            },
            "DependsOn" : "ResourceGroup"
        }
    }
}
```

**Modelo em formato YAML**

```
---
AWSTemplateFormatVersion: '2010-09-09'
Description: Test Resource Group stack
Resources:
  EC2Instance:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: ami-abcd1234efgh5678i
      SecurityGroupIds:
      - sg-abcd1234
  ...
  ResourceGroup:
    Type: AWS::ResourceGroups::Group
    Properties:
      Name: my_resource_group
  AppInsightsApp:
    Type: AWS::ApplicationInsights::Application
    Properties:
      ResourceGroupName: my_resource_group
    DependsOn: ResourceGroup
```

A seção de modelo a seguir aplica a configuração de monitoramento padrão à aplicação do Application Insights. Para obter mais informações, consulte os detalhes do comando [CreateApplication](https://docs.aws.amazon.com/cloudwatch/latest/APIReference/API_CreateApplication.html) na *Referência de API do Amazon CloudWatch Application Insights*.

Quando `AutoConfigurationEnabled` esta definido como `true`, todos os componentes da aplicação são configurados com as configurações de monitoramento recomendadas para o nível `DEFAULT` da aplicação. Para obter mais informações sobre essas configurações e níveis, consulte [DescribeComponentConfigurationRecommendation](https://docs.aws.amazon.com/cloudwatch/latest/APIReference/API_DescribeComponentConfigurationRecommendation.html) e [UpdateComponentConfiguration](https://docs.aws.amazon.com/cloudwatch/latest/APIReference/API_UpdateComponentConfiguration.html) na *Referência da API do Amazon CloudWatch Application Insights*. 

**Modelo em formato JSON**

```
{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Description": "Test Application Insights Application stack",
    "Resources": {
        "AppInsightsApp": {
            "Type": "AWS::ApplicationInsights::Application",
            "Properties": {
                "ResourceGroupName": "my_resource_group",
                "AutoConfigurationEnabled": true
            }
        }
    }
}
```

**Modelo em formato YAML**

```
---
AWSTemplateFormatVersion: '2010-09-09'
Description: Test Application Insights Application stack
Resources:
  AppInsightsApp:
    Type: AWS::ApplicationInsights::Application
    Properties:
      ResourceGroupName: my_resource_group
      AutoConfigurationEnabled: true
```

## Criar uma aplicação do Application Insights com configurações detalhadas
<a name="appinsights-cloudformation-apply-detailed"></a>

O modelo a seguir executa estas ações:
+ Cria uma aplicação do Application Insights com a notificação do CloudWatch Events e o OpsCenter habilitados. Para obter mais informações, consulte os detalhes do comando [CreateApplication](https://docs.aws.amazon.com/cloudwatch/latest/APIReference/API_CreateApplication.html) na *Referência de API do Amazon CloudWatch Application Insights*. 
+ Marca a aplicação com duas etiquetas, uma das quais não tem valores de etiqueta. Para obter mais informações, consulte [TagResource](https://docs.aws.amazon.com/cloudwatch/latest/APIReference/API_TagResource.html) na *Referência de API do Amazon CloudWatch Application Insights*.
+ Cria dois componentes personalizados do grupo de instâncias. Para obter mais informações, consulte [CreateComponent](https://docs.aws.amazon.com/cloudwatch/latest/APIReference/API_CreateComponent.html) na *Referência de API do Amazon CloudWatch Application Insights*.
+ Cria dois conjuntos de padrões de log. Para obter mais informações, consulte [CreateLogPattern](https://docs.aws.amazon.com/cloudwatch/latest/APIReference/API_CreateLogPattern.html) na *Referência de API do Amazon CloudWatch Application Insights*.
+ Define `AutoConfigurationEnabled` como `true`, que configura todos os componentes da aplicação com as configurações de monitoramento recomendadas para o nível `DEFAULT`. Para obter mais informações, consulte [DescribeComponentConfigurationRecommendation](https://docs.aws.amazon.com/cloudwatch/latest/APIReference/API_DescribeComponentConfigurationRecommendation.html) na *Referência de API do Amazon CloudWatch Application Insights*.

**Modelo em formato JSON **

```
{
    "Type": "AWS::ApplicationInsights::Application",
    "Properties": {
        "ResourceGroupName": "my_resource_group",
        "CWEMonitorEnabled": true,
        "OpsCenterEnabled": true,
        "OpsItemSNSTopicArn": "arn:aws:sns:us-east-1:123456789012:my_topic",
        "AutoConfigurationEnabled": true,
        "Tags": [
            {
                "Key": "key1",
                "Value": "value1"
            },
            {
                "Key": "key2",
                "Value": ""
            }
        ],
        "CustomComponents": [
            {
                "ComponentName": "test_component_1",
                "ResourceList": [
                    "arn:aws:ec2:us-east-1:123456789012:instance/i-abcd1234efgh5678i"
                ]
            },
            {
                "ComponentName": "test_component_2",
                "ResourceList": [
                    "arn:aws:ec2:us-east-1:123456789012:instance/i-abcd1234efgh5678i",
                    "arn:aws:ec2:us-east-1:123456789012:instance/i-abcd1234efgh5678i"
                ]
            }
        ],
        "LogPatternSets": [
            {
                "PatternSetName": "pattern_set_1",
                "LogPatterns": [
                    {
                        "PatternName": "deadlock_pattern",
                        "Pattern": ".*\\sDeadlocked\\sSchedulers(([^\\w].*)|($))",
                        "Rank": 1
                    }
                ]    
            },
            {
                "PatternSetName": "pattern_set_2",
                "LogPatterns": [
                    {
                        "PatternName": "error_pattern",
                        "Pattern": ".*[\\s\\[]ERROR[\\s\\]].*",
                        "Rank": 1
                    },
                    {
                        "PatternName": "warning_pattern",
                        "Pattern": ".*[\\s\\[]WARN(ING)?[\\s\\]].*",
                        "Rank": 10
                    }
                ]
            }
        ]
    }
}
```

**Modelo em formato YAML**

```
---
Type: AWS::ApplicationInsights::Application
Properties:
  ResourceGroupName: my_resource_group
  CWEMonitorEnabled: true
  OpsCenterEnabled: true
  OpsItemSNSTopicArn: arn:aws:sns:us-east-1:123456789012:my_topic
  AutoConfigurationEnabled: true
  Tags:
  - Key: key1
    Value: value1
  - Key: key2
    Value: ''
  CustomComponents:
  - ComponentName: test_component_1
    ResourceList:
    - arn:aws:ec2:us-east-1:123456789012:instance/i-abcd1234efgh5678i
  - ComponentName: test_component_2
    ResourceList:
    - arn:aws:ec2:us-east-1:123456789012:instance/i-abcd1234efgh5678i
    - arn:aws:ec2:us-east-1:123456789012:instance/i-abcd1234efgh5678i
  LogPatternSets:
  - PatternSetName: pattern_set_1
    LogPatterns:
    - PatternName: deadlock_pattern
      Pattern: ".*\\sDeadlocked\\sSchedulers(([^\\w].*)|($))"
      Rank: 1
  - PatternSetName: pattern_set_2
    LogPatterns:
    - PatternName: error_pattern
      Pattern: ".*[\\s\\[]ERROR[\\s\\]].*"
      Rank: 1
    - PatternName: warning_pattern
      Pattern: ".*[\\s\\[]WARN(ING)?[\\s\\]].*"
      Rank: 10
```

## Criar uma aplicação do Application Insights com configuração do componente modo `CUSTOM`
<a name="appinsights-cloudformation-custom"></a>

O modelo a seguir executa estas ações:
+ Cria uma aplicação do Application Insights. Para obter mais informações, consulte [CreateApplication](https://docs.aws.amazon.com/cloudwatch/latest/APIReference/API_CreateApplication.html) na *Referência de API do Amazon CloudWatch Application Insights*.
+ O componente `my_component` define `ComponentConfigurationMode` como `CUSTOM`, o que faz com que esse componente seja configurado com a configuração especificada em `CustomComponentConfiguration`. Para obter mais informações, consulte [UpdateComponentConfiguration](https://docs.aws.amazon.com/cloudwatch/latest/APIReference/API_UpdateComponentConfiguration.html) na *Referência de API do Amazon CloudWatch Application Insights*.

**Modelo em formato JSON**

```
{
    "Type": "AWS::ApplicationInsights::Application",
    "Properties": {
        "ResourceGroupName": "my_resource_group,
        "ComponentMonitoringSettings": [
            {
                "ComponentARN": "my_component",
                "Tier": "SQL_SERVER",
                "ComponentConfigurationMode": "CUSTOM",
                "CustomComponentConfiguration": {
                    "ConfigurationDetails": {
                        "AlarmMetrics": [
                            {
                                "AlarmMetricName": "StatusCheckFailed"
                            },
                            ...
                        ],
                        "Logs": [
                            {       
                                "LogGroupName": "my_log_group_1",
                                "LogPath": "C:\\LogFolder_1\\*",
                                "LogType": "DOT_NET_CORE",
                                "Encoding": "utf-8",
                                "PatternSet": "my_pattern_set_1"
                            },      
                            ...     
                        ],      
                        "WindowsEvents": [
                            {       
                                "LogGroupName": "my_windows_event_log_group_1",
                                "EventName": "Application",
                                "EventLevels": [
                                    "ERROR",
                                    "WARNING",
                                    ...     
                                ],       
                                "Encoding": "utf-8",
                                "PatternSet": "my_pattern_set_2"
                            },      
                            ...     
                        ],
                        "Alarms": [
                            {
                                "AlarmName": "my_alarm_name",
                                "Severity": "HIGH"
                            },
                            ...
                        ]
                    },
                    "SubComponentTypeConfigurations": [
                        {
                            "SubComponentType": "EC2_INSTANCE",
                            "SubComponentConfigurationDetails": {
                                "AlarmMetrics": [
                                    {
                                        "AlarmMetricName": "DiskReadOps"
                                    },
                                    ...
                                ],
                                "Logs": [
                                    {
                                        "LogGroupName": "my_log_group_2",
                                        "LogPath": "C:\\LogFolder_2\\*",
                                        "LogType": "IIS",
                                        "Encoding": "utf-8",
                                        "PatternSet": "my_pattern_set_3"
                                    },
                                    ...
                                ],
                                "processes" : [
                                    {
                                        "processName" : "my_process",
                                        "alarmMetrics" : [
                                    {
                                        "alarmMetricName" : "procstat cpu_usage",
                                        "monitor" : true
                                    }, {
                                        "alarmMetricName" : "procstat memory_rss",
                                        "monitor" : true
                                    }
                                ]
                            }
                        ],
                                "WindowsEvents": [
                                    {
                                        "LogGroupName": "my_windows_event_log_group_2",
                                        "EventName": "Application",
                                        "EventLevels": [
                                            "ERROR",
                                            "WARNING",
                                            ...
                                        ],
                                        "Encoding": "utf-8",
                                        "PatternSet": "my_pattern_set_4"
                                    },
                                    ...
                                ]
                            }
                        }   
                    ]
                }
            }
        ]
    }
}
```

**Modelo em formato YAML**

```
---
Type: AWS::ApplicationInsights::Application
Properties:
  ResourceGroupName: my_resource_group
  ComponentMonitoringSettings:
  - ComponentARN: my_component
    Tier: SQL_SERVER
    ComponentConfigurationMode: CUSTOM
    CustomComponentConfiguration:
      ConfigurationDetails:
        AlarmMetrics:
        - AlarmMetricName: StatusCheckFailed
        ...
        Logs:
        - LogGroupName: my_log_group_1
          LogPath: C:\LogFolder_1\*
          LogType: DOT_NET_CORE
          Encoding: utf-8
          PatternSet: my_pattern_set_1
        ...
        WindowsEvents:
        - LogGroupName: my_windows_event_log_group_1
          EventName: Application
          EventLevels:
          - ERROR
          - WARNING
          ...
          Encoding: utf-8
          PatternSet: my_pattern_set_2
        ...
        Alarms:
        - AlarmName: my_alarm_name
          Severity: HIGH
        ...
      SubComponentTypeConfigurations:
      - SubComponentType: EC2_INSTANCE
        SubComponentConfigurationDetails:
          AlarmMetrics:
          - AlarmMetricName: DiskReadOps
          ...
          Logs:
          - LogGroupName: my_log_group_2
            LogPath: C:\LogFolder_2\*
            LogType: IIS
            Encoding: utf-8
            PatternSet: my_pattern_set_3
          ...
          Processes:
          - ProcessName: my_process
            AlarmMetrics:
            - AlarmMetricName: procstat cpu_usage
              ...
            ...
          WindowsEvents:
          - LogGroupName: my_windows_event_log_group_2
            EventName: Application
            EventLevels:
            - ERROR
            - WARNING
            ...
            Encoding: utf-8
            PatternSet: my_pattern_set_4
          ...
```

## Criar uma aplicação do Application Insights com configuração do componente modo `DEFAULT`
<a name="appinsights-cloudformation-default"></a>

O modelo a seguir executa estas ações:
+ Cria uma aplicação do Application Insights. Para obter mais informações, consulte [CreateApplication](https://docs.aws.amazon.com/cloudwatch/latest/APIReference/API_CreateApplication.html) na *Referência de API do Amazon CloudWatch Application Insights*.
+ O componente `my_component` define `ComponentConfigurationMode` como `DEFAULT` e `Tier` como `SQL_SERVER`, o que faz com que esse componente seja configurado com as definições de configuração recomendadas pelo Application Insights para o nível `SQL_Server`. Para obter mais informações, consulte [DescribeComponentConfiguration](https://docs.aws.amazon.com/cloudwatch/latest/APIReference/API_DescribeComponentConfiguration.html) e [UpdateComponentConfiguration](https://docs.aws.amazon.com/cloudwatch/latest/APIReference/API_UpdateComponentConfiguration.html) na *Referência de API do Amazon CloudWatch Application Insights*.

**Modelo em formato JSON**

```
{
    "Type": "AWS::ApplicationInsights::Application",
    "Properties": {
        "ResourceGroupName": "my_resource_group",
        "ComponentMonitoringSettings": [
            {
                "ComponentARN": "my_component",
                "Tier": "SQL_SERVER",
                "ComponentConfigurationMode": "DEFAULT"
            }
        ]
    }
}
```

**Modelo em formato YAML**

```
---
Type: AWS::ApplicationInsights::Application
Properties:
  ResourceGroupName: my_resource_group
  ComponentMonitoringSettings:
  - ComponentARN: my_component
    Tier: SQL_SERVER
    ComponentConfigurationMode: DEFAULT
```

## Criar uma aplicação do Application Insights com configuração do componente modo `DEFAULT_WITH_OVERWRITE`
<a name="appinsights-cloudformation-default-with-overwrite"></a>

O modelo a seguir executa estas ações:
+ Cria uma aplicação do Application Insights. Para obter mais informações, consulte [CreateApplication](https://docs.aws.amazon.com/cloudwatch/latest/APIReference/API_CreateApplication.html) na *Referência de API do Amazon CloudWatch Application Insights*.
+ O componente `my_component` define `ComponentConfigurationMode` como `DEFAULT_WITH_OVERWRITE` e `tier` como `DOT_NET_CORE`, o que faz com que esse componente seja configurado com as definições de configuração recomendadas pelo Application Insights para o nível `DOT_NET_CORE`. As definições de configuração substituídas são especificadas no `DefaultOverwriteComponentConfiguration`: 
  + No nível do componente, configurações de `AlarmMetrics` são substituídas.
  + No nível do subcomponente, para os subcomponentes de tipo `EC2_Instance`, as configurações de `Logs` são substituídas.

  Para obter mais informações, consulte [UpdateComponentConfiguration](https://docs.aws.amazon.com/cloudwatch/latest/APIReference/API_UpdateComponentConfiguration.html) na *Referência de API do Amazon CloudWatch Application Insights*.

**Modelo em formato JSON**

```
{
    "Type": "AWS::ApplicationInsights::Application",
    "Properties": {
        "ResourceGroupName": "my_resource_group",
        "ComponentMonitoringSettings": [
            {
                "ComponentName": "my_component",
                "Tier": "DOT_NET_CORE",
                "ComponentConfigurationMode": "DEFAULT_WITH_OVERWRITE",
                "DefaultOverwriteComponentConfiguration": {
                    "ConfigurationDetails": {
                        "AlarmMetrics": [
                            {
                                "AlarmMetricName": "StatusCheckFailed"
                            }
                        ]
                    },
                    "SubComponentTypeConfigurations": [
                        {
                            "SubComponentType": "EC2_INSTANCE",
                            "SubComponentConfigurationDetails": {
                                "Logs": [
                                    {
                                        "LogGroupName": "my_log_group",
                                        "LogPath": "C:\\LogFolder\\*",
                                        "LogType": "IIS",
                                        "Encoding": "utf-8",
                                        "PatternSet": "my_pattern_set"
                                    }
                                ]
                            }
                        }   
                    ] 
                } 
            }
        ]
    }
}
```

**Modelo em formato YAML**

```
---
Type: AWS::ApplicationInsights::Application
Properties:
  ResourceGroupName: my_resource_group
  ComponentMonitoringSettings:
  - ComponentName: my_component
    Tier: DOT_NET_CORE
    ComponentConfigurationMode: DEFAULT_WITH_OVERWRITE
    DefaultOverwriteComponentConfiguration:
      ConfigurationDetails:
        AlarmMetrics:
        - AlarmMetricName: StatusCheckFailed
      SubComponentTypeConfigurations:
      - SubComponentType: EC2_INSTANCE
        SubComponentConfigurationDetails:
          Logs:
          - LogGroupName: my_log_group
            LogPath: C:\LogFolder\*
            LogType: IIS
            Encoding: utf-8
            PatternSet: my_pattern_set
```

# Tutorial: como configurar o monitoramento para o SAP ASE
<a name="appinsights-tutorial-sap-ase"></a>

Este tutorial demonstra como configurar o CloudWatch Application Insights para definir o monitoramento dos seus bancos de dados do SAP ASE. Você pode usar os painéis automáticos do CloudWatch Application Insights para visualizar os detalhes do problema, acelerar a solução de problemas e facilitar o tempo médio de resolução (MTTR) para seus bancos de dados do SAP ASE.

**Topics**
+ [Ambientes compatíveis](#appinsights-tutorial-sap-ase-supported-environments)
+ [Sistemas operacionais compatíveis](#appinsights-tutorial-sap-ase-supported-os)
+ [Recursos](#appinsights-tutorial-sap-ase-features)
+ [Pré-requisitos](#appinsights-tutorial-sap-ase-prerequisites)
+ [Configurar o monitoramento](#appinsights-tutorial-sap-ase-set-up)
+ [Gerenciar monitoramento](#appinsights-tutorial-sap-ase-manage)
+ [Configurar o limite de alarmes](#appinsights-tutorial-sap-hana-configure-alarm-threshold)
+ [Visualizar e solucionar problemas do SAP ASE detectados pelo Application Insights](#appinsights-tutorial-sap-ase-troubleshooting-problems)
+ [Solução de problemas do Application Insights](#appinsights-tutorial-sap-ase-troubleshooting-health-dashboard)

## Ambientes compatíveis
<a name="appinsights-tutorial-sap-ase-supported-environments"></a>

O CloudWatch Application Insights é compatível com a implantação de recursos da AWS para os sistemas e os padrões a seguir. Você fornece e instala o software de banco de dados do SAP ASE e o software de aplicação do SAP compatível.
+ **Um ou mais bancos de dados do SAP ASE em uma única instância do Amazon EC2**: SAP ASE em uma arquitetura de aumento vertical de escala de nó único.
+ **Configuração de alta disponibilidade do banco de dados do SAP ASE entre zonas de disponibilidade**: SAP ASE com alta disponibilidade configurada em duas zonas de disponibilidade usando o clustering SUSE/RHEL.

**nota**  
O CloudWatch Application Insights é compatível apenas com ambientes ASE HA com um único ID de sistema SAP (SID). Se vários SIDs do ASE HA estiverem conectados, o monitoramento será configurado apenas para o primeiro SID detectado.

## Sistemas operacionais compatíveis
<a name="appinsights-tutorial-sap-ase-supported-os"></a>

O CloudWatch Application Insights para SAP ASE é compatível com a arquitetura x86-64 nos seguintes sistemas operacionais:
+ SuSE Linux 12 SP4
+ SuSE Linux 12 SP5
+ SUSE Linux 15
+ SuSE Linux 15 SP1
+ SuSE Linux 15 SP2
+ SuSE Linux 15 SP3
+ SuSE Linux 15 SP4
+ SuSE Linux 15 SP1 para SAP
+ SuSE Linux 15 SP2 para SAP
+ SuSE Linux 15 SP3 para SAP
+ SuSE Linux 15 SP4 para SAP
+ SuSE Linux 12 SP4 para SAP
+ SuSE Linux 12 SP5 para SAP
+ RedHat Linux 7.6
+ RedHat Linux 7.7
+ RedHat Linux 7.9
+ RedHat Linux 8.1
+ RedHat Linux 8.4
+ RedHat Linux 8.6

## Recursos
<a name="appinsights-tutorial-sap-ase-features"></a>

O CloudWatch Application Insights para SAP ASE oferece os seguintes recursos:
+ Detecção automática da workload do SAP ASE 
+ Criação automática de alarmes do SAP ASE com base em um limite estático
+ Criação automática de alarmes do SAP ASE com base na detecção de anomalias 
+ Reconhecimento automático de padrões de log do SAP ASE 
+ Painel de controle de integridade do SAP ASE
+ Painel de problemas para o SAP ASE

## Pré-requisitos
<a name="appinsights-tutorial-sap-ase-prerequisites"></a>

Você deve executar os seguintes pré-requisitos para configurar um banco de dados do SAP ASE com o CloudWatch Application Insights:
+ **Parâmetros de configuração do SAP ASE**: os seguintes parâmetros de configuração devem ser ativados em seu banco de dados ASE: `"enable monitoring"`, `"sql text pipe max messages"`, `"sql text pipe active"`. Isso permite que o CloudWatch Application Insights forneça recursos completos de monitoramento para o seu banco de dados. Se essas configurações não estiverem ativadas no seu banco de dados do ASE, o Application Insights as ativará automaticamente para coletar as métricas necessárias para permitir o monitoramento.
+ **Usuário do banco de dados do SAP ASE**: o usuário do banco de dados fornecido durante a integração do Application Insights deve ter permissão para acessar o seguinte:
  + Tabelas de sistema no banco de dados mestre e nos bancos de dados de usuários (locatários)
  + Tabelas de monitoramento
+ **SAPHostCtrl**: instalar e configurar o SAPHostCtrl em sua instância do Amazon EC2.
+ **Agente do Amazon CloudWatch**: verificar que um agente preexistente do CloudWatch não esteja em execução na sua instância do Amazon EC2. Se você tiver o agente do CloudWatch instalado, certifique-se de remover do seu arquivo de configuração existente a configuração dos recursos que você está usando no CloudWatch Application Insights, para evitar conflito de mesclagem. Para obter mais informações, consulte [Criar ou editar manualmente o arquivo de configuração do atendente do CloudWatch](CloudWatch-Agent-Configuration-File-Details.md).
+ **Habilitação do AWS Systems Manager**: instale o agente do SSM em suas instâncias e habilite as instâncias habilitadas para SSM. Para obter mais informações sobre como instalar o SSM Agent, consulte [Trabalhar com o SSM Agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html) no *Guia do usuário do AWS Systems Manager*.
+ **Perfis de instância do Amazon EC2**: você deve anexar os perfis de instância do Amazon EC2 a seguir para configurar seu banco de dados.
  + Você deve anexar o perfil do `AmazonSSMManagedInstanceCore` para habilitar o Systems Manager. Para obter mais informações, consulte [exemplos de políticas baseadas em identidade do AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/auth-and-access-control-iam-identity-based-access-control.html).
  + Deve-se anexar o `CloudWatchAgentServerPolicy` para permitir que métricas e logs de instância sejam emitidos por meio do CloudWatch. Para obter mais informações, consulte [Criar perfis e usuários do IAM para uso com o agente do Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create-iam-roles-for-cloudwatch-agent.html).
  + Você deve anexar a seguinte política em linha do IAM à função de instância do Amazon EC2 para leitura da senha armazenada no AWS Secrets Manager. Para obter mais informações sobre políticas em linha, consulte [Políticas em linha](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html) no *Guia do usuário do AWS Identity and Access Management*.

------
#### [ JSON ]

****  

    ```
    {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
            {
                "Sid": "VisualEditor0",
                "Effect": "Allow",
                "Action": [
                    "secretsmanager:GetSecretValue"
                ],
                "Resource": "arn:aws:secretsmanager:*:*:secret:ApplicationInsights-*"
            }
        ]
    }
    ```

------
+ **AWS Resource Groups**: você deve criar um grupo de recursos que inclua todos os recursos da AWS associados usados pela sua pilha de aplicações para integrar suas aplicações ao CloudWatch Application Insights. Isso inclui instâncias do Amazon EC2 e volumes do Amazon EBS que executam seu banco de dados do SAP ASE. Se houver vários bancos de dados por conta, recomendamos que você crie um grupo de recursos que inclua os recursos da AWS de cada sistema de banco de dados do SAP ASE. 
+ **Permissões do IAM**: para usuários não administradores:
  +  é necessário criar uma política do AWS Identity and Access Management (IAM) que permita ao Application Insights criar uma função vinculada ao serviço e anexá-la à sua identidade do usuário. Para obter as etapas para anexar a política, consulte [Política do IAM para o CloudWatch Application Insights](appinsights-iam.md).
  + O usuário deve ter a permissão para criar um segredo no AWS Secrets Manager para armazenar as credenciais do usuário do banco de dados. Para obter mais informações, consulte [Exemplo: permissão para criar segredos](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_examples.html#auth-and-access_examples_create).

------
#### [ JSON ]

****  

    ```
    {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "secretsmanager:CreateSecret"
          ],
          "Resource": "arn:aws:secretsmanager:*:*:secret:ApplicationInsights-*"
        }
      ]
    }
    ```

------
+ **Perfil vinculado ao serviço**: o Application Insights usa os perfis vinculadas ao serviço do AWS Identity and Access Management (IAM). Ao criar a primeira aplicação com o Application Insights, é criada uma função vinculada ao serviço no console do Application Insights. Para obter mais informações, consulte [Usar funções vinculadas ao serviço do CloudWatch Application Insights](CHAP_using-service-linked-roles-appinsights.md).

## Configurar o monitoramento em seu banco de dados do SAP ASE
<a name="appinsights-tutorial-sap-ase-set-up"></a>

Use as etapas a seguir para configurar o monitoramento do seu banco de dados do SAP ASE

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

1. No painel de navegação esquerdo, em **Insights**, escolha **Application Insights**.

1. A página **Application Insights** exibe a lista de aplicações que são monitoradas pelo Application Insights e o status de monitoramento de cada aplicação. No canto superior direito, escolha **Add an application** (Adicionar uma aplicação).

1. Na página **Especificar detalhes da aplicação**, na lista suspensa em **Grupo de recursos**, selecione o grupo de recursos da AWS que contém os recursos do banco de dados do SAP ASE. Se ainda não tiver criado um grupo de recursos para a aplicação, você poderá criar um escolhendo **Create new resource group** (Criar grupo de recursos) na lista suspensa **Resource group** (Grupo de recursos). Para obter mais informações sobre grupos de recursos, consulte o [https://docs.aws.amazon.com/ARG/latest/userguide/resource-groups.html](https://docs.aws.amazon.com/ARG/latest/userguide/resource-groups.html)

1. Em **Monitor CloudWatch Events** (Monitorar CloudWatch Events), marque a caixa de seleção para integrar o monitoramento do Application Insights com o CloudWatch Events para obter insights do Amazon EBS, Amazon EC2, AWS CodeDeploy, Amazon ECS, APIs e notificações do AWS Health, Amazon RDS, Amazon S3 e AWS Step Functions.

1. Em **Integrar com o OpsCenter do AWS Systems Manager**, marque a caixa de seleção ao lado de **Gerar OpsItems do OpsCenter do AWS Systems Manager para ações corretivas** para visualizar e receber notificações quando forem detectados problemas nas aplicações selecionadas. Para rastrear as operações realizadas para resolver itens de trabalho operacionais denominados OpsItems, que são relacionados aos recursos da AWS, forneça um ARN do tópico do SNS. 

1. É possível, opcionalmente, inserir etiquetas para ajudar a identificar e organizar seus recursos. O CloudWatch Application Insights é compatível com os grupos de recursos baseados em tags e em filas do CloudFormation, exceto os grupos do Application Auto Scaling). Para obter mais informações, consulte [Tag Editor](https://docs.aws.amazon.com/ARG/latest/userguide/tag-editor.html) (Editor de etiquetas) no *Guia do usuário do AWS Resource Groups*. 

1. Escolha **Next** (Próximo) para continuar a configurar o monitoramento.

1. Na página **Revisar componentes detectados**, são listados os componentes monitorados e suas workloads automaticamente detectadas pelo CloudWatch Application Insights.
**nota**  
Os componentes que contêm uma workload detectada de alta disponibilidade do SAP ASE são compatíveis com apenas uma workload em um componente. Os componentes que contêm uma workload de nó único do SAP ASE detectada são compatíveis com várias workloads, mas você não pode adicionar ou remover workloads. Todas as workloads detectadas automaticamente serão monitoradas.

1. Escolha **Próximo**.

1. Na página **Especificar detalhes do componente**, insira o nome de usuário e a senha dos bancos de dados do SAP ASE.

1. Revise a configuração de monitoramento de aplicações e escolha **Submit** (Enviar).

1. A página de detalhes da aplicação se abrirá, e nela serápossível visualizar o **Resumo da aplicação**, a lista de **Componentes e workloads monitoradas** e de **Componentes e workloads não monitoradas**. Ao selecionar o botão de opção ao lado de um componente ou workload, também será possível visualizar o **Histórico de configuração**, os **Padrões de log** e quaisquer **Tags** criadas. Quando você envia sua configuração, sua conta implementa todas as métricas e alarmes para o sistema do SAP ASE, o que pode levar até duas horas. 

## Gerenciar o monitoramento do seu banco de dados do SAP ASE
<a name="appinsights-tutorial-sap-ase-manage"></a>

Você pode gerenciar credenciais de usuário, métricas e caminhos de log para o banco de dados do SAP ASE executando as seguintes etapas:

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

1. No painel de navegação esquerdo, em **Insights**, escolha **Application Insights**.

1. A página **Application Insights** exibe a lista de aplicações que são monitoradas pelo Application Insights e o status de monitoramento de cada aplicação. 

1. Em **Componentes monitorados**, selecione o botão ao lado do nome do componente. Em seguida, escolha **Manage monitoring** (Gerenciar o monitoramento).

1. Em **EC2 instance group logs** (Logs de grupos de instâncias do EC2), é possível atualizar o caminho de log existente, o conjunto de padrões de log e o nome do grupo de logs. Além disso, você pode adicionar até outros três **Application logs** (Logs de aplicações).

1. Em **Métricas**, você pode escolher as métricas do SAP ASE de acordo com suas necessidades. Os nomes de métricas do SAP ASE são prefixados com `asedb`. Você pode adicionar até 60 métricas por componente.

1. Em **Configuração do ASE**, insira o nome de usuário e a senha do banco de dados do SAP ASE. Esse é o nome de usuário e a senha que o agente do Amazon CloudWatch usa para se conectar ao banco de dados do SAP ASE.

1. Em **Custom alarms** (Alarmes personalizados), é possível pode adicionar alarmes extras para serem monitorados pelo CloudWatch Application Insights.

1. Revise a configuração de monitoramento de aplicações e escolha **Submit** (Enviar). Quando você envia sua configuração, sua conta atualiza todas as métricas e alarmes do sistema SAP HANA, o que pode levar até duas horas.

## Configurar o limite de alarmes
<a name="appinsights-tutorial-sap-hana-configure-alarm-threshold"></a>

O CloudWatch Application Insights cria automaticamente uma métrica do Amazon CloudWatch para o alarme observar, bem como o limite dessa métrica. O alarme passará para o estado `ALARM ` quando a métrica ultrapassar o limite de um número especificado de períodos de avaliação. Observe que essas configurações não são retidas pelo Application Insights.

Para editar um alarme de uma única métrica, execute as seguintes etapas:

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

1. No painel de navegação à esquerda, escolha **Alarms** (Alarmes), **All alarms** (Todos os alarmes).

1. Selecione o botão ao lado do alarme criado automaticamente pelo CloudWatch Application Insights. Em seguida, escolha **Actions** (Ações) e selecione **Edit** (Editar) no menu suspenso.

1. Edite os seguintes parâmetros em **Metric** (Métrica).

   1. Em **Statistic** (Estatística), escolha uma das estatísticas ou um dos percentis predefinidos ou especifique um percentil personalizado. Por exemplo, `p95.45`.

   1. Em **Period (Período)**, escolha os períodos de avaliação do alarme. Ao avaliar o alarme, todos cada período é agregado em um único ponto de dados.

1. Edite os seguintes parâmetros em **Conditions** (Condições).

   1. Escolha se a métrica deve ser maior que, menor que ou igual ao limite. 

   1. Especifique o valor do limite.

1. Em **Additional Configuration** (Configuração adicional) edite os parâmetros a seguir.

   1. Em **Datapoints to alarm** (Datapoints para alarme), especifique o número de pontos de dados, ou períodos de avaliação, que devem estar no estado `ALARM` para iniciar o alarme. Quando os dois valores correspondem, é criado um alarme que entra no estado `ALARM` se o número designado de períodos consecutivos for excedido. Para criar um alarme `m` de `n`, especifique um número menor para o primeiro valor do que para o segundo valor. Para obter mais informações sobre como a avaliação de alarmes, consulte [Avaliação de um alarme](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Alarms.html#alarm-evaluation).

   1. Para o **Missing data treatment** (Tratamento de dados ausentes), escolha como deseja que o alarme se comporte quando alguns pontos de dados estiverem ausentes. Para obter mais informações, consulte [Configurar como alarmes do CloudWatch tratam dados ausentes.](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Alarms.html#alarms-and-missing-data)

   1. Se o alarme usar um percentil como estatística monitorada, uma caixa **Percentiles with low samples (Percentis com amostras baixas)** será exibida. Escolha se deseja avaliar ou ignorar casos com taxas de amostra baixas. Se você escolher **ignore (maintain the alarm state) (ignorar (manter o estado do alarme))**, o estado do alarme atual será sempre mantido quando o tamanho da amostra for muito baixo. Para obter mais informações sobre percentis com amostras baixas, consulte [Alarmes baseados em percentil e exemplos de poucos dados](percentiles-with-low-samples.md).

1. Escolha **Próximo**.

1. Em **Notification (Notificação)**, selecione um tópico do SNS para notificar quando o alarme estiver no estado `ALARM`, `OK` ou `INSUFFICIENT_DATA`.

1. Escolha **Create alarm** (Criar alarme).

## Visualizar e solucionar problemas do SAP ASE detectados pelo Application Insights
<a name="appinsights-tutorial-sap-ase-troubleshooting-problems"></a>

Esta seção ajuda você a resolver problemas comuns de solução de problemas que ocorrem quando você configura o monitoramento do SAP ASE no Application Insights.

**Erros do servidor de backup do SAP ASE**  
Você pode identificar a mensagem de erro ao verificar o painel criado dinamicamente. O painel mostra a mensagem de erro relatada no servidor de backup do SAP ASE. Para obter mais detalhes sobre os logs do servidor de backup do SAP ASE, consulte [SAP Documentation Backup Server Error Logging](https://help.sap.com/docs/SAP_ASE/aa939a27edb34f019f71cc47b9c0fd9a/a7aeb8b1bc2b10149ccf99b95687a64c.html).

**Transações de longa duração do SAP ASE**  
Identifique a transação de longa duração e confirme se ela pode ser interrompida ou se o tempo de execução é intencional. Para obter mais detalhes, consulte [2180410 - How to display transaction log records for long running transactions? - SAP ASE](https://userapps.support.sap.com/sap/support/knowledge/en/2180410).

**Conexões de usuário do SAP ASE**  
Verifique se o banco de dados do SAP ASE está dimensionado adequadamente para a workload que você pretende executar no banco de dados. Para obter mais detalhes, consulte [Configuring User Connections](https://help.sap.com/docs/help/061ec8a5739842df9e505d8944fae8e2/9ea258fceaaa496eb80e17d3d5694ff6.html) na documentação do SAP.

**Espaço em disco do SAP ASE**  
Você pode identificar a camada do banco de dados que está causando o problema verificando o painel criado dinamicamente. O painel mostra as métricas relacionadas e os trechos de arquivos de log. É importante entender a causa do crescimento do disco e, quando aplicável, aumentar o tamanho do disco físico, o espaço em disco alocado ou ambos. Para obter mais detalhes, consulte a [Documentação do SAP sobre redimensionamento de disco](https://help.sap.com/docs/SAP_ASE/e0d4539d39c34f52ae9ef822c2060077/ab22db00bc2b1014ad3ce047bbf117d7.html) na documentação do SAP.

## Solução de problemas do Application Insights para SAP ASE
<a name="appinsights-tutorial-sap-ase-troubleshooting-health-dashboard"></a>

Esta seção fornece etapas para ajudar você a resolver erros comuns retornados pelo painel do Application Insights. 


| Erro | Erro retornado | Causa-raiz | Resolução | 
| --- | --- | --- | --- | 
|  Não é possível adicionar mais de 60 métricas de monitoramento.  |  `Component cannot have more than 60 monitored metric`  |  O limite atual de métricas é de 60 métricas monitoradas por componente.  |  Remova métricas desnecessárias para aderir ao limite.  | 
|  Nenhuma métrica ou alarme do SAP aparece após o processo de integração  |  O comando `run` no `AWS-ConfigureAWSPackage` falhou no AWS Systems Manager. A saída mostra o erro: `CT-LIBRARY error:``ct_connect(): protocol specific layer: external error: The attempt to connect to the server failed`  |  O nome de usuário e a senha podem estar incorretos.  |  Verifique se o nome de usuário e a senha são válidos e, em seguida, execute novamente o processo de integração.  | 

# Tutorial: Configurar o monitoramento para SAP HANA
<a name="appinsights-tutorial-sap-hana"></a>

Este tutorial demonstra como configurar o CloudWatch Application Insights para estabelecer o monitoramento para seus bancos de dados SAP HANA. Você pode usar os painéis automáticos do CloudWatch Application Insights para visualizar detalhes do problema, acelerar a solução de problemas e facilitar o tempo médio de resolução (MTTR) para seus bancos de dados SAP HANA.

**Topics**
+ [Ambientes compatíveis](#appinsights-tutorial-sap-hana-supported-environments)
+ [Sistemas operacionais compatíveis](#appinsights-tutorial-sap-hana-supported-os)
+ [Recursos](#appinsights-tutorial-sap-hana-features)
+ [Pré-requisitos](#appinsights-tutorial-sap-hana-prerequisites)
+ [Configurar o monitoramento](#appinsights-tutorial-sap-hana-set-up)
+ [Gerenciar monitoramento](#appinsights-tutorial-sap-hana-manage)
+ [Solução de problemas detectados](#appinsights-tutorial-sap-hana-troubleshooting)
+ [Detecção de anomalias](#appinsights-tutorial-sap-hana-troubleshooting-anomaly-detection)
+ [Solução de problemas do Application Insights](#appinsights-tutorial-sap-hana-troubleshooting-health-dashboard)

## Ambientes compatíveis
<a name="appinsights-tutorial-sap-hana-supported-environments"></a>

O CloudWatch Application Insights oferece suporte à implantação de recursos da AWS para os sistemas e padrões a seguir. Você fornece e instala o software de banco de dados SAP HANA e o software de aplicação SAP compatível.
+ **Banco de dados SAP HANA em uma única instância do Amazon EC2**: SAP HANA em uma arquitetura de aumento na escala vertical em nó único, com até 24 TB de memória.
+ **Banco de dados SAP HANA em várias instâncias do Amazon EC2**: SAP HANA em uma arquitetura de redução da escala em vários nós.
+ **Configuração de alta disponibilidade do banco de dados SAP HANA Cross-AZ**: SAP HANA com alta disponibilidade configurada em duas zonas de disponibilidade usando clustering SUSE/RHEL.

**nota**  
O CloudWatch Application Insights oferece suporte apenas a ambientes SID HANA únicos. Se houver vários SID HANA conectados, o monitoramento será configurado apenas para o primeiro SID detectado.

## Sistemas operacionais compatíveis
<a name="appinsights-tutorial-sap-hana-supported-os"></a>

O CloudWatch Application Insights para SAP HANA é compatível com a arquitetura x86-64 nos seguintes sistemas operacionais:
+ SuSE Linux 12 SP4 para SAP
+ SuSE Linux 12 SP5 para SAP
+ SUSE Linux 15
+ SuSE Linux 15 SP1
+ SuSE Linux 15 SP2
+ SuSE Linux 15 para SAP
+ SuSE Linux 15 SP1 para SAP
+ SuSE Linux 15 SP2 para SAP
+ SuSE Linux 15 SP3 para SAP
+ SuSE Linux 15 SP4 para SAP
+ SuSE Linux 15 SP5 para SAP
+ RedHat Linux 8.6 para SAP com alta disponibilidade e serviços de atualização
+ RedHat Linux 8.5 para SAP com alta disponibilidade e serviços de atualização
+ RedHat Linux 8.4 para SAP com alta disponibilidade e serviços de atualização
+ RedHat Linux 8.3 para SAP com alta disponibilidade e serviços de atualização
+ RedHat Linux 8.2 para SAP com alta disponibilidade e serviços de atualização
+ RedHat Linux 8.1 para SAP com alta disponibilidade e serviços de atualização
+ RedHat Linux 7.9 para SAP com alta disponibilidade e serviços de atualização

## Recursos
<a name="appinsights-tutorial-sap-hana-features"></a>

O CloudWatch Application Insights para SAP HANA fornece os seguintes recursos:
+ Detecção automática de workload SAP HANA 
+ Criação automática de alarmes SAP HANA com base no limite estático
+ Criação automática de alarmes SAP HANA com base na detecção de anomalias
+ Reconhecimento automático de padrões de log SAP HANA 
+ Painel de integridade para o SAP HANA
+ Painel de problemas para o SAP HANA

## Pré-requisitos
<a name="appinsights-tutorial-sap-hana-prerequisites"></a>

É necessário cumprir os seguintes pré-requisitos para configurar um banco de dados SAP HANA com o CloudWatch Application Insights:
+ **SAP HANA**: instalar um banco de dados SAP HANA 2.0 SPS05 que esteja em execução e seja acessível em uma instância do Amazon EC2.
+ **Usuário do banco de dados SAP HANA**: um usuário de banco de dados com perfis de monitoramento deve ser criado no banco de dados SYSTEM e em todos os locatários. 

**Exemplo**  
Os comandos SQL a seguir criam um usuário com funções de monitoramento.

  ```
  su - <sid>adm
  hdbsql -u SYSTEM -p <SYSTEMDB password> -d SYSTEMDB
  CREATE USER CW_HANADB_EXPORTER_USER PASSWORD <Monitoring user password> NO FORCE_FIRST_PASSWORD_CHANGE;
  CREATE ROLE CW_HANADB_EXPORTER_ROLE;
  GRANT MONITORING TO CW_HANADB_EXPORTER_ROLE;
  GRANT CW_HANADB_EXPORTER_ROLE TO CW_HANADB_EXPORTER_USER;
  ```
+ **Python 3.8**: instalar a versão Python 3.8 ou versões posteriores em seu sistema operacional. Use a versão mais recente do Python. Se o Python3 não for detectado em seu sistema operacional, a versão Python 3.6 será instalada. 

  Para obter mais informações, consulte a [installation example](#install). 
**nota**  
A instalação manual da versão Python 3.8 ou de versões posteriores é obrigatória para os sistemas operacionais SuSE Linux 15 SP4, RedHat Linux 8.6 e versões posteriores.
+ **Pip3**: instalar o programa instalador, pip3, em seu sistema operacional. Se o pip3 não for detectado em seu sistema operacional, ele será instalado.
+ **hdbclient**: o ​​CloudWatch Application Insights usa o driver Python para efetuar a conexão com o banco de dados SAP HANA. Se o cliente não tiver realizado a instalação usando python3, certifique-se de ter o arquivo hdbclient em tar na versão `2.10 or later` em `/hana/shared/SID/hdbclient/`.
+ **Agente do Amazon CloudWatch**: verificar que um agente preexistente do CloudWatch não esteja em execução na sua instância do Amazon EC2. Se você tiver o agente do CloudWatch instalado, certifique-se de remover do seu arquivo de configuração existente a configuração dos recursos que você está usando no CloudWatch Application Insights, para evitar conflito de mesclagem. Para obter mais informações, consulte [Criar ou editar manualmente o arquivo de configuração do atendente do CloudWatch](CloudWatch-Agent-Configuration-File-Details.md).
+ **Habilitação do AWS Systems Manager**: instalar o SSM Agent em suas instâncias, que deverão estar habilitadas para o SSM. Para obter informações sobre como instalar o SSM Agent, consulte [Trabalhar com o SSM Agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html) no *Guia do usuário do AWS Systems Manager*.
+ **Perfis de instância do Amazon EC2**: você deve anexar os perfis de instância do Amazon EC2 a seguir para configurar seu banco de dados.
  + Você deve anexar o perfil do `AmazonSSMManagedInstanceCore` para habilitar o Systems Manager. Para obter mais informações, consulte [exemplos de políticas baseadas em identidade do AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/auth-and-access-control-iam-identity-based-access-control.html).
  + Deve-se anexar o `CloudWatchAgentServerPolicy` para permitir que métricas e logs de instância sejam emitidos por meio do CloudWatch. Para obter mais informações, consulte [Criar perfis e usuários do IAM para uso com o agente do CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create-iam-roles-for-cloudwatch-agent.html).
  + Você deve anexar a seguinte política em linha do IAM à função de instância do Amazon EC2 para leitura da senha armazenada no AWS Secrets Manager. Para obter mais informações sobre políticas em linha, consulte [Políticas em linha](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html) no *Guia do usuário do AWS Identity and Access Management*.

------
#### [ JSON ]

****  

    ```
    {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
            {
                "Sid": "VisualEditor0",
                "Effect": "Allow",
                "Action": [
                    "secretsmanager:GetSecretValue"
                ],
                "Resource": "arn:aws:secretsmanager:*:*:secret:ApplicationInsights-*"
            }
        ]
    }
    ```

------
+ **Grupos de recursos da AWS**: você deve criar um grupo de recursos que inclua todos os recursos associados da AWS usados pela pilha de aplicações para integrar suas aplicações ao CloudWatch Application Insights. Isso inclui instâncias do Amazon EC2 e volumes do Amazon EBS que executam seu banco de dados SAP HANA. Se houver vários bancos de dados por conta, recomendamos criar um grupo de recursos que inclua os recursos da AWS para cada sistema de banco de dados SAP HANA. 
+ **Permissões do IAM**: para usuários não administradores:
  +  é necessário criar uma política do AWS Identity and Access Management (IAM) que permita ao Application Insights criar uma função vinculada ao serviço e anexá-la à sua identidade do usuário. Para obter as etapas para anexar a política, consulte [Política do IAM para o CloudWatch Application Insights](appinsights-iam.md).
  + O usuário deve ter a permissão para criar um segredo no AWS Secrets Manager para armazenar as credenciais do usuário do banco de dados. Para obter mais informações, consulte [Exemplo: permissão para criar segredos](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_examples.html#auth-and-access_examples_create).

------
#### [ JSON ]

****  

    ```
    {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "secretsmanager:CreateSecret"
          ],
          "Resource": "arn:aws:secretsmanager:*:*:secret:ApplicationInsights-*"
        }
      ]
    }
    ```

------
+ **Perfil vinculado ao serviço**: o Application Insights usa os perfis vinculadas ao serviço do AWS Identity and Access Management (IAM). Ao criar a primeira aplicação com o Application Insights, é criada uma função vinculada ao serviço no console do Application Insights. Para obter mais informações, consulte [Usar funções vinculadas ao serviço do CloudWatch Application Insights](CHAP_using-service-linked-roles-appinsights.md).

## Configurar seu banco de dados SAP HANA para monitoramento
<a name="appinsights-tutorial-sap-hana-set-up"></a>

Use as etapas a seguir para configurar o monitoramento para seu banco de dados SAP HANA

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

1. No painel de navegação esquerdo, em **Insights**, escolha **Application Insights**.

1. A página **Application Insights** exibe a lista de aplicações que são monitoradas pelo Application Insights e o status de monitoramento de cada aplicação. No canto superior direito, escolha **Add an application** (Adicionar uma aplicação).

1. Na página **Specify application details** (Especificar os detalhes da aplicação), na lista suspensa em **Resource group** (Grupo de recursos), selecione o grupo de recursos da AWS que contém seus recursos de banco de dados SAP HANA. Se ainda não tiver criado um grupo de recursos para a aplicação, você poderá criar um escolhendo **Create new resource group** (Criar grupo de recursos) na lista suspensa **Resource group** (Grupo de recursos). Para obter mais informações sobre grupos de recursos, consulte o [https://docs.aws.amazon.com/ARG/latest/userguide/resource-groups.html](https://docs.aws.amazon.com/ARG/latest/userguide/resource-groups.html)

1. Em **Monitor CloudWatch Events** (Monitorar CloudWatch Events), marque a caixa de seleção para integrar o monitoramento do Application Insights com o CloudWatch Events para obter insights do Amazon EBS, Amazon EC2, AWS CodeDeploy, Amazon ECS, APIs e notificações do AWS Health, Amazon RDS, Amazon S3 e AWS Step Functions.

1. Em **Integrar com o OpsCenter do AWS Systems Manager**, marque a caixa de seleção ao lado de **Gerar OpsItems do OpsCenter do AWS Systems Manager para ações corretivas** para visualizar e receber notificações quando forem detectados problemas nas aplicações selecionadas. Para rastrear as operações realizadas para resolver itens de trabalho operacionais denominados OpsItems, que são relacionados aos recursos da AWS, forneça um ARN do tópico do SNS. 

1. É possível, opcionalmente, inserir etiquetas para ajudar a identificar e organizar seus recursos. O CloudWatch Application Insights é compatível com os grupos de recursos baseados em tags e em filas do CloudFormation, exceto os grupos do Application Auto Scaling). Para obter mais informações, consulte [Tag Editor](https://docs.aws.amazon.com/ARG/latest/userguide/tag-editor.html) (Editor de etiquetas) no *Guia do usuário do AWS Resource Groups*. 

1. Escolha **Next** (Próximo) para continuar a configurar o monitoramento.

1. Na página **Revisar componentes detectados**, são listados os componentes monitorados e suas workloads automaticamente detectadas pelo CloudWatch Application Insights.

   1. Para adicionar workloads a um componente que contenha uma workload de nó único detectada do SAP HANA, selecione o componente e escolha **Editar componente**.
**nota**  
Os componentes que contêm uma workload detectada de vários nós do SAP HANA ou de alta disponibilidade do HANA oferecem suporte a apenas uma workload em um componente.  
![\[A página de revisão de componentes para monitoramento do console do CloudWatch Application Insights: selecione o componente a ser editado.\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/appinsights-multiapp-hana-review.png)

   1. Para adicionar uma nova workload, escolha **Adicionar nova workload**.  
![\[A seção de edição do componente do console do CloudWatch Application Insights: escolha o botão inferior esquerdo para adicionar a workload.\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/appinsights-multiapp-hana-edit.png)

   1. Quando terminar de editar workloads, escolha **Salvar alterações**.

1. Escolha **Próximo**.

1. Na página **Especificar detalhes do componente**, insira o seu nome e senha de usuário.

1. Revise a configuração de monitoramento de aplicações e escolha **Submit** (Enviar).

1. A página de detalhes da aplicação se abrirá, e nela serápossível visualizar o **Resumo da aplicação**, a lista de **Componentes e workloads monitoradas** e de **Componentes e workloads não monitoradas**. Ao selecionar o botão de opção ao lado de um componente ou workload, também será possível visualizar o **Histórico de configuração**, os **Padrões de log** e quaisquer **Tags** criadas. Quando você envia sua configuração, sua conta implanta todas as métricas e alarmes para o sistema SAP HANA, o que pode levar até duas horas. 

## Gerenciar o monitoramento de seu banco de dados SAP HANA
<a name="appinsights-tutorial-sap-hana-manage"></a>

Você pode gerenciar credenciais de usuário, métricas e caminhos de log para o banco de dados SAP HANA executando as seguintes etapas:

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

1. No painel de navegação esquerdo, em **Insights**, escolha **Application Insights**.

1. A página **Application Insights** exibe a lista de aplicações que são monitoradas pelo Application Insights e o status de monitoramento de cada aplicação. 

1. Em **Componentes monitorados**, selecione o botão ao lado do nome do componente. Em seguida, escolha **Manage monitoring** (Gerenciar o monitoramento).

1. Em **EC2 instance group logs** (Logs de grupos de instâncias do EC2), é possível atualizar o caminho de log existente, o conjunto de padrões de log e o nome do grupo de logs. Além disso, você pode adicionar até outros três **Application logs** (Logs de aplicações).

1. Em **Metrics** (Métricas), você pode escolher as métricas SAP HANA de acordo com suas necessidades. Os nomes das métricas SAP HANA são prefixados com `hanadb`. Você pode adicionar até 40 métricas por componente.

1. Em **HANA configuration** (Configuração do HANA), insira a senha e o nome de usuário para o banco de dados SAP HANA. Este é o nome de usuário e a senha que o agente do Amazon CloudWatch usa para efetuar a conexão com o banco de dados SAP HANA.

1. Em **Custom alarms** (Alarmes personalizados), é possível pode adicionar alarmes extras para serem monitorados pelo CloudWatch Application Insights.

1. Revise a configuração de monitoramento de aplicações e escolha **Submit** (Enviar). Quando você envia sua configuração, sua conta atualiza todas as métricas e alarmes do sistema SAP HANA, o que pode levar até duas horas.

## Visualizar e solucionar problemas detectados pelo CloudWatch Application Insights
<a name="appinsights-tutorial-sap-hana-troubleshooting"></a>

As seções a seguir fornecem etapas para ajudar a resolver cenários comuns de solução de problemas que ocorrem quando você configura o monitoramento para SAP HANA no Application Insights.

**Topics**
+ [Banco de dados SAP HANA atinge o limite de alocação de memória](#appinsights-tutorial-sap-hana-troubleshooting-memory)
+ [Evento de disco cheio](#appinsights-tutorial-sap-hana-troubleshooting-disk-full)
+ [O backup SAP HANA parou de ser executado](#appinsights-tutorial-sap-hana-troubleshooting-backup-stopped)

### Banco de dados SAP HANA atinge o limite de alocação de memória
<a name="appinsights-tutorial-sap-hana-troubleshooting-memory"></a>

**Descrição**  
Sua aplicação SAP que é apoiado por um banco de dados SAP HANA apresenta um funcionamento defeituoso devido à alta pressão de memória, levando à degradação da performance da aplicação.

**Resolução**  
É possível identificar a camada da aplicação que está causando o problema conferindo o painel criado dinamicamente que mostra as métricas relacionadas e os trechos do arquivo de log. No exemplo a seguir, o problema pode ocorrer devido a uma grande carga de dados no sistema SAP HANA.

![\[Alocação de memória excedida.\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/appinsights-memory-allocation-1.png)


A alocação de memória usada excede o limite de 80% do limite total de alocação de memória.

![\[Grupo de logs mostrando falta de memória.\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/appinsights-memory-allocation-2.png)


O grupo de logs mostra o esquema `BNR-DATA` e a tabela `IMDBMASTER_30003` ficou sem memória. Além disso, o grupo de logs mostra a hora exata do problema, o limite de localização global atual, a memória compartilhada, o tamanho do código e o tamanho da alocação de reserva OOM.

![\[Texto do grupo de logs.\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/appinsights-memory-allocation-3.png)


### Evento de disco cheio
<a name="appinsights-tutorial-sap-hana-troubleshooting-disk-full"></a>

**Descrição**  
Sua aplicação SAP que é apoiada por um banco de dados SAP HANA deixa de responder, o que leva a uma incapacidade de acessar o banco de dados.

**Resolução**  
É possível identificar a camada do banco de dados que está causando o problema conferindo o painel criado dinamicamente que mostra as métricas relacionadas e os trechos do arquivo de log. No exemplo a seguir, o problema pode ter sido causado por falha do administrador ao habilitar o backup automático de log, o que fez com que o diretório sap/hana/log fosse preenchido.

![\[Grupo de logs mostrando falta de memória.\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/appinsights-disk-full-1.png)


O widget do grupo de log no painel de problemas exibe o evento `DISKFULL`.

![\[Grupo de logs mostrando falta de memória.\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/appinsights-disk-full-2.png)


### O backup SAP HANA parou de ser executado
<a name="appinsights-tutorial-sap-hana-troubleshooting-backup-stopped"></a>

**Descrição**  
Sua aplicação SAP com suporte de um banco de dados SAP HANA parou de funcionar.

**Resolução**  
É possível identificar a camada do banco de dados que está causando o problema conferindo o painel criado dinamicamente que mostra as métricas relacionadas e os trechos do arquivo de log. 

O widget do grupo de log no painel de problemas exibe o evento `ACCESS DENIED`. Isso inclui informações adicionais, como o bucket do S3, a pasta do bucket do S3 e a região do bucket do S3.

![\[Grupo de logs mostrando falta de memória.\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/appinsights-backup-stopped-2.png)


## Detecção de anomalias para o SAP HANA
<a name="appinsights-tutorial-sap-hana-troubleshooting-anomaly-detection"></a>

Para métricas específicas do SAP HANA, como o número de contagens de threads, o CloudWatch aplica algoritmos estatísticos e de machine learning para definir o limite. Esses algoritmos analisam continuamente métricas do banco de dados SAP HANA, determinam linhas de base normais e apontam anomalias com intervenção mínima do usuário. Os algoritmos geram um modelo de detecção de anomalia, o que gera um intervalo de valores esperados que representam o comportamento normal da métrica.

Os algoritmos de detecção de anomalias consideram a sazonalidade e as mudanças de tendência das métricas. As mudanças de sazonalidade podem ser por hora, dia ou semana, conforme mostrado nos exemplos de uso da CPU do SAP HANA.

![\[Grupo de logs mostrando falta de memória.\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/appinsights-anomaly-detection.png)


Depois de criar um modelo, a detecção de anomalias do CloudWatch avaliará continuamente o modelo e fará ajustes para garantir que ele seja o mais preciso possível. Isso inclui treinar novamente o modelo para ajustes caso os valores da métrica evoluam ao longo do tempo ou sofram mudanças repentinas. Também inclui preditores para melhorar os modelos de métricas sazonais, pontiagudas ou esparsas.

## Solução de problemas do Application Insights para o SAP HANA
<a name="appinsights-tutorial-sap-hana-troubleshooting-health-dashboard"></a>

Esta seção fornece etapas para ajudar você a resolver erros comuns retornados pelo painel do Application Insights. 

### Não foi possível adicionar mais de 60 métricas monitoradas
<a name="cant-add-greater-sixty-metrics"></a>

A saída mostra o erro apresentado a seguir.

```
Component cannot have more than 60 monitored metrics
```

**Principal causa**: no momento, o limite de métricas é de 60 métricas monitoradas por componente.

**Resolução**: para permanecer abaixo do limite, remova as métricas que não são necessárias.

### Nenhuma métrica SAP é exibida após o processo de integração
<a name="no-sap-metrics-appear"></a>

Use as informações apresentadas a seguir para descobrir o motivo pelo qual as métricas SAP não são exibidas no painel após o processo de integração. A primeira etapa é solucionar problemas relacionados às métricas SAP que não estão sendo exibidas usando o Console de gerenciamento da AWS ou os logs do exportador de uma instância do Amazon EC2. Em seguida, faça uma análise da saída do erro para encontrar uma solução.

#### Como solucionar problemas relacionados às métricas SAP que não são exibidas após a integração
<a name="w2aac26c20c27c27b7b5"></a>

É possível usar o Console de gerenciamento da AWS ou os logs do exportador de uma instância do Amazon EC2 para solucionar problemas.

------
#### [ Console de gerenciamento da AWS ]

**Como solucionar problemas relacionados às métricas SAP que não são exibidas após a integração usando o console**

1. Abra o console AWS Systems Manager em [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. No painel de navegação à esquerda, escolha **Gerenciador de estados**.

1. Em **Associações**, verifique o status do documento `AWSEC2-ApplicationInsightsCloudwatchAgentInstallAndConfigure`. Se o status for `Failed`, em **ID da execução**, selecione o ID com falha e visualize a saída.

1. Em **Associações**, verifique o status do documento `AWS-ConfigureAWSPackage`. Se o status for `Failed`, em **ID da execução**, selecione o ID com falha e visualize a saída.

------
#### [ Exporter logs from Amazon EC2 instance ]

**Como solucionar problemas relacionados às métricas SAP que não são exibidas após a integração usando os logs do exportador**

1. Conecte-se à instância do Amazon EC2 na qual seu banco de dados SAP HANA está em execução.

1. <a name="step-find-short-name"></a>Encontre a convenção de nomenclatura mais adequada para `WORKLOAD_SHORT_NAME` usando o comando apresentado a seguir. Você usará esse nome abreviado nas duas etapas a seguir. 

   ```
   sudo systemctl | grep exporter
   ```
**nota**  
O Application Insights adiciona um sufixo, `WORKLOAD_SHORT_NAME`, ao nome do serviço, dependendo da workload que está em execução. Os nomes abreviados para nó único, múltiplos nós e implantações de alta disponibilidade do SAP HANA são `HANA_SN`, `HANA_MN` e `HANA_HA`.

1. Para verificar se há erros nos logs de serviço do gerenciador do exportador, execute o comando apresentado a seguir, substituindo `WORKLOAD_SHORT_NAME` pelo nome abreviado encontrado na [Step 2](#step-find-short-name).

   ```
   sudo journalctl -e --unit=prometheus-hanadb_exporter_manager_WORKLOAD_SHORT_NAME.service
   ```

1. Se os logs de serviço do gerenciador do exportador não mostrarem um erro, verifique se há erros nos logs do serviço do exportador ao executar o comando apresentado a seguir.

   ```
   sudo journalctl -e --unit=prometheus-hanadb_exporter_WORKLOAD_SHORT_NAME.service
   ```

------

#### Como resolver as principais causas conhecidas do problema de métricas SAP que não são exibidas após a integração
<a name="resolve-root-causes-sap-metrics"></a>

Os exemplos apresentados a seguir descrevem como resolver as principais causas conhecidas de métricas SAP que não são exibidas após a integração.
+ A saída mostra o erro apresentado a seguir.

  ```
  Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/default ...
  Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/ssm_AmazonCloudWatch-ApplicationInsights-SSMParameterForTESTCWEC2INSTANCEi0d88867f1f3e36285.tmp ...
  2023/11/30 22:25:17 Failed to merge multiple json config files.
  2023/11/30 22:25:17 Failed to merge multiple json config files.
  2023/11/30 22:25:17 Under path : /metrics/append_dimensions | Error : Different values are specified for append_dimensions
  2023/11/30 22:25:17 Under path : /metrics/metrics_collected/disk | Error : Different values are specified for disk
  2023/11/30 22:25:17 Under path : /metrics/metrics_collected/mem | Error : Different values are specified for mem
  2023/11/30 22:25:17 Configuration validation first phase failed. Agent version: 1.0. Verify the JSON input is only using features supported by this version.
  ```

  **Resolução**: o Application Insights está tentando configurar métricas semelhantes que foram configuradas previamente como parte do arquivo de configuração existente do agente do CloudWatch. Remova os arquivos existentes em `/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/` ou remova as métricas que estão causando o conflito para o arquivo de configuração existente do agente do CloudWatch.
+ A saída mostra o erro apresentado a seguir.

  ```
  Unable to find a host with system database, for more info rerun using -v
  ```

  **Resolução**: o nome de usuário, a senha ou a porta do banco de dados podem estar incorretos. Verifique se o nome de usuário, a senha e a porta são válidos e, em seguida, execute novamente o processo de integração.
+ A saída mostra o erro apresentado a seguir.

  ```
  This hdbcli installer is not compatible with your Python interpreter
  ```

  **Resolução**: atualize o instalador pip3 e o formato wheel, conforme mostrado no exemplo a seguir, para a versão Python 3.6.

  ```
  python3.6 -m pip install --upgrade pip setuptools wheel
  ```
+ A saída mostra o erro apresentado a seguir.

  ```
  Unable to install hdbcli using pip3. Please try to install it
  ```

  **Resolução**: certifique-se de ter seguido os pré-requisitos do `hdbclient` ou instale o `hdbclient` manualmente no pip3.
+ A saída mostra o erro apresentado a seguir.

  ```
  Package 'boto3' requires a different Python: 3.6.15 not in '>= 3.7'
  ```

  **Resolução**: a versão Python 3.8 ou versões posteriores são necessárias para usar essa versão do sistema operacional. Verifique os pré-requisitos da versão Python 3.8 e instale-a.
+ A saída mostra um dos erros de instalação apresentados a seguir.

  ```
  Can not execute `setup.py` since setuptools is not available in the build environment
  ```

  ou

  ```
  [SSL: CERTIFICATE_VERIFY_FAILED]
  ```

  **Resolução**: instale o Python usando comandos do SUSE Linux, conforme mostrado no exemplo a seguir. O exemplo apresentado a seguir realiza a instalação da versão mais recente do [Python 3.8](https://www.python.org/downloads/).

  ```
  wget https://www.python.org/ftp/python/3.8.<LATEST_RELEASE>/Python-3.8.<LATEST_RELEASE>.tgz
  tar xf Python-3.*
  cd Python-3.*/
  sudo zypper install make gcc-c++ gcc automake autoconf libtool
  sudo zypper install zlib-devel
  sudo zypper install libopenssl-devel libffi-devel
  ./configure --with-ensurepip=install 
  sudo make
  sudo make install
  sudo su 
  python3.8 -m pip install --upgrade pip setuptools wheel
  ```

# Tutorial: Configurar monitoramento para o SAP NetWeaver
<a name="appinsights-tutorial-sap-netweaver"></a>

Este tutorial demonstra como configurar o Amazon CloudWatch Application Insights para estabelecer o monitoramento para o SAP NetWeaver. Você pode usar os painéis automáticos do CloudWatch Application Insights para visualizar detalhes dos problemas, acelerar a solução dos problemas e reduzir o tempo médio de resolução (MTTR) para os servidores de aplicações do SAP NetWeaver.

**Topics**
+ [Ambientes compatíveis](#appinsights-tutorial-sap-netweaver-supported-environments)
+ [Sistemas operacionais compatíveis](#appinsights-tutorial-sap-netweaver-supported-os)
+ [Recursos](#appinsights-tutorial-sap-netweaver-features)
+ [Pré-requisitos](#appinsights-tutorial-sap-netweaver-prerequisites)
+ [Configurar o monitoramento](#appinsights-tutorial-sap-netweaver-set-up)
+ [Gerenciar monitoramento](#appinsights-tutorial-sap-netweaver-manage)
+ [Solução de problemas](#appinsights-tutorial-sap-netweaver-troubleshooting)
+ [Solução de problemas do Application Insights](#appinsights-tutorial-sap-netweaver-troubleshooting-health-dashboard)

## Ambientes compatíveis
<a name="appinsights-tutorial-sap-netweaver-supported-environments"></a>

O CloudWatch Application Insights é compatível com a implantação de recursos da AWS para os sistemas e os padrões a seguir. 
+ **Implantação do sistema SAP NetWeaver Standard.**
+ **Implantações distribuídas do SAP NetWeaver em várias instâncias do Amazon EC2.**
+ **Configuração da alta disponibilidade do SAP NetWeaver Cross-AZ**: SAP NetWeaver com alta disponibilidade configurado em duas zonas de disponibilidade usando clustering SUSE/RHEL.

## Sistemas operacionais compatíveis
<a name="appinsights-tutorial-sap-netweaver-supported-os"></a>

O CloudWatch Application Insights para SAP NetWeaver é compatível com os seguintes sistemas operacionais:
+ Oracle Linux 8
+ Red Hat Enterprise Linux 7.6
+ Red Hat Enterprise Linux 7.7
+ Red Hat Enterprise Linux 7.9
+ Red Hat Enterprise Linux 8.1
+ Red Hat Enterprise Linux 8,2
+ Red Hat Enterprise Linux 8.4
+ Red Hat Enterprise Linux 8,6
+ SUSE Linux Enterprise Server 15 for SAP
+ SUSE Linux Enterprise Server 15 SP1 for SAP
+ SUSE Linux Enterprise Server 15 SP2 for SAP
+ SUSE Linux Enterprise Server 15 SP3 for SAP
+ SUSE Linux Enterprise Server 15 SP4 for SAP
+ SUSE Linux Enterprise Server 12 SP4 for SAP
+ SUSE Linux Enterprise Server 12 SP5 for SAP
+ SUSE Linux Enterprise Server 15 exceto padrões de alta disponibilidade
+ SUSE Linux Enterprise Server 15 SP1 exceto padrões de alta disponibilidade
+ SUSE Linux Enterprise Server 15 SP2 exceto padrões de alta disponibilidade
+ SUSE Linux Enterprise Server 15 SP3 exceto padrões de alta disponibilidade
+ SUSE Linux Enterprise Server 15 SP4 exceto padrões de alta disponibilidade
+ SUSE Linux Enterprise Server 12 SP4 exceto padrões de alta disponibilidade
+ SUSE Linux Enterprise Server 12 SP5 exceto padrões de alta disponibilidade

## Recursos
<a name="appinsights-tutorial-sap-netweaver-features"></a>

O CloudWatch Application Insights para SAP NetWeaver 7.0x a 7.5x (incluindo a plataforma ABAP) fornece os seguintes recursos:
+ Detecção automática de workload do SAP NetWeaver 
+ Criação automática de alarmes do SAP NetWeaver baseados em limites estáticos
+ Reconhecimento automático de padrões de log do SAP NetWeaver 
+ Painel de integridade para o SAP NetWeaver
+ Painel de problemas para o SAP NetWeaver

## Pré-requisitos
<a name="appinsights-tutorial-sap-netweaver-prerequisites"></a>

É necessário atender aos seguintes pré-requisitos para configurar o SAP NetWeaver com o CloudWatch Application Insights:
+ **Habilitação do AWS Systems Manager**: instale o SSM Agent nas instâncias do Amazon EC2 e habilite-as para o SSM. Para obter informações sobre como instalar o SSM Agent, consulte [Configurando o AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-setting-up.html), no *Guia do usuário do AWS Systems Manager*.
+ **Perfis de instâncias do Amazon EC2**: você deve anexar os perfis de instâncias do Amazon EC2 a seguir para configurar o banco de dados do SAP NetWeaver.
  + Você deve anexar o perfil do `AmazonSSMManagedInstanceCore` para habilitar o Systems Manager. Para obter mais informações, consulte [exemplos de políticas baseadas em identidade do AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/auth-and-access-control-iam-identity-based-access-control.html).
  + Você deve anexar a política do `CloudWatchAgentServerPolicy` para permitir que métricas e logs de instâncias sejam emitidos por meio do CloudWatch. Para obter mais informações, consulte [Criar perfis e usuários do IAM para uso com o agente do CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create-iam-roles-for-cloudwatch-agent.html).
+ **Grupos de recursos da AWS**: você deve criar um grupo de recursos que inclua todos os recursos associados da AWS usados pela pilha de aplicações para integrar suas aplicações ao CloudWatch Application Insights. Isso inclui instâncias do Amazon EC2, volumes do EFS e volumes do Amazon EBS que executam os servidores de aplicações do SAP NetWeaver. Se houver vários sistemas SAP NetWeaver por conta, recomendamos criar um grupo de recursos que inclua os recursos da AWS para cada sistema SAP NetWeaver. Para obter mais informações sobre a criação de grupos de recursos, consulte o *[Guia do usuário de grupos de recursos e etiquetas da AWS](https://docs.aws.amazon.com/ARG/latest/userguide/resource-groups.html)*.
+ **Permissões do IAM**: para usuários que não têm acesso administrativo, você deve criar uma política do AWS Identity and Access Management (IAM) que permita ao Application Insights criar um perfil vinculado ao serviço e anexá-lo à identidade do usuário. Para obter informações sobre como criar uma política do IAM, consulte [política do IAM](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/appinsights-iam.html).
+ **Perfil vinculado ao serviço**: o Application Insights usa os perfis vinculadas ao serviço do AWS Identity and Access Management (IAM). Ao criar a primeira aplicação com o Application Insights, é criada uma função vinculada ao serviço no console do Application Insights. Para ter mais informações, consulte [Usar funções vinculadas ao serviço do CloudWatch Application Insights](CHAP_using-service-linked-roles-appinsights.md).
+ **Agente do Amazon CloudWatch**: o Application Insights instala e configura o agente do CloudWatch. Se você tiver o agente CloudWatch instalado, o Application Insights manterá sua configuração. Para evitar um conflito de mesclagem, remova a configuração de recursos que você deseja usar no Application Insights do arquivo de configuração do agente do CloudWatch existente. Para ter mais informações, consulte [Criar ou editar manualmente o arquivo de configuração do atendente do CloudWatch](CloudWatch-Agent-Configuration-File-Details.md).

## Configurar servidores de aplicações do SAP NetWeaver para monitoramento
<a name="appinsights-tutorial-sap-netweaver-set-up"></a>

Use as etapas a seguir para configurar o monitoramento dos servidores de aplicações do SAP NetWeaver.

**Para configurar o monitoramento**

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

1. No painel de navegação esquerdo, em **Insights**, escolha **Application Insights** (Insights de aplicações).

1. A página **Application Insights** exibe a lista de aplicações que são monitoradas pelo Application Insights e o status de monitoramento de cada aplicação. No canto superior direito, escolha **Add an application** (Adicionar uma aplicação).

1. Na página **Specify application details** (Especificar os detalhes da aplicação), na lista suspensa em **Resource group** (Grupo de recursos), selecione o grupo de recursos da AWS que você criou e que contém seus recursos de banco de dados do SAP NetWeaver. Se ainda não criou um grupo de recursos para a aplicação, você poderá criar um escolhendo **Create new resource group** (Criar novo grupo de recursos) na lista suspensa **Resource group** (Grupo de recursos). 

1. Em **Automatic monitoring of new resources** (Monitoramento automático de novos recursos), marque a caixa de seleção para permitir que o Application Insights monitore automaticamente os recursos que forem adicionados ao grupo de recursos da aplicação após sua integração. 

1. Em **Monitor EventBridge Events** (Monitorar eventos do EventBridge), marque a caixa de seleção para integrar o monitoramento do Application Insights com o CloudWatch Events para obter insights do Amazon EBS, do Amazon EC2, do AWS CodeDeploy, do Amazon ECS, das APIs e notificações do AWS Health, do Amazon RDS, do Amazon S3 e do AWS Step Functions.

1. Em **Integrar com o OpsCenter do AWS Systems Manager**, marque a caixa de seleção ao lado de **Gerar OpsItems do OpsCenter do AWS Systems Manager para ações corretivas** para visualizar e receber notificações quando forem detectados problemas nas aplicações selecionadas. Para rastrear as operações realizadas para resolver itens de trabalho operacionais denominados [OpsItems](https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-getting-started-sns.html), que são relacionados aos recursos da AWS, forneça um ARN do tópico do SNS. 

1. É possível, opcionalmente, inserir etiquetas para ajudar a identificar e organizar seus recursos. O CloudWatch Application Insights é compatível com os grupos de recursos baseados em tags e em filas do CloudFormation, exceto os grupos do Application Auto Scaling). Para obter mais informações, consulte [Tag Editor](https://docs.aws.amazon.com/ARG/latest/userguide/tag-editor.html) (Editor de etiquetas) no *Guia do usuário do AWS Resource Groups*. 

1. Para revisar os componentes detectados, escolha **Avançar**.

1. Na página **Revisar componentes detectados**, são listados os componentes monitorados e suas workloads automaticamente detectadas pelo CloudWatch Application Insights. 

   1. Para editar o tipo e o nome da workload, escolha **Editar componente**.
**nota**  
Os componentes que contêm uma workload do NetWeaver Distributed ou NetWeaver High Availability detectada oferecem suporte a apenas uma workload em um componente.  
![\[A análise detectou a seção de componentes do console do CloudWatch Application Insights: lista de componentes que podem ser editados.\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/appinsights-multiapp-netweaver.png)

1. Escolha **Próximo**.

1. Na página **Specify Details** (Especificar detalhes), escolha **Next ** (Avançar).

1. Revise a configuração de monitoramento de aplicações e escolha **Enviar**.

1. A página de detalhes da aplicação se abrirá, e nela será possível visualizar o **Resumo da aplicação**, o **Painel**, os **Components** e as **Workloads**. Você também poderá visualizar o **Configuration history** (Histórico de configuração), os **Log patterns** (Padrões de log) e as **Tags** (Etiquetas) criadas. Depois de enviar sua aplicação, o CloudWatch Application Insights implanta todas as métricas e alarmes para o sistema SAP NetWeaver, o que pode levar até uma hora.

## Gerenciar o monitoramento dos servidores de aplicações do SAP NetWeaver
<a name="appinsights-tutorial-sap-netweaver-manage"></a>

Use as etapas a seguir para gerenciar o monitoramento dos servidores de aplicações do SAP NetWeaver.

**Para gerenciar o monitoramento**

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

1. No painel de navegação esquerdo, em **Insights**, escolha **Application Insights** (Insights de aplicações).

1. Escolha a guia **List view** (Visualização em lista).

1. A página **Application Insights** exibe a lista de aplicações que são monitoradas pelo Application Insights e o status de monitoramento de cada aplicação.

1. Selecione a aplicação.

1. Escolha a guia **Componets** (Componentes).

1. Em **Componentes monitorados**, selecione o botão ao lado do nome do componente. Depois, selecione **Manage monitoring** (Gerenciar monitoramento).

1. Em **Instance logs** (Logs de instâncias), é possível atualizar o caminho de log existente, o conjunto de padrões de log e o nome do grupo de logs. Além disso, você pode adicionar até outros três **Application logs** (Logs de aplicações).

1. Em **Metrics** (Métricas), você pode escolher as métricas do SAP NetWeaver de acordo com suas necessidades. Os nomes das métricas do SAP NetWeaver são prefixados com `sap`. Você pode adicionar até 40 métricas por componente.

1. Em **Custom alarms** (Alarmes personalizados), é possível pode adicionar alarmes extras para serem monitorados pelo CloudWatch Application Insights.

1. Revise a configuração de monitoramento da aplicação e escolha **Save** (Salvar). Quando você envia a configuração, sua conta atualiza todas as métricas e alarmes do sistema SAP NetWeaver, o que pode levar até duas horas.

## Visualizar e solucionar problemas do SAP NetWeaver detectados pelo CloudWatch Application Insights
<a name="appinsights-tutorial-sap-netweaver-troubleshooting"></a>

As seções a seguir fornecem as etapas para ajudar você a resolver cenários comuns de solução de problemas que ocorrem quando você configura o monitoramento para o SAP NetWeaver no Application Insights.

**Topics**
+ [Problemas de conectividade com o banco de dados do SAP NetWeaver](#appinsights-tutorial-sap-netweaver-troubleshooting-database)
+ [Problemas de disponibilidade de aplicações do SAP NetWeaver](#appinsights-tutorial-sap-netweaver-troubleshooting-availability)

### Problemas de conectividade com o banco de dados do SAP NetWeaver
<a name="appinsights-tutorial-sap-netweaver-troubleshooting-database"></a>

**Descrição**  
A aplicação do SAP NetWeaver enfrenta problemas de conectividade com o banco de dados.

**Causa**  
Você pode identificar o problema de conectividade acessando o console do CloudWatch Application Insights e verificando o painel de problemas do SAP NetWeaver Application Insights. Selecione o link em **Problem summary** (Resumo do problema) para ver o problema específico.

![\[Painel de problemas detectados do CloudWatch Application Insights com mais informações na seção Detected problems (Problemas detectados) na coluna Problem summary (Resumo do problema).\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/appinsights-nw-database-connectivity-1.png)


No exemplo a seguir, em **Problem summary** (Resumo do problema), SAP: Availability (SAP: disponibilidade) é o problema.

![\[Página de resumo dos problema do CloudWatch Application Insights na seção Problem summary (Resumo do problema).\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/appinsights-nw-database-connectivity-2.png)


Imediatamente após o **Problem summary** (Resumo do problema), a seção **Insight** fornece mais contexto sobre o erro e onde você pode obter mais informações sobre suas causas.

![\[Insight sobre os problemas do CloudWatch Application Insights com informações adicionais sobre a causa do erro.\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/appinsights-nw-database-connectivity-3.png)


No mesmo painel de problemas, você pode visualizar os logs e as métricas relacionados que a detecção de problemas agrupou para ajudar você a isolar a causa do erro. A métrica `sap_alerts_Availability` monitora a disponibilidade do sistema SAP NetWeaver ao longo do tempo. Você pode usar o rastreamento histórico para correlacionar quando a métrica iniciou um estado de erro ou violou o limite de alarme. No exemplo a seguir, há um problema de disponibilidade com o sistema SAP NetWeaver. O exemplo mostra dois alarmes porque há duas instâncias do servidor de aplicações SAP e um alarme foi criado para cada instância.

![\[Métrica de disponibilidade do SAP para o CloudWatch Application Insights com informações adicionais sobre o histórico de quando o erro ocorreu.\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/appinsights-nw-database-connectivity-4.png)


Para obter mais informações sobre cada alarme, passe o mouse sobre o nome da métrica `sap_alerts_Availability`.

![\[Métrica de disponibilidade do SAP para o CloudWatch Application Insights com detalhes adicionais sobre quando o erro ocorreu.\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/appinsights-nw-database-connectivity-5.png)


No exemplo a seguir, a métrica `sap_alerts_Database` mostra que o nível de banco de dados tem um problema ou uma falha. Esse alarme indica que o SAP NetWeaver teve problemas para se conectar ou se comunicar com seu banco de dados. 

![\[Métrica de banco de dados do SAP para o CloudWatch Application Insights com histórico adicional de quando o erro ocorreu.\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/appinsights-nw-database-connectivity-6.png)


Como o banco de dados é um recurso essencial do SAP NetWeaver, você pode receber muitos alarmes relacionados quando o banco de dados sofre um problema ou uma falha. No exemplo a seguir, as métricas `sap_alerts_FrontendResponseTime` e `sap_alerts_LongRunners` são iniciadas porque o banco de dados não está disponível.

![\[Métricas adicionais do banco de dados SAP para o CloudWatch Application Insights criadas devido a uma falha no banco de dados.\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/appinsights-nw-database-connectivity-7.png)


**Resolução**  
O Application Insights monitora de hora em hora o problema detectado. Se não houver novas entradas de log relacionadas nos arquivos de log do SAP NetWeaver, as entradas de log mais antigas serão tratadas como resolvidas. Você deve corrigir todas as condições de erro relacionadas aos alarmes do CloudWatch. Depois que as condições de erro forem resolvidas, o alarme será resolvido quando os alarmes e os logs forem recuperados. Quando todos os erros e alarmes de log do CloudWatch forem resolvidos, o Application Insights interromperá a detecção de erros e o problema será resolvido automaticamente em uma hora. Recomendamos que você resolva todas as condições de erro e alarmes do log para ter os problemas mais recentes no painel de problemas.

No exemplo a seguir, o problema de disponibilidade do SAP está resolvido.

![\[Painel de problemas do CloudWatch Application Insights com o problema de disponibilidade do SAP resolvido.\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/appinsights-nw-database-connectivity-resolved.png)


### Problemas de disponibilidade de aplicações do SAP NetWeaver
<a name="appinsights-tutorial-sap-netweaver-troubleshooting-availability"></a>

**Descrição**  
A replicação em fila de alta disponibilidade do SAP NetWeaver parou de funcionar.

**Causa**  
Você pode identificar o problema de conectividade acessando o console do CloudWatch Application Insights e verificando o painel de problemas do SAP NetWeaver Application Insights. Selecione o link em **Problem summary** (Resumo do problema) para ver o problema específico.

![\[Painel de problemas no CloudWatch Application Insights com mais informações em Problem summary (Resumo do problema).\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/appinsights-nw-app-availability-problem-dashboard.png)


No exemplo a seguir, em **Problem summary** (Resumo do problema), a replicação em fila de alta disponibilidade é o problema.

![\[Resumo do problema no CloudWatch Application Insights com o erro SAP Availability: Enqueue replication (Disponibilidade do SAP: erro de replicação em fila) listado.\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/appinsights-nw-app-availability-1.png)


Imediatamente após o **Problem summary** (Resumo do problema), a seção **Insight** fornece mais contexto sobre o erro e onde você pode obter mais informações sobre suas causas.

![\[Insight sobre os problemas do CloudWatch Application Insights com informações adicionais sobre a causa do erro.\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/appinsights-nw-app-availability-2.png)


O exemplo a seguir mostra o painel de problemas onde você visualiza os logs e as métricas que são agrupados para ajudar você a isolar as causas de erro. A métrica `sap_enqueue_server_replication_state` rastreia o valor ao longo do tempo. Você pode usar o rastreamento histórico para correlacionar quando a métrica iniciou um estado de erro ou violou o limite de alarme.

![\[Métrica de estado da replicação do servidor em fila no painel de problemas com informações adicionais sobre quando o erro ocorreu.\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/appinsights-nw-app-availability-3.png)


No exemplo a seguir, a métrica `ha_cluster_pacemaker_fail_count` mostra que o cluster de marcapassos de alta disponibilidade sofreu uma falha de recurso. Os recursos específicos de marcapasso que tiveram uma contagem de falhas maior ou igual a um são identificados no painel do componente.

![\[Métrica de disponibilidade da aplicação para o recurso CloudWatch Application Insights para recurso de marcapasso com contagem de falhas maior ou igual a um.\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/appinsights-nw-app-availability-4.png)


O exemplo a seguir mostra a métrica `sap_alerts_Shortdumps`, que indica que a performance da aplicação SAP caiu quando o problema foi detectado.

![\[Métrica de shortdumps de alerta de disponibilidade da aplicação para o CloudWatch Application Insights.\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/appinsights-nw-app-availability-5.png)


#### Logs
<a name="ai-sap-netweaver-logs"></a>

As entradas de log são úteis para se entender melhor os problemas que ocorreram no nível do SAP NetWeaver quando o problema foi detectado. O widget de grupo de logs no painel de problemas exibe a hora específica do problema.

![\[Entradas de log do CloudWatch Application Insights mostrando a hora exata em que os problemas ocorreram.\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/appinsights-nw-app-availability-7.png)


Para ver informações detalhadas sobre os logs, selecione os três pontos verticais no canto superior direito e selecione **View in CloudWatch Logs Insights** (Exibir no CloudWatch Logs Insights).

![\[Detalhes do CloudWatch Application Insights com visualização no CloudWatch Logs Insights.\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/appinsights-nw-app-availability-8.png)


Use as etapas a seguir para obter mais informações sobre as métricas e os alarmes exibidos no painel de problemas.

**Para obter mais informações sobre métricas e alarmes**

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

1. No painel de navegação esquerdo, em **Insights**, selecione **Application Insights** (Insights sobre aplicações). Depois, escolha a guia **List view** (Visualização em lista) e selecione a aplicação.

1. Selecione a guia **Components** (Componentes). Depois, selecione o componente do SAP NetWeaver sobre o qual você deseja obter mais informações.

   O exemplo a seguir mostra a seção **HA Metrics** (Métricas de HA) com a métrica `ha_cluster_pacemaker_fail_count` que foi exibida no painel de problemas.  
![\[Métricas de HA para o CloudWatch Application Insights mostrando a contagem de falhas dos recursos marcapassos.\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/appinsights-nw-app-availability-9.png)

**Resolução**  
O Application Insights monitora de hora em hora o problema detectado. Se não houver novas entradas de log relacionadas nos arquivos de log do SAP NetWeaver, as entradas de log mais antigas serão tratadas como resolvidas. Você deve corrigir todas as condições de erro relacionadas a esse problema.

Para o alarme `sap_alerts_Shortdumps`, você deve resolver o alerta no sistema SAP NetWeaver usando o código da transação `RZ20 → R3Abap → Shortdumps` para navegar até o alerta do CCMS. Para obter mais informações sobre os alertas do CCMS, consulte o [site da SAP](https://help.sap.com/docs/SAP_NETWEAVER_701/6f45651d6c4b1014a50f9ef0fc8df39d/408dc4a7c415437a9b91d2ef6caa9d7d.html). Resolva todos os alertas do CCMS na árvore de shortdumps. Depois que todos os alertas forem resolvidos no sistema SAP NetWeaver, o CloudWatch não relatará mais a métrica em estado de alarme.

Quando todos os erros e alarmes de log do CloudWatch forem resolvidos, o Application Insights interromperá a detecção de erros e o problema será resolvido automaticamente em uma hora. Recomendamos que você resolva todas as condições de erro e alarmes do log para ter os problemas mais recentes no painel de problemas. No exemplo a seguir, em Problem summary (Resumo do problema), o problema de replicação em fila de alta disponibilidade foi resolvido.

![\[Painel de problemas do CloudWatch Application Insights mostrando o problema SAP Availability: Enqueue Replication (Disponibilidade do SAP: replicação em fila) com status de resolvido.\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/images/appinsights-nw-app-availability-problem-resolved.png)


## Solução de problemas do Application Insights para o SAP NetWeaver
<a name="appinsights-tutorial-sap-netweaver-troubleshooting-health-dashboard"></a>

Esta seção fornece etapas para ajudar você a resolver erros comuns retornados pelo painel do Application Insights.

### Não é possível adicionar mais de 60 métricas de monitoramento
<a name="ai-unable-add-monitor-metrics"></a>

**Erro retornado**: `Component cannot have more than 60 monitored metrics.`

**Causa raiz**: `The current metric limit is 60 monitor metrics per component.`

**Resolução**: remova métricas que não são necessárias para aderir ao limite.

### As métricas do SAP não são exibidas no painel após o processo de integração
<a name="sap-metrics-not-on-dashboard"></a>

**Causa raiz**: o painel de componentes usa um período de métrica de cinco minutos para agregar os pontos de dados.

**Resolução**: todas as métricas devem aparecer no painel após cinco minutos.

### As métricas e os alarmes do SAP não são no painel
<a name="sap-metrics-and-alarms-not-on-dashboard"></a>

Use as etapas a seguir para identificar por que as métricas e os alarmes do SAP não são exibidos no painel após o processo de integração. 

**Para identificar o problema com as métricas e os alarmes**

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

1. No painel de navegação esquerdo, em **Insights**, selecione **Application Insights** (Insights sobre aplicações). Depois, escolha a guia **List view** (Visualização em lista) e selecione a aplicação.

1. Escolha a guia **Configuration** (Configuração).

1. Se você encontrar pontos de dados com métricas ausentes, verifique se há erros relacionados a `prometheus-sap_host_exporter`.

1. Se você não encontrar nenhum erro na etapa anterior, [conecte-se à sua instância do Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html). Para implantações de alta disponibilidade, conecte-se à instância primária do cluster do Amazon EC2.

1. Na instância, verifique se o exportador está sendo executado usando o comando a seguir. A porta padrão é a `9680`. Se você estiver usando uma porta diferente, substitua `9680` pela porta que você está usando.

   ```
   curl localhost:9680/metrics
   ```

   Se nenhum dado for retornado, houve falha na inicialização do exportador.

1. Para encontrar a convenção de nomenclatura correta a ser usada para `WORKLOAD_SHORT_NAME` nas próximas duas etapas, execute o comando a seguir.
**nota**  
O Application Insights adiciona um sufixo, `WORKLOAD_SHORT_NAME`, ao nome do serviço, dependendo da workload em execução. Os nomes abreviados das implantações distribuídas, padrão e de alta disponibilidade do NetWeaver são `SAP_NWD`, `SAP_NWS` e `SAP_NWH`.

   ```
   sudo systemctl | grep exporter
   ```

1. Para verificar se há erros nos logs do serviço exportador, execute o seguinte comando:

   ```
   sudo journalctl -e --unit=prometheus-sap_host_exporter_WORKLOAD_SHORT_NAME.service
   ```

1. Para verificar erros nos logs de serviço do gerenciador de exportação, execute o seguinte comando:

   ```
   sudo journalctl -e --unit=prometheus-sap_host_exporter_manager_WORKLOAD_SHORT_NAME.service
   ```
**nota**  
Esse serviço deve estar em funcionamento todo o tempo.

   Se esse comando não retornar nenhum erro, siga para a próxima etapa.

1. Para iniciar o exportador manualmente, execute o comando a seguir. Depois, verifique a saída do exportador.

   ```
   sudo /opt/aws/sap_host_exporter/sap_host_exporter
   ```

   Você pode sair do processo de exportação depois que verificar se houve erros.

**Causa raiz**: há várias causas possíveis para esse problema. Uma causa comum é o exportador não conseguir se conectar a uma das instâncias do servidor de aplicações.

**Resolução**

Use as etapas a seguir para conectar o exportador às instâncias do servidor de aplicações. Você verificará que a instância da aplicação SAP está em execução e usará o SAPControl para se conectar à instância.

**Para conectar o exportador às instâncias do servidor de aplicações**

1. Em sua instância do Amazon EC2, execute o comando a seguir para verificar se a aplicação SAP está sendo executada. 

   ```
   sapcontrol -nr <App_InstNo> -function GetProcessList
   ```

1. Você deve estabelecer uma conexão funcional do SAPControl. Se a conexão do SAPControl não funcionar, encontre a causa raiz do problema na instância relevante da aplicação SAP.

1. Para iniciar manualmente o exportador depois de corrigir o problema de conexão do SAP Control, execute o seguinte comando:

   ```
   sudo systemctl start prometheus-sap_host_exporter.service
   ```

1. Se você não conseguir resolver o problema de conexão do SAP Control, execute o procedimento a seguir como uma correção temporária. 

   1. Abra o [console de AWS Systems Manager](https://console.aws.amazon.com/systems-manager).

   1. No painel de navegação esquerdo, escolha **Automation** (Automação).

   1. Em **Associations** (Associações), procure a associação do sistema SAP NetWeaver.

      ```
      Association Name: Equal: AWS-ApplicationInsights-SSMSAPHostExporterAssociationForCUSTOMSAPNW<SID>-1
      ```

   1. Selecione o **Association id** (ID da associação).

   1. Escolha a guia **Parameters** (Parâmetros) e remova o número do servidor de aplicações de **AdditionalArguments**.

   1. Escolha **Apply association now** (Aplicar associação agora).
**nota**  
Essa é uma solução temporária. Se forem feitas atualizações nas configurações de monitoramento do componente, a instância será adicionada novamente.

# Visualizar e solucionar problemas detectados pelo Amazon CloudWatch Application Insights
<a name="appinsights-troubleshooting"></a>

Os tópicos desta seção fornecem informações detalhadas sobre os problemas e insights detectados que são exibidos pelo Application Insights. Eles também fornecem sugestões de resoluções para problemas detectados com sua conta ou sua configuração.

**Topics**
+ [Visão geral do console do CloudWatch](#appinsights-troubleshooting-overview)
+ [Página de resumo do problema do Application Insights](#appinsights-troubleshooting-problem-summary)
+ [Falhas de conflito de mesclagem do agente do CloudWatch](#cwagent-merge-conflicts)
+ [Alto uso da CPU devido ao processamento de logs de agentes do CloudWatch](#cwagent-high-cpu-usage)
+ [Os alarmes não são criados](#alarms-not-created)
+ [Feedback](#appinsights-troubleshooting-feedback)
+ [Erros de configuração](#appinsights-configuration-errors)

## Visão geral do console do CloudWatch
<a name="appinsights-troubleshooting-overview"></a>

Uma visão geral dos problemas que impactam suas aplicações monitoradas podem ser encontradas no painel do CloudWatch Application Insights na página de visão geral do [console do CloudWatch.](https://console.aws.amazon.com/cloudwatch)

O painel de visão geral do CloudWatch Application Insights exibe o seguinte:
+ A gravidade dos problemas detectados: Alta/Média/Baixa
+ Um breve resumo do problema
+ A fonte do problema
+ A hora em que o problema começou
+ O status de resolução do problema
+ O grupo de recursos afetado

Para visualizar os detalhes de um problema específico, em **Problem Summary ** (Resumo do problema), selecione a descrição do problema. Um painel detalhado exibe informações sobre o problema e as anomalias de métrica relacionadas, além de trechos dos erros de log. É possível fornecer feedback sobre a relevância do insight selecionando se ele é útil.

Se um recurso novo que não esteja configurado for detectado, a descrição do resumo do problema direciona você ao assistente **Edit configuration** (Editar configuração) para configurar o novo recurso. Se for necessário, você poderá visualizar ou editar a configuração do Grupo de recursos selecionando **View/edit configuration** (Visualizar/editar configuração) no canto superior direito do painel detalhado.

Para retornar à visão geral, selecione **Back to overview** (Voltar à visão geral), que está ao lado do cabeçalho do painel detalhado do CloudWatch Application Insights.

## Página de resumo do problema do Application Insights
<a name="appinsights-troubleshooting-problem-summary"></a>

**Página de resumo do problema do Application Insights**  
O CloudWatch Application Insights fornece as seguintes sobre os problemas detectados na página de resumo do problema:
+ Um breve resumo do problema
+ A data e a hora de início do problema
+ A gravidade do problema: High/Medium/Low (Alta/média/baixa)
+ O status do problema detectado: In‐progress/Resolved (Em andamento/resolvido)
+ Insights: insights gerados automaticamente sobre o problema detectado e a possível causa
+ Feedback sobre os insights: o feedback que você forneceu sobre a utilidade dos insights gerados pelo CloudWatch Application Insights
+ Observações relacionadas: uma visão detalhada das anomalias da métrica e dos trechos do erro de logs relevantes relacionados ao problema em vários componentes da aplicação

## Falhas de conflito de mesclagem do agente do CloudWatch
<a name="cwagent-merge-conflicts"></a>

O CloudWatch Application Insights instala e configura o agente do CloudWatch em instâncias do cliente. Isso inclui a criação de um arquivo de configuração do agente do CloudWatch com configurações para métricas ou logs. Um conflito de mesclagem poderá ocorrer se a instância do cliente já tiver um arquivo de configuração do agente do CloudWatch com configurações diferentes definidas para as mesmas métricas ou logs. Para resolver o conflito da mesclagem, use as etapas a seguir:

1. Identifique os arquivos de configuração do agente do CloudWatch em seu sistema. Para obter mais informações sobre localizações de arquivos, consulte [Arquivos e locais do atendente do CloudWatch](troubleshooting-CloudWatch-Agent.md#CloudWatch-Agent-files-and-locations).

1. Remova as configuração de recursos que você deseja usar no Application Insights do arquivo de configuração do agente do CloudWatch existente. Se você deseja usar somente configurações do Application Insights, exclua os arquivos de configuração do agente do CloudWatch existentes.

## Alto uso da CPU devido ao processamento de logs de agentes do CloudWatch
<a name="cwagent-high-cpu-usage"></a>

O CloudWatch Application Insights instala e configura o agente do CloudWatch em instâncias do cliente. Se uma instância do Amazon EC2 estiver configurada com caminhos de log contendo grandes quantidades de dados de log, a instância poderá experimentar aumentos no uso da CPU enquanto o agente do CloudWatch processa esses logs. Para reduzir o uso da CPU, remova o caminho do log na [configuração do componente de instância do Amazon EC2](component-configuration-examples-ec2.md).

## Os alarmes não são criados
<a name="alarms-not-created"></a>

Para algumas métricas, o Application Insights prevê o limite de alarme com base nos pontos de dados anteriores da métrica. Para habilitar essa previsão, os critérios a seguir devem ser atendidos.
+ **Pontos de dados recentes**: deve haver no mínimo 100 pontos de dados das últimas 24 horas. Os pontos de dados não precisam ser contínuos e podem estar espalhados por todo o período de 24 horas. 
+ **Dados históricos**: deve haver um mínimo de 100 pontos de dados abrangendo o período de 15 dias antes da data atual até 1 dia antes da data atual. Os pontos de dados não precisam ser contínuos e podem estar espalhados por todo o período de 15 dias. 

**nota**  
Para algumas métricas, o Application Insights atrasa a criação de alarmes até que as condições anteriores sejam atendidas. Nesse caso, você obtém um evento do histórico de configuração informando que a métrica não tem pontos de dados suficientes para estabelecer o limite do alarme.

## Feedback
<a name="appinsights-troubleshooting-feedback"></a>

**Feedback**

É possível fornecer feedback sobre os insights gerados automaticamente sobre problemas detectados designando-os como úteis ou não úteis. Seu feedback sobre os insights com o diagnóstico da aplicação (anomalias da métrica e exceções de log) são usados para melhorar a futura detecção de problemas semelhantes.

## Erros de configuração
<a name="appinsights-configuration-errors"></a>

O CloudWatch Application Insights usa sua configuração para criar telemetrias de monitoramento para os componentes. Quando o Application Insights detecta um problema com sua conta ou configuração, são fornecidas informações no campo **Remarks** (Observações) sobre como resolver o problema de configuração da sua aplicação. 

A tabela a seguir mostra resoluções sugeridas para observações específicas.


| Observações | Resolução sugerida | Notas adicionais  | 
| --- | --- | --- | 
|  A cota para o CloudFormation já foi atingida.  |  O Application Insights cria uma pilha do CloudFormation para que cada aplicação para gerencie a instalação e a configuração do atendente do CloudWatch para todos os componentes da aplicação. Por padrão, cada conta da AWS pode conter 2.000 pilhas. Consulte [Limites do CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html). Para resolver isso, aumente o limite para pilhas do CloudFormation.  | n/a | 
|  Não há função de instância do SSM nas instâncias a seguir.  |  Para que o Application Insights consiga instalar e configurar o atendente do CloudWatch em instâncias da aplicação, as políticas AmazonSSMManagedInstanceCore e CloudWatchAgentServerPolicy devem estar anexadas à função da instância.   |  O Application Insights chama a API [DescribeInstanceInformation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribeInstanceInformation.html) do SSM para obter a lista de instâncias com permissão do SSM. Depois que a função é anexada à instância, leva um tempo para que o SSM inclua a instância no resultado DescribeInstanceInformation. Até que o SSM inclua a instância no resultado, o erro NO\$1SSM\$1INSTANCE\$1ROLE permanece presente para a aplicação.  | 
|  Novos componentes podem precisar de configuração.  |  O Application Insights detecta que há novos componentes no Grupo de recursos da aplicação. Para resolver isso, configure os novos componentes adequadamente.  | n/a | 

# Logs e métricas compatíveis com o Amazon CloudWatch Application Insights
<a name="appinsights-logs-and-metrics"></a>

As listas a seguir mostram os logs e as métricas compatíveis com o Amazon CloudWatch Application Insights. 

**O CloudWatch Application Insights é compatível com os seguintes logs:**
+ Logs do Microsoft Internet Information Services (IIS)
+ Log de erro do SQL Server no EC2
+ Logs da aplicação .NET personalizados, como Log4Net
+ Logs de eventos do Windows, incluindo registros do Windows (sistema, aplicação e segurança) e registros de aplicações e serviços
+ Amazon CloudWatch Logs for AWS Lambda
+ Log de erros e log lento para RDS MySQL, Aurora MySQL e MySQL no EC2
+ Log do PostgreSQL para o PostgreSQL RDS e o PostgreSQL no EC2
+ Amazon CloudWatch Logs for AWS Step Functions
+ Logs de execução e logs de acesso (JSON, CSV e XML, mas não CLF) para estágios de API REST do API Gateway
+ Logs do Prometheus JMX Exporter (EMF)
+ Logs de alerta e logs de listener para Oracle no Amazon RDS e Oracle no Amazon EC2
+ Roteamento de logs de contêiner do Amazon ECS para o CloudWatch usando o [driver de log `awslogs`](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html).
+ Roteamento de logs de contêineres do Amazon ECS para o CloudWatch usando o [roteamento de log de contêiner do FireLens](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html).
+ Roteamento de logs de contêiner do Amazon EKS ou Kubernetes em execução no Amazon EC2 para o CloudWatch usando o [processador de log Fluent Bit ou Fluentd](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-EKS-logs.html) com o Container Insights.
+ Logs de erros e rastreamento do SAP HANA
+ Logs de HA Pacemaker
+ Logs do servidor do SAP ASE
+ Logs do servidor de backup do SAP ASE
+ Logs do servidor de replicação do SAP ASE
+ Logs do agente RMA do SAP ASE
+ Logs do gerenciador de falhas do SAP ASE
+ Logs de rastreamentos para desenvolvedor do SAP NetWeaver
+ Métricas de processo para processos do Windows usando o [plug-in proctstat para o atendente do CloudWatch](CloudWatch-Agent-procstat-process-metrics.md)
+ Logs de consulta de DNS pública para a zona hospedada
+ Amazon Route 53 ResolverLogs de consulta de DNS do 

**O CloudWatch Application Insights é compatível com as seguintes classes de log:**
+ **Padrão**: o Amazon CloudWatch Application Insights requer que os grupos de logs sejam configurados com a [classe de log padrão do CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch_Logs_Log_Classes.html) para habilitar o monitoramento.

**Contents**
+ [Amazon Elastic Compute Cloud (EC2)](appinsights-metrics-ec2.md)
  + [Métricas integradas do CloudWatch](appinsights-metrics-ec2.md#appinsights-metrics-ec2-built-in)
  + [Métricas do atendente do CloudWatch (Windows Server)](appinsights-metrics-ec2.md#appinsights-metrics-ec2-windows)
  + [Métricas de processo do atendente do CloudWatch (servidor Windows)](appinsights-metrics-ec2.md#appinsights-metrics-procstat-ec2-windows)
  + [Métricas do atendente do CloudWatch (servidor Linux)](appinsights-metrics-ec2.md#appinsights-metrics-ec2-linux)
+ [Elastic Block Store (EBS)](appinsights-metrics-ebs.md)
+ [Amazon Elastic File System (Amazon EFS)](appinsights-metrics-efs.md)
+ [Elastic Load Balancer (ELB)](appinsights-metrics-elb.md)
+ [Aplicativo ELB](appinsights-metrics-app-elb.md)
+ [Grupos do Amazon EC2 Auto Scaling](appinsights-metrics-as.md)
+ [Amazon Simple Queue Server (SQS)](appinsights-metrics-sqs.md)
+ [Amazon Relational Database Service (RDS)](appinsights-metrics-rds.md)
  + [Instâncias de bancos de dados do RDS](appinsights-metrics-rds.md#appinsights-metrics-rds-instances)
  + [Clusters de banco de dados do RDS](appinsights-metrics-rds.md#appinsights-metrics-rds-clusters)
+ [Função do AWS Lambda](appinsights-metrics-lambda.md)
+ [Tabela do Amazon DynamoDB](appinsights-metrics-dyanamodb.md)
+ [Bucket do Amazon S3](appinsights-metrics-s3.md)
+ [AWS Step Functions](appinsights-metrics-step-functions.md)
  + [Nível da execução](appinsights-metrics-step-functions.md#appinsights-metrics-step-functions-execution)
  + [Atividade](appinsights-metrics-step-functions.md#appinsights-metrics-step-functions-activity)
  + [Função do Lambda](appinsights-metrics-step-functions.md#appinsights-metrics-step-functions-lambda)
  + [Integração de serviços](appinsights-metrics-step-functions.md#appinsights-metrics-step-functions-service-integration)
  + [API Step Functions](appinsights-metrics-step-functions.md#appinsights-metrics-step-functions-api)
+ [Etapas da API REST do API Gateway](appinsights-metrics-api-gateway.md)
+ [SAP HANA](appinsights-metrics-sap-hana.md)
+ [SAP ASE](appinsights-metrics-sap-ase.md)
+ [Alta disponibilidade do SAP ASE no Amazon EC2](appinsights-metrics-sap-ase-ha.md)
+ [SAP NetWeaver](appinsights-metrics-sap-netweaver.md)
+ [Cluster de HA](appinsights-metrics-ha-cluster.md)
+ [Java](appinsights-metrics-java.md)
+ [Amazon Elastic Container Service (Amazon ECS)](appinsights-metrics-ecs.md)
  + [Métricas integradas do CloudWatch](appinsights-metrics-ecs.md#appinsights-metrics-ecs-built-in-metrics)
  + [Métricas do Container Insights](appinsights-metrics-ecs.md#appinsights-metrics-ecs-container-insights-metrics)
  + [Métricas do Container Insights Prometheus](appinsights-metrics-ecs.md#appinsights-metrics-ecs-container-insights-prometheus)
+ [Kubernetes na AWS](appinsights-metrics-kubernetes.md)
  + [Métricas do Container Insights](appinsights-metrics-kubernetes.md#appinsights-metrics-kubernetes-container-insights-metrics)
  + [Métricas do Container Insights Prometheus](appinsights-metrics-kubernetes.md#appinsights-metrics-kubernetes-container-insights-prometheus)
+ [Amazon FSx](appinsights-metrics-fsx.md)
+ [Amazon VPC](appinsights-metrics-vpc.md)
+ [Gateways de NAT da Amazon VPC](appinsights-metrics-nat-gateways.md)
+ [Verificação de integridade do Amazon Route 53](appinsights-metrics-health-check.md)
+ [Zona hospedada do Amazon Route 53](appinsights-metrics-hosted-zone.md)
+ [Amazon Route 53 ResolverEndpoint do](appinsights-metrics-resolver-endpoint.md)
+ [AWS Network FirewallGrupo de regras do](appinsights-metrics-firewall-rule-group.md)
+ [associação do grupos de regras AWS Network Firewall](appinsights-metrics-firewall-rule-group-assoc.md)
+ [Métricas com requisitos de pontos de dados](appinsights-metrics-datapoint-requirements.md)
  + [AWS/ApplicationELB](appinsights-metrics-datapoint-requirements.md#appinsights-metrics-datapoint-requirements-app-elb)
  + [AWS/AutoScaling](appinsights-metrics-datapoint-requirements.md#appinsights-metrics-datapoint-requirements-autoscaling)
  + [AWS/EC2](appinsights-metrics-datapoint-requirements.md#appinsights-metrics-datapoint-requirements-ec2)
  + [Elastic Block Store (EBS)](appinsights-metrics-datapoint-requirements.md#appinsights-metrics-datapoint-requirements-ebs)
  + [AWS/ELB](appinsights-metrics-datapoint-requirements.md#appinsights-metrics-datapoint-requirements-elb)
  + [AWS/RDS](appinsights-metrics-datapoint-requirements.md#appinsights-metrics-datapoint-requirements-rds)
  + [AWS/Lambda](appinsights-metrics-datapoint-requirements.md#appinsights-metrics-datapoint-requirements-lambda)
  + [AWS/SQS](appinsights-metrics-datapoint-requirements.md#appinsights-metrics-datapoint-requirements-sqs)
  + [AWS/CWAgent](appinsights-metrics-datapoint-requirements.md#appinsights-metrics-datapoint-requirements-cwagent)
  + [AWS/DynamoDB](appinsights-metrics-datapoint-requirements.md#appinsights-metrics-datapoint-requirements-dynamo)
  + [AWS/S3](appinsights-metrics-datapoint-requirements.md#appinsights-metrics-datapoint-requirements-s3)
  + [AWS/States](appinsights-metrics-datapoint-requirements.md#appinsights-metrics-datapoint-requirements-states)
  + [AWS/ApiGateway](appinsights-metrics-datapoint-requirements.md#appinsights-metrics-datapoint-requirements-api-gateway)
  + [AWS/SNS](appinsights-metrics-datapoint-requirements.md#appinsights-metrics-datapoint-requirements-sns)
+ [Métricas recomendadas](application-insights-recommended-metrics.md)
+ [Métricas de contador de performance](application-insights-performance-counter.md)

# Amazon Elastic Compute Cloud (EC2)
<a name="appinsights-metrics-ec2"></a>

O CloudWatch Application Insights é compatível com as seguintes métricas:

**Topics**
+ [Métricas integradas do CloudWatch](#appinsights-metrics-ec2-built-in)
+ [Métricas do atendente do CloudWatch (Windows Server)](#appinsights-metrics-ec2-windows)
+ [Métricas de processo do atendente do CloudWatch (servidor Windows)](#appinsights-metrics-procstat-ec2-windows)
+ [Métricas do atendente do CloudWatch (servidor Linux)](#appinsights-metrics-ec2-linux)

## Métricas integradas do CloudWatch
<a name="appinsights-metrics-ec2-built-in"></a>

CPUCreditBalance

CPUCreditUsage

CPUSurplusCreditBalance

CPUSurplusCreditsCharged

CPUUtilization

DiskReadBytes

DiskReadOps

DiskWriteBytes

DiskWriteOps

EBSByteBalance%

EBSIOBalance%

EBSReadBytes

EBSReadOps

EBSWriteBytes

EBSWriteOps

NetworkIn

NetworkOut

NetworkPacketsIn

NetworkPacketsOut

StatusCheckFailed

StatusCheckFailed\$1Instance

StatusCheckFailed\$1System

## Métricas do atendente do CloudWatch (Windows Server)
<a name="appinsights-metrics-ec2-windows"></a>

Nº de exceções do CLR .NET de exceções ocorridas

Nº de exceções do CLR .NET de exceções ocorridas por segundo

Nº de exceções do CLR .NET de filtros por segundo

Nº de exceções do CLR .NET de conclusões por segundo

Exceções do CLR .NET lançadas para capturar profundidade por segundo

Nº de interoperabilidade do CLR .NET de CCWs

Nº de interoperabilidade do CLR .NET de stubs

Nº de interoperabilidade do CLR .NET de exportações TLB/s

Nº de interoperabilidade do CLR .NET de importações TLB/s

Nº de interoperabilidade do CLR .NET de marshaling

% de tempo de Jit do CLR .NET no Jit

Falhas do Jit padrão do Jit do CLR .NET

% de tempo de carregamento do CLR .NET

Taxa de carregamento do CLR .NET de falhas de carga

Taxa de contenção/s LocksAndThreads do CLR .NET

Tamanho da fila/s LocksAndThreads do CLR .NET

Nº total de bytes confirmados de memória do CLR .NET

% de tempo de memória do CLR .NET em GC

Tempo médio da fila HttpWebRequest de rede 4.0.0.0 do CLR .NET

HttpWebRequests canceladas/s de rede 4.0.0.0 do CLR .NET

HttpWebRequests com falha/s de rede 4.0.0.0 do CLR .NET

HttpWebRequests colocadas na fila por segundo de rede 4.0.0.0 do CLR .NET

Total de falhas de ping do processo do operador APP\$1POOL\$1WAS

A aplicação ASP.NET é reiniciada

% do tempo de processador gerenciado de aplicações ASP.NET (estimado)

Total de erros de aplicações ASP.NET por segundo

Erros de aplicações ASP.NET não processados durante a execução por segundo

Solicitações de aplicações ASP.NET na fila de aplicações

Solicitações de aplicações ASP.NET por segundo

Tempo de espera de solicitação do ASP.NET

Solicitações do ASP.NET em fila

Filas de solicitação de serviço HTTP CurrentQueueSize

% de espaço livre de disco lógico

% de bytes confirmados em uso na memória

Mbytes de memória disponíveis

Páginas de memória/s

Total/s de bytes de interface de rede

% de uso de arquivo de paginação

% de tempo de disco de disco físico

Média de disco físico Comprimento da fila de discos

Média de disco físico S/leitura de disco

Média de disco físico S/gravação de disco

Bytes/s de leitura de disco do disco físico

Leituras/s de disco do disco físico

Bytes/s de gravação de disco do disco físico

Gravações/s de disco do disco físico

% de tempo ocioso do processador

% de tempo de interrupção do processador

% de tempo de processador do processador

% de tempo de usuário do processador

SQLServer: gravações/s encaminhadas dos métodos de acesso

SQLServer: verificações completas dos métodos de acesso/s

SQLServer: divisões/s da página de métodos de acesso

SQLServer: proporção de acertos do cache do buffer do gerenciador de buffer

SQLServer: expectativa de vida da página do gerenciador de buffer

SQLServer: processos de estatísticas gerais bloqueados

SQLServer: conexões de usuário de estatísticas gerais

SQLServer: trava o tempo médio de espera (ms)

SQLServer: bloqueia o tempo médio de espera (ms)

SQLServer: bloqueia os tempos limite de bloqueio/s

SQLServer: bloqueia a espera de bloqueio/s

SQLServer: bloqueia o número de bloqueios/s

SQLServer: gerenciador de memória concessão de memória pendente

SQLServer: solicitações em lote/s de estatísticas do SQL

SQLServer: compilações do SQL/s de estatísticas do SQL

SQLServer: novas compilações do SQL/s de estatísticas do SQL

Tamanho da fila do processador do sistema

Conexões TCPv4 estabelecidas

Conexões TCPv6 estabelecidas

Descargas de cache de arquivos W3SVC\$1W3WP

Erros de cache de arquivos W3SVC\$1W3WP

Solicitações W3SVC\$1W3WP/s

Descargas de cache URI W3SVC\$1W3WP

Erros de cache URI W3SVC\$1W3WP

Bytes de serviço web recebidos por segundo

Bytes de serviço web enviados por segundo

Tentativas de conexão de web service/s

Conexões atuais de serviços web

Solicitações para obter web service/s

Solicitações para publicar web service/s

Bytes recebidos/s

Tamanho da fila de mensagens normais/s

Tamanho da fila de mensagens urgentes/s

Contagem de reconexão

Tamanho da fila de mensagens não confirmadas/s

Mensagens pendentes

Mensagens enviadas/s

Mensagens de atualização de banco de dados/s

Atualizar mensagens/s

Liberações/s

Pontos de verificação de criptografia salvos/s

Pontos de verificação de criptografia restaurados/s

Pontos de verificação do registro restaurados/s

Pontos de verificação do registro salvos/s

Chamadas de API de cluster/s

Chamadas de API de recursos/s

Monitores de cluster/s

Manipulações de recursos/s

## Métricas de processo do atendente do CloudWatch (servidor Windows)
<a name="appinsights-metrics-procstat-ec2-windows"></a>

As métricas de processo são coletadas usando o [plug-in procstat do atendente do CloudWatch](CloudWatch-Agent-procstat-process-metrics.md). Somente instâncias do Amazon EC2 que executam workloads do Windows oferecem suporte a métricas de processo.

procstat cpu\$1time\$1system

procstat cpu\$1time\$1user

procstat cpu\$1usage

procstat memory\$1rss

procstat memory\$1vms

procstat read\$1bytes

procstat write\$1bytes

.procstat read\$1count

procstat write\$1count

## Métricas do atendente do CloudWatch (servidor Linux)
<a name="appinsights-metrics-ec2-linux"></a>

cpu\$1time\$1active

cpu\$1time\$1guest

cpu\$1time\$1guest\$1nice

cpu\$1time\$1idle

cpu\$1time\$1iowait

cpu\$1time\$1irq

cpu\$1time\$1nice

cpu\$1time\$1softirq

cpu\$1time\$1steal

cpu\$1time\$1system

cpu\$1time\$1user

cpu\$1usage\$1active

cpu\$1usage\$1guest

cpu\$1usage\$1guest\$1nice

cpu\$1usage\$1idle

cpu\$1usage\$1iowait

cpu\$1usage\$1irq

cpu\$1usage\$1nice

cpu\$1usage\$1softirq

cpu\$1usage\$1steal

cpu\$1usage\$1system

cpu\$1usage\$1user

disk\$1free

disk\$1inodes\$1free

disk\$1inodes\$1used

disk\$1used

disk\$1used\$1percent

diskio\$1io\$1time

diskio\$1iops\$1in\$1progress

diskio\$1read\$1bytes

diskio\$1read\$1time

diskio\$1reads

diskio\$1write\$1bytes

diskio\$1write\$1time

diskio\$1writes

mem\$1active

mem\$1available

mem\$1available\$1percent

mem\$1buffered

mem\$1cached

mem\$1free

mem\$1inactive

mem\$1used

mem\$1used\$1percent

net\$1bytes\$1recv

net\$1bytes\$1sent

net\$1drop\$1in

net\$1drop\$1out

net\$1err\$1in

net\$1err\$1out

net\$1packets\$1recv

net\$1packets\$1sent

netstat\$1tcp\$1close

netstat\$1tcp\$1close\$1wait

netstat\$1tcp\$1closing

netstat\$1tcp\$1established

netstat\$1tcp\$1fin\$1wait1

netstat\$1tcp\$1fin\$1wait2

netstat\$1tcp\$1last\$1ack

netstat\$1tcp\$1listen

netstat\$1tcp\$1none

netstat\$1tcp\$1syn\$1recv

netstat\$1tcp\$1syn\$1sent

netstat\$1tcp\$1time\$1wait

netstat\$1udp\$1socket

processes\$1blocked

processes\$1dead

processes\$1idle

processes\$1paging

processes\$1running

processes\$1sleeping

processes\$1stopped

processes\$1total

processes\$1total\$1threads

processes\$1wait

processes\$1zombies

swap\$1free

swap\$1used

swap\$1used\$1percent

# Elastic Block Store (EBS)
<a name="appinsights-metrics-ebs"></a>

O CloudWatch Application Insights é compatível com as seguintes métricas:

VolumeReadBytes

VolumeWriteBytes

VolumeReadOps

VolumeWriteOps

VolumeTotalReadTime 

VolumeTotalWriteTime 

VolumeIdleTime

VolumeQueueLength

VolumeThroughputPercentage

VolumeConsumedReadWriteOps

BurstBalance

# Amazon Elastic File System (Amazon EFS)
<a name="appinsights-metrics-efs"></a>

O CloudWatch Application Insights é compatível com as seguintes métricas:

BurstCreditBalance

PercentIOLimit

PermittedThroughput

MeteredIOBytes

TotalIOBytes

DataWriteIOBytes

DataReadIOBytes

MetadataIOBytes

Conexões de clientes

TimeSinceLastSync

StorageBytes

Throughput

PercentageOfPermittedThroughputUtilization

ThroughputIOPS

 PercentThroughputDataReadIOByte

PercentThroughputDataWriteIOBytes

PercentageOfIOPSDataReadIOBytes

PercentageOfIOPSDataWriteIOBytes

Tamanho médio de bytes de rádio da área de dados

Tamanho médio de escrita de dados por BytesSize

# Elastic Load Balancer (ELB)
<a name="appinsights-metrics-elb"></a>

O CloudWatch Application Insights é compatível com as seguintes métricas:

EstimatedALBActiveConnectionCount

EstimatedALBConsumedLCUs

EstimatedALBNewConnectionCount

EstimatedProcessedBytes

HTTPCode\$1Backend\$14XX

HTTPCode\$1Backend\$15XX

HealthyHostCount

RequestCount

UnHealthyHostCount

# Aplicativo ELB
<a name="appinsights-metrics-app-elb"></a>

O CloudWatch Application Insights é compatível com as seguintes métricas:

EstimatedALBActiveConnectionCount

EstimatedALBConsumedLCUs

EstimatedALBNewConnectionCount

EstimatedProcessedBytes

HTTPCode\$1Backend\$14XX

HTTPCode\$1Backend\$15XX

HealthyHostCount

Latência

RequestCount

SurgeQueueLength

UnHealthyHostCount

# Grupos do Amazon EC2 Auto Scaling
<a name="appinsights-metrics-as"></a>

O CloudWatch Application Insights é compatível com as seguintes métricas:

CPUCreditBalance

CPUCreditUsage

CPUSurplusCreditBalance

CPUSurplusCreditsCharged

CPUUtilization

DiskReadBytes

DiskReadOps

DiskWriteBytes

DiskWriteOps

EBSByteBalance%

EBSIOBalance%

EBSReadBytes

EBSReadOps

EBSWriteBytes

EBSWriteOps

NetworkIn

NetworkOut

NetworkPacketsIn

NetworkPacketsOut

StatusCheckFailed

StatusCheckFailed\$1Instance

StatusCheckFailed\$1System

# Amazon Simple Queue Server (SQS)
<a name="appinsights-metrics-sqs"></a>

O CloudWatch Application Insights é compatível com as seguintes métricas:

ApproximateAgeOfOldestMessage

ApproximateNumberOfMessagesDelayed

ApproximateNumberOfMessagesNotVisible

ApproximateNumberOfMessagesVisible

NumberOfEmptyReceives

NumberOfMessagesDeleted

NumberOfMessagesReceived

NumberOfMessagesSent

# Amazon Relational Database Service (RDS)
<a name="appinsights-metrics-rds"></a>

O CloudWatch Application Insights é compatível com as seguintes métricas:

**Topics**
+ [Instâncias de bancos de dados do RDS](#appinsights-metrics-rds-instances)
+ [Clusters de banco de dados do RDS](#appinsights-metrics-rds-clusters)

## Instâncias de bancos de dados do RDS
<a name="appinsights-metrics-rds-instances"></a>

BurstBalance

CPUCreditBalance

CPUUtilization

DatabaseConnections

DiskQueueDepth

FailedSQLServerAgentJobsCount

FreeStorageSpace

FreeableMemory

NetworkReceiveThroughput

NetworkTransmitThroughput

ReadIOPS

ReadLatency

ReadThroughput

WriteIOPS

WriteLatency

WriteThroughput

## Clusters de banco de dados do RDS
<a name="appinsights-metrics-rds-clusters"></a>

ActiveTransactions

AuroraBinlogReplicaLag

AuroraReplicaLag

BackupRetentionPeriodStorageUsed

BinLogDiskUsage

BlockedTransactions

BufferCacheHitRatio

CPUUtilization

CommitLatency

CommitThroughput

DDLLatency

DDLThroughput

DMLLatency

DMLThroughput

DatabaseConnections

Deadlocks

DeleteLatency

DeleteThroughput

EngineUptime

FreeLocalStorage

FreeableMemory

InsertLatency

InsertThroughput

LoginFailures

NetworkReceiveThroughput

NetworkThroughput

NetworkTransmitThroughput

Consultas

ResultSetCacheHitRatio

SelectLatency

SelectThroughput

SnapshotStorageUsed

TotalBackupStorageBilled

UpdateLatency

UpdateThroughput

VolumeBytesUsed

VolumeReadIOPs

VolumeWriteIOPs

# Função do AWS Lambda
<a name="appinsights-metrics-lambda"></a>

O CloudWatch Application Insights é compatível com as seguintes métricas:

Erros

DeadLetterErrors

Duração

Controles de utilização

IteratorAge

ProvisionedConcurrencySpilloverInvocations

# Tabela do Amazon DynamoDB
<a name="appinsights-metrics-dyanamodb"></a>

O CloudWatch Application Insights é compatível com as seguintes métricas:

SystemErrors

UserErrors

ConsumedReadCapacityUnits

ConsumedWriteCapacityUnits

ReadThrottleEvents

WriteThrottleEvents

TimeToLiveDeletedItemCount

ConditionalCheckFailedRequests

TransactionConflict

ReturnedRecordsCount

PendingReplicationCount

ReplicationLatency

# Bucket do Amazon S3
<a name="appinsights-metrics-s3"></a>

O CloudWatch Application Insights é compatível com as seguintes métricas:

ReplicationLatency

BytesPendingReplication

OperationsPendingReplication

4xxErros

5xxErros

AllRequests

GetRequests

PutRequests

DeleteRequests

HeadRequests

PostRequests

SelectRequests

ListRequests

SelectScannedBytes

SelectReturnedBytes

FirstByteLatency

TotalRequestLatency

BytesDownloaded

BytesUploaded

# AWS Step Functions
<a name="appinsights-metrics-step-functions"></a>

O CloudWatch Application Insights é compatível com as seguintes métricas:

**Topics**
+ [Nível da execução](#appinsights-metrics-step-functions-execution)
+ [Atividade](#appinsights-metrics-step-functions-activity)
+ [Função do Lambda](#appinsights-metrics-step-functions-lambda)
+ [Integração de serviços](#appinsights-metrics-step-functions-service-integration)
+ [API Step Functions](#appinsights-metrics-step-functions-api)

## Nível da execução
<a name="appinsights-metrics-step-functions-execution"></a>

ExecutionTime

ExecutionThrottled

ExecutionsFailed

ExecutionsTimedOut

ExecutionsAborted

ExecutionsSucceeded

ExecutionsStarted

## Atividade
<a name="appinsights-metrics-step-functions-activity"></a>

ActivityRunTime

ActivityScheduleTime

ActivityTime

ActivitiesFailed

ActivitiesHeartbeatTimedOut

ActivitiesTimedOut

ActivitiesScheduled

ActivitiesSucceeded

ActivitiesStarted

## Função do Lambda
<a name="appinsights-metrics-step-functions-lambda"></a>

LambdaFunctionRunTime

LambdaFunctionScheduleTime

LambdaFunctionTime

LambdaFunctionsFailed

LambdaFunctionsTimedOut

LambdaFunctionsScheduled

LambdaFunctionsSucceeded

LambdaFunctionsStarted

## Integração de serviços
<a name="appinsights-metrics-step-functions-service-integration"></a>

ServiceIntegrationRunTime

ServiceIntegrationScheduleTime

ServiceIntegrationTime

ServiceIntegrationsFailed

ServiceIntegrationsTimedOut

ServiceIntegrationsScheduled

ServiceIntegrationsSucceeded

ServiceIntegrationsStarted

## API Step Functions
<a name="appinsights-metrics-step-functions-api"></a>

ThrottledEvents

ProvisionedBucketSize

ProvisionedRefillRate

ConsumedCapacity

# Etapas da API REST do API Gateway
<a name="appinsights-metrics-api-gateway"></a>

O CloudWatch Application Insights é compatível com as seguintes métricas:

4XXError

5XXError

IntegrationLatency

Latência

CacheHitCount

CacheMissCount

# SAP HANA
<a name="appinsights-metrics-sap-hana"></a>

**nota**  
O CloudWatch Application Insights oferece suporte apenas a ambientes SID HANA únicos. Se houver vários SID HANA conectados, o monitoramento será configurado apenas para o primeiro SID detectado.

O CloudWatch Application Insights é compatível com as seguintes métricas:

hanadb\$1every\$1service\$1started\$1status

hanadb\$1daemon\$1service\$1started\$1status

hanadb\$1preprocessor\$1service\$1started\$1status

hanadb\$1webdispatcher\$1service\$1started\$1status

hanadb\$1compileserver\$1service\$1started\$1status

hanadb\$1nameserver\$1service\$1started\$1status

hanadb\$1server\$1startup\$1time\$1variations\$1seconds

hanadb\$1level\$15\$1alerts\$1count

hanadb\$1level\$14\$1alerts\$1count

hanadb\$1out\$1of\$1memory\$1events\$1count

hanadb\$1max\$1trigger\$1read\$1ratio\$1percent

hanadb\$1max\$1trigger\$1write\$1ratio\$1percent

hanadb\$1log\$1switch\$1wait\$1ratio\$1percent

hanadb\$1log\$1switch\$1race\$1ratio\$1percent

hanadb\$1time\$1since\$1last\$1savepoint\$1seconds

hanadb\$1disk\$1usage\$1highlevel\$1percent

hanadb\$1max\$1converter\$1page\$1number\$1count

hanadb\$1long\$1running\$1savepoints\$1count

hanadb\$1failed\$1io\$1reads\$1count

hanadb\$1failed\$1io\$1writes\$1count

hanadb\$1disk\$1data\$1unused\$1percent

hanadb\$1current\$1allocation\$1limit\$1used\$1percent

hanadb\$1table\$1allocation\$1limit\$1used\$1percent

hanadb\$1host\$1total\$1physical\$1memory\$1mb

hanadb\$1host\$1physical\$1memory\$1used\$1mb

hanadb\$1host\$1physical\$1memory\$1free\$1mb

hanadb\$1swap\$1memory\$1free\$1mb

hanadb\$1swap\$1memory\$1used\$1mb

hanadb\$1host\$1allocation\$1limit\$1mb

hanadb\$1host\$1total\$1memory\$1used\$1mb

 hanadb\$1host\$1total\$1peak\$1memory\$1used\$1mb

hanadb\$1host\$1total\$1allocation\$1limit\$1mb

hanadb\$1host\$1code\$1size\$1mb

hanadb\$1host\$1shared\$1memory\$1allocation\$1mb

hanadb\$1cpu\$1usage\$1percent

hanadb\$1cpu\$1user\$1percent

hanadb\$1cpu\$1system\$1percent

hanadb\$1cpu\$1waitio\$1percent

hanadb\$1cpu\$1busy\$1percent

hanadb\$1cpu\$1idle\$1percent

hanadb\$1long\$1delta\$1merge\$1count

hanadb\$1unsuccessful\$1delta\$1merge\$1count

hanadb\$1successful\$1delta\$1merge\$1count

hanadb\$1row\$1store\$1allocated\$1size\$1mb

hanadb\$1row\$1store\$1free\$1size\$1mb

hanadb\$1row\$1store\$1used\$1size\$1mb

hanadb\$1temporary\$1tables\$1count

hanadb\$1large\$1non\$1compressed\$1tables\$1count

hanadb\$1total\$1non\$1compressed\$1tables\$1count

hanadb\$1longest\$1running\$1job\$1seconds

hanadb\$1average\$1commit\$1time\$1milliseconds

hanadb\$1suspended\$1sql\$1statements\$1count

hanadb\$1plan\$1cache\$1hit\$1ratio\$1percent

hanadb\$1plan\$1cache\$1lookup\$1count

hanadb\$1plan\$1cache\$1hit\$1count

hanadb\$1plan\$1cache\$1total\$1execution\$1microseconds

hanadb\$1plan\$1cache\$1cursor\$1duration\$1microseconds

hanadb\$1plan\$1cache\$1preparation\$1microseconds

hanadb\$1plan\$1cache\$1evicted\$1count

hanadb\$1plan\$1cache\$1evicted\$1microseconds

hanadb\$1plan\$1cache\$1evicted\$1preparation\$1count

hanadb\$1plan\$1cache\$1evicted\$1execution\$1count

hanadb\$1plan\$1cache\$1evicted\$1preparation\$1microseconds

hanadb\$1plan\$1cache\$1evicted\$1cursor\$1duration\$1microseconds

hanadb\$1plan\$1cache\$1evicted\$1total\$1execution\$1microseconds

hanadb\$1plan\$1cache\$1evicted\$1plan\$1size\$1mb

hanadb\$1plan\$1cache\$1count

hanadb\$1plan\$1cache\$1preparation\$1count

hanadb\$1plan\$1cache\$1execution\$1count

hanadb\$1network\$1collision\$1rate

hanadb\$1network\$1receive\$1rate

hanadb\$1network\$1transmit\$1rate

hanadb\$1network\$1packet\$1receive\$1rate

hanadb\$1network\$1packet\$1transmit\$1rate

hanadb\$1network\$1transmit\$1error\$1rate

hanadb\$1network\$1receive\$1error\$1rate

hanadb\$1time\$1until\$1license\$1expires\$1days

hanadb\$1is\$1license\$1valid\$1status

hanadb\$1local\$1running\$1connections\$1count

hanadb\$1local\$1idle\$1connections\$1count

hanadb\$1remote\$1running\$1connections\$1count

hanadb\$1remote\$1idle\$1connections\$1count

hanadb\$1last\$1full\$1data\$1backup\$1age\$1days

hanadb\$1last\$1data\$1backup\$1age\$1days

hanadb\$1last\$1log\$1backup\$1age\$1hours

hanadb\$1failed\$1data\$1backup\$1past\$17\$1days\$1count

hanadb\$1failed\$1log\$1backup\$1past\$17\$1days\$1count

hanadb\$1oldest\$1backup\$1in\$1catalog\$1age\$1days

hanadb\$1backup\$1catalog\$1size\$1mb

hanadb\$1hsr\$1replication\$1status

hanadb\$1hsr\$1log\$1shipping\$1delay\$1seconds

hanadb\$1hsr\$1secondary\$1failover\$1count

hanadb\$1hsr\$1secondary\$1reconnect\$1count

hanadb\$1hsr\$1async\$1buffer\$1used\$1mb

hanadb\$1hsr\$1secondary\$1active\$1status

hanadb\$1handle\$1count

hanadb\$1ping\$1time\$1milliseconds

hanadb\$1connection\$1count

hanadb\$1internal\$1connection\$1count

hanadb\$1external\$1connection\$1count

hanadb\$1idle\$1connection\$1count

hanadb\$1transaction\$1count

hanadb\$1internal\$1transaction\$1count

hanadb\$1external\$1transaction\$1count

hanadb\$1user\$1transaction\$1count

hanadb\$1blocked\$1transaction\$1count

hanadb\$1statement\$1count

hanadb\$1active\$1commit\$1id\$1range\$1count

hanadb\$1mvcc\$1version\$1count

hanadb\$1pending\$1session\$1count

hanadb\$1record\$1lock\$1count

hanadb\$1read\$1count

hanadb\$1write\$1count

hanadb\$1merge\$1count

hanadb\$1unload\$1count

hanadb\$1active\$1thread\$1count

hanadb\$1waiting\$1thread\$1count

hanadb\$1total\$1thread\$1count

hanadb\$1active\$1sql\$1executor\$1count

hanadb\$1waiting\$1sql\$1executor\$1count

hanadb\$1total\$1sql\$1executor\$1count

hanadb\$1data\$1write\$1size\$1mb

hanadb\$1data\$1write\$1time\$1milliseconds

hanadb\$1log\$1write\$1size\$1mb

hanadb\$1log\$1write\$1time\$1milliseconds

hanadb\$1data\$1read\$1size\$1mb

hanadb\$1data\$1read\$1time\$1milliseconds

hanadb\$1log\$1read\$1size\$1mb

hanadb\$1log\$1read\$1time\$1milliseconds

hanadb\$1data\$1backup\$1write\$1size\$1mb

hanadb\$1data\$1backup\$1write\$1time\$1milliseconds

hanadb\$1log\$1backup\$1write\$1size\$1mb

hanadb\$1log\$1backup\$1write\$1time\$1milliseconds

hanadb\$1mutex\$1collision\$1count

hanadb\$1read\$1write\$1lock\$1collision\$1count

hanadb\$1admission\$1control\$1admit\$1count

hanadb\$1admission\$1control\$1reject\$1count

hanadb\$1admission\$1control\$1queue\$1size\$1mb

hanadb\$1admission\$1control\$1wait\$1time\$1milliseconds

# SAP ASE
<a name="appinsights-metrics-sap-ase"></a>

O CloudWatch Application Insights é compatível com as seguintes métricas:

asedb\$1database\$1availability

asedb\$1trunc\$1log\$1on\$1chkpt\$1enabled

asedb\$1last\$1db\$1backup\$1age\$1in\$1days

asedb\$1last\$1transaction\$1log\$1backup\$1age\$1in\$1hours

asedb\$1suspected\$1database

asedb\$1db\$1space\$1usage\$1percent

asedb\$1db\$1log\$1space\$1usage\$1percent

asedb\$1locked\$1login

asedb\$1has\$1mixed\$1log\$1and\$1data

asedb\$1runtime\$1for\$1open\$1transactions

asedb\$1data\$1cache\$1hit\$1ratio

asedb\$1data\$1cache\$1usage

asedb\$1sql\$1cache\$1hit\$1ratio

asedb\$1cache\$1usage

asedb\$1run\$1queue\$1length

asedb\$1number\$1of\$1rollbacks

asedb\$1number\$1of\$1commits

asedb\$1number\$1of\$1transactions

asedb\$1outstanding\$1disk\$1io

asedb\$1percent\$1io\$1busy

asedb\$1percent\$1system\$1busy

asedb\$1percent\$1locks\$1active

asedb\$1scheduled\$1jobs\$1failed\$1percent

asedb\$1user\$1connections\$1percent

asedb\$1query\$1logical\$1reads

asedb\$1query\$1physical\$1reads

asedb\$1query\$1cpu\$1time

asedb\$1query\$1memory\$1usage

# Alta disponibilidade do SAP ASE no Amazon EC2
<a name="appinsights-metrics-sap-ase-ha"></a>

O CloudWatch Application Insights é compatível com as seguintes métricas:

asedb\$1ha\$1replication\$1state

asedb\$1ha\$1replication\$1mode

asedb\$1ha\$1replication\$1latency\$1in\$1minutes

# SAP NetWeaver
<a name="appinsights-metrics-sap-netweaver"></a>

O CloudWatch Application Insights é compatível com as seguintes métricas:


| Métrica | Descrição | 
| --- | --- | 
| sap\$1alerts\$1ResponseTime |  O alerta de tempo de resposta do SAP do CCMS (RZ20)>R3services>Dialog>ResponseTime.  | 
|  sap\$1alerts\$1ResponseTimeDialog  | O alerta do diálogo de tempo de resposta do SAP do CCMS (RZ20)>R3Services>Dialog>ResponseTimeDialog. | 
| sap\$1alerts\$1ResponseTimeDialogRFC | O alerta de tempo de resposta do SAP do CCMS (RZ20)>R3Services> Dialog>ResponseTimeDialogRFC. | 
| sap\$1alerts\$1DBRequestTime | O alerta de tempo de resposta do SAP do CCMS (RZ20)>R3Services>Dialog>DBRequestTime. | 
| sap\$1alerts\$1FrontendResponseTime | O alerta de tempo de resposta do SAP do CCMS (RZ20)>R3Services > Dialog>FrontEndResponseTime. | 
| sap\$1alerts\$1Database  | O sistema SAP registrou erros relacionados ao banco de dados. Alerta do SM21 ou do CCMS (RZ20)>R3Syslog>Database. | 
| sap\$1alerts\$1QueueTime  | O alerta de tempo de fila do SAP do CCMS (RZ20)>R3Services>Dialog>QueueTime. | 
| sap\$1alerts\$1AbortedJobs | Trabalhos em segundo plano com falha no sistema SAP. Alerta de (RZ20)>R3Services > Background>AbortedJobs. | 
| sap\$1alerts\$1BasisSystem | O sistema SAP registrou erros no nível do sistema. Alerta do SM21 ou do CCMS (RZ20)>R3Syslog>BasisSystem. | 
| sap\$1alerts\$1Security  | O sistema SAP registrou mensagens relacionadas a segurança. Alerta do SM21 ou do CCMS ((RZ20)>R3Syslog>Security. | 
| sap\$1alerts\$1System  | O sistema SAP registrou mensagens relacionadas a segurança ou a auditoria. Alerta do SM21 ou do CCMS (RZ20)>Security>System. | 
| sap\$1alerts\$1LongRunners  | Existem programas de longa duração no sistema SAP. Alerta do CCMS (RZ20)>R3Services>Dialog>LongRunners. | 
| sap\$1alerts\$1SqlError  | Existem logs de erros no nível do cliente do banco de dados SAP. Alerta do CCMS(RZ20)>DatabaseClient>AbapSql>SqlError. | 
| sap\$1alerts\$1State  | Alerta de estado do CCMS (RZ20)>OS Collector>State. | 
| sap\$1alerts\$1Shortdumps  | Alerta de shortdumps do ST22 e do CCMS (RZ20)>R3Abap>Shortdumps. | 
| sap\$1alerts\$1Availability  | Alerta de disponibilidade para instância do servidor de aplicações SAP de SM21, SM50, SM51, SM66 e CCMS (RZ20)>InstanceAsTask>Availability. | 
| sap\$1dispatcher\$1queue\$1high | A função GetQueueStatistic do serviço da Web SAPControl fornece a contagem alta da fila do despachante.  | 
| sap\$1dispatcher\$1queue\$1max | A função GetQueueStatistic do serviço da Web SAPControl fornece a contagem máxima da fila do despachante.  | 
| sap\$1dispatcher\$1queue\$1now | A função GetQueueStatistic do serviço da Web SAPControl fornece a contagem no momento da fila do despachante. | 
| sap\$1dispatcher\$1queue\$1reads | A função GetQueueStatistic do serviço da Web SAPControl fornece a contagem de leituras da fila do despachante.  | 
| sap\$1dispatcher\$1queue\$1writes | A função GetQueueStatistic do serviço da Web SAPControl fornece a contagem de gravações da fila do despachante.  | 
| sap\$1enqueue\$1server\$1arguments\$1high  | A função EnqGetStatistic do serviço da Web SAPControl fornece a contagem alta de argumentos em fila. | 
| sap\$1enqueue\$1server\$1arguments\$1max  | A função EnqGetStatistic do serviço da Web SAPControl fornece a contagem máxima de argumentos em fila. | 
| sap\$1enqueue\$1server\$1arguments\$1now | A função EnqGetStatistic do serviço da Web SAPControl fornece a contagem no momento de argumentos em fila. | 
| sap\$1enqueue\$1server\$1arguments\$1state | A função EnqGetStatistic do serviço da Web SAPControl fornece o estado dos argumentos em fila. | 
| sap\$1enqueue\$1server\$1backup\$1requests | A função EnqGetStatistic do serviço da Web SAPControl fornece as solicitações de backup em fila. | 
| sap\$1enqueue\$1server\$1cleanup\$1requests | A função EnqGetStatistic do serviço da Web SAPControl fornece as solicitações de limpeza em fila.  | 
| sap\$1enqueue\$1server\$1dequeue\$1all\$1requests | A função EnqGetStatistic do serviço da Web SAPControl fornece as solicitações de retirada de todos da fila. | 
| sap\$1enqueue\$1server\$1dequeue\$1errors | A função EnqGetStatistic do serviço da Web SAPControl fornece os erros de retirada da fila.  | 
| sap\$1enqueue\$1server\$1dequeue\$1requests  | A função EnqGetStatistic do serviço da Web SAPControl fornece todas as solicitações de retirada da fila. | 
| sap\$1enqueue\$1server\$1enqueue\$1errors | A função EnqGetStatistic do serviço da Web SAPControl fornece os erros em fila. | 
| sap\$1enqueue\$1server\$1enqueue\$1rejects  | A função EnqGetStatistic do serviço da Web SAPControl fornece as rejeições em fila. | 
| sap\$1enqueue\$1server\$1enqueue\$1requests | A função EnqGetStatistic do serviço da Web SAPControl fornece as solicitações em fila. | 
| sap\$1enqueue\$1server\$1lock\$1time | A função EnqGetStatistic do serviço da Web SAPControl fornece o tempo de bloqueio em fila. | 
| sap\$1enqueue\$1server\$1lock\$1wait\$1time | A função EnqGetStatistic do serviço da Web SAPControl fornece a espera de bloqueio em fila. | 
| sap\$1enqueue\$1server\$1locks\$1high | A função EnqGetStatistic do serviço da Web SAPControl fornece a contagem alta de bloqueios em fila. | 
| sap\$1enqueue\$1server\$1locks\$1max | A função EnqGetStatistic do serviço da Web SAPControl fornece a contagem máxima de bloqueios em fila. | 
| sap\$1enqueue\$1server\$1locks\$1now | A função EnqGetStatistic do serviço da Web SAPControl fornece a contagem no momento de bloqueios em fila. | 
| sap\$1enqueue\$1server\$1locks\$1state | A função EnqGetStatistic do serviço da Web SAPControl fornece o estado de bloqueio em fila. | 
| sap\$1enqueue\$1server\$1owner\$1high | A função EnqGetStatistic do serviço da Web SAPControl fornece a contagem alta de proprietários em fila. | 
| sap\$1enqueue\$1server\$1owner\$1max | A função EnqGetStatistic do serviço da Web SAPControl fornece a contagem máxima de proprietários em fila. | 
| sap\$1enqueue\$1server\$1owner\$1now | A função EnqGetStatistic do serviço da Web SAPControl fornece a contagem no momento de proprietários em fila. | 
| sap\$1enqueue\$1server\$1owner\$1state | A função EnqGetStatistic do serviço da Web SAPControl fornece o estado do proprietário em fila. | 
| sap\$1enqueue\$1server\$1replication\$1state  | A função EnqGetStatistic do serviço da Web SAPControl fornece o estado de replicação em fila. | 
| sap\$1enqueue\$1server\$1reporting\$1requests | A função EnqGetStatistic do serviço da Web SAPControl fornece o status das solicitações de relatórios. | 
| sap\$1enqueue\$1server\$1server\$1time | A função EnqGetStatistic do serviço da Web SAPControl fornece a hora do servidor em fila. | 
| sap\$1HA\$1check\$1failover\$1config\$1state | A função HACheckFailoverConfig do serviço da Web SAPControl fornece o status de alta disponibilidade do SAP. | 
| sap\$1HA\$1get\$1failover\$1config\$1HAActive | A função HAGetFailoverConfig do serviço da Web SAPControl fornece o status e a configuração do cluster de alta disponibilidade do SAP. | 
| sap\$1start\$1service\$1processes  | A função GetProcessList do serviço da Web SAPControl fornece o status dos processos de disp\$1work, IGS, gwrd, icman, servidor de mensagens e servidor em fila. | 

# Cluster de HA
<a name="appinsights-metrics-ha-cluster"></a>

O CloudWatch Application Insights é compatível com as seguintes métricas:

ha\$1cluster\$1pacemaker\$1stonith\$1enabled 

ha\$1cluster\$1corosync\$1quorate

hanadb\$1webdispatcher\$1service\$1started\$1status

ha\$1cluster\$1pacemaker\$1nodes 

ha\$1cluster\$1corosync\$1ring\$1errors

ha\$1cluster\$1pacemaker\$1fail\$1count 

# Java
<a name="appinsights-metrics-java"></a>

O CloudWatch Application Insights é compatível com as seguintes métricas:

java\$1lang\$1memory\$1heapmemoryusage\$1used

java\$1lang\$1memory\$1heapmemoryusage\$1committed

java\$1lang\$1operatingsystem\$1openfiledescriptorcount

java\$1lang\$1operatingsystem\$1maxfiledescriptorcount

java\$1lang\$1operatingsystem\$1freephysicalmemorysize

java\$1lang\$1operatingsystem\$1freeswapspacesize

java\$1lang\$1threading\$1threadcount

java\$1lang\$1threading\$1daemonthreadcount

java\$1lang\$1classloading\$1loadedclasscount

java\$1lang\$1garbagecollector\$1collectiontime\$1copy

java\$1lang\$1garbagecollector\$1collectiontime\$1ps\$1scavenge

java\$1lang\$1garbagecollector\$1collectiontime\$1parnew

java\$1lang\$1garbagecollector\$1collectiontime\$1marksweepcompact

java\$1lang\$1garbagecollector\$1collectiontime\$1ps\$1marksweep

java\$1lang\$1garbagecollector\$1collectiontime\$1concurrentmarksweep

java\$1lang\$1garbagecollector\$1collectiontime\$1g1\$1young\$1generation

java\$1lang\$1garbagecollector\$1collectiontime\$1g1\$1old\$1generation

java\$1lang\$1garbagecollector\$1collectiontime\$1g1\$1mixed\$1generation

java\$1lang\$1operatingsystem\$1committedvirtualmemorysize

# Amazon Elastic Container Service (Amazon ECS)
<a name="appinsights-metrics-ecs"></a>

O CloudWatch Application Insights é compatível com as seguintes métricas:

**Topics**
+ [Métricas integradas do CloudWatch](#appinsights-metrics-ecs-built-in-metrics)
+ [Métricas do Container Insights](#appinsights-metrics-ecs-container-insights-metrics)
+ [Métricas do Container Insights Prometheus](#appinsights-metrics-ecs-container-insights-prometheus)

## Métricas integradas do CloudWatch
<a name="appinsights-metrics-ecs-built-in-metrics"></a>

CPUReservation

CPUUtilization

MemoryReservation

MemoryUtilization

GPUReservation

## Métricas do Container Insights
<a name="appinsights-metrics-ecs-container-insights-metrics"></a>

ContainerInstanceCount

CpuUtilized

CpuReserved

DeploymentCount

DesiredTaskCount

MemoryUtilized

MemoryReserved

NetworkRxBytes

NetworkTxBytes

PendingTaskCount

RunningTaskCount

ServiceCount

StorageReadBytes

StorageWriteBytes

TaskCount

TaskSetCount

instance\$1cpu\$1limit

instance\$1cpu\$1reserved\$1capacity

instance\$1cpu\$1usage\$1total

instance\$1cpu\$1utilization

instance\$1filesystem\$1utilization

instance\$1memory\$1limit

instance\$1memory\$1reserved\$1capacity

instance\$1memory\$1utilization

instance\$1memory\$1working\$1set

instance\$1network\$1total\$1bytes

instance\$1number\$1of\$1running\$1tasks

## Métricas do Container Insights Prometheus
<a name="appinsights-metrics-ecs-container-insights-prometheus"></a>

**Métricas do Java JMX**

java\$1lang\$1memory\$1heapmemoryusage\$1used

java\$1lang\$1memory\$1heapmemoryusage\$1committed

java\$1lang\$1operatingsystem\$1openfiledescriptorcount

java\$1lang\$1operatingsystem\$1maxfiledescriptorcount

java\$1lang\$1operatingsystem\$1freephysicalmemorysize

java\$1lang\$1operatingsystem\$1freeswapspacesize

java\$1lang\$1threading\$1threadcount

java\$1lang\$1classloading\$1loadedclasscount

java\$1lang\$1threading\$1daemonthreadcount

java\$1lang\$1garbagecollector\$1collectiontime\$1copy

java\$1lang\$1garbagecollector\$1collectiontime\$1ps\$1scavenge

java\$1lang\$1garbagecollector\$1collectiontime\$1parnew

java\$1lang\$1garbagecollector\$1collectiontime\$1marksweepcompact

java\$1lang\$1garbagecollector\$1collectiontime\$1ps\$1marksweep

java\$1lang\$1garbagecollector\$1collectiontime\$1concurrentmarksweep

java\$1lang\$1garbagecollector\$1collectiontime\$1g1\$1young\$1generation

java\$1lang\$1garbagecollector\$1collectiontime\$1g1\$1old\$1generation

java\$1lang\$1garbagecollector\$1collectiontime\$1g1\$1mixed\$1generation

java\$1lang\$1operatingsystem\$1committedvirtualmemorysize

# Kubernetes na AWS
<a name="appinsights-metrics-kubernetes"></a>

O CloudWatch Application Insights é compatível com as seguintes métricas:

**Topics**
+ [Métricas do Container Insights](#appinsights-metrics-kubernetes-container-insights-metrics)
+ [Métricas do Container Insights Prometheus](#appinsights-metrics-kubernetes-container-insights-prometheus)

## Métricas do Container Insights
<a name="appinsights-metrics-kubernetes-container-insights-metrics"></a>

cluster\$1failed\$1node\$1count

cluster\$1node\$1count

namespace\$1number\$1of\$1running\$1pods

node\$1cpu\$1limit

node\$1cpu\$1reserved\$1capacity

node\$1cpu\$1usage\$1total

node\$1cpu\$1utilization

node\$1filesystem\$1utilization

node\$1memory\$1limit

node\$1memory\$1reserved\$1capacity

node\$1memory\$1utilization

node\$1memory\$1working\$1set

node\$1network\$1total\$1bytes

node\$1number\$1of\$1running\$1containers

node\$1number\$1of\$1running\$1pods

pod\$1cpu\$1reserved\$1capacity

pod\$1cpu\$1utilization

pod\$1cpu\$1utilization\$1over\$1pod\$1limit

pod\$1memory\$1reserved\$1capacity

pod\$1memory\$1utilization

pod\$1memory\$1utilization\$1over\$1pod\$1limit

pod\$1network\$1rx\$1bytes

pod\$1network\$1tx\$1bytes

service\$1number\$1of\$1running\$1pods

## Métricas do Container Insights Prometheus
<a name="appinsights-metrics-kubernetes-container-insights-prometheus"></a>

**Métricas do Java JMX**

java\$1lang\$1memory\$1heapmemoryusage\$1used

java\$1lang\$1memory\$1heapmemoryusage\$1committed

java\$1lang\$1operatingsystem\$1openfiledescriptorcount

java\$1lang\$1operatingsystem\$1maxfiledescriptorcount

java\$1lang\$1operatingsystem\$1freephysicalmemorysize

java\$1lang\$1operatingsystem\$1freeswapspacesize

java\$1lang\$1threading\$1threadcount

java\$1lang\$1classloading\$1loadedclasscount

java\$1lang\$1threading\$1daemonthreadcount

java\$1lang\$1garbagecollector\$1collectiontime\$1copy

java\$1lang\$1garbagecollector\$1collectiontime\$1ps\$1scavenge

java\$1lang\$1garbagecollector\$1collectiontime\$1parnew

java\$1lang\$1garbagecollector\$1collectiontime\$1marksweepcompact

java\$1lang\$1garbagecollector\$1collectiontime\$1ps\$1marksweep

java\$1lang\$1garbagecollector\$1collectiontime\$1concurrentmarksweep

java\$1lang\$1garbagecollector\$1collectiontime\$1g1\$1young\$1generation

java\$1lang\$1garbagecollector\$1collectiontime\$1g1\$1old\$1generation

java\$1lang\$1garbagecollector\$1collectiontime\$1g1\$1mixed\$1generation

java\$1lang\$1operatingsystem\$1committedvirtualmemorysize

# Amazon FSx
<a name="appinsights-metrics-fsx"></a>

O CloudWatch Application Insights é compatível com as seguintes métricas:

DataReadBytes

DataWriteBytes

DataReadOperations

DataWriteOperations

MetadataOperations

FreeStorageCapacity

FreeDataStorageCapacity

LogicalDiskUsage

PhysicalDiskUsage

# Amazon VPC
<a name="appinsights-metrics-vpc"></a>

O CloudWatch Application Insights é compatível com as seguintes métricas:

NetworkAddressUsage

Uso de endereço de rede emparelhado

VPCFirewallQueryVolume

# Gateways de NAT da Amazon VPC
<a name="appinsights-metrics-nat-gateways"></a>

O CloudWatch Application Insights é compatível com as seguintes métricas:

ErrorPortAllocation

IdleTimeoutCount

# Verificação de integridade do Amazon Route 53
<a name="appinsights-metrics-health-check"></a>

O CloudWatch Application Insights é compatível com as seguintes métricas:

ChildHealthCheckHealthyCount

ConnectionTime

HealthCheckPercentageHealthy

HealthCheckStatus

SSLHandshakeTime 

TimeToFirstByte

# Zona hospedada do Amazon Route 53
<a name="appinsights-metrics-hosted-zone"></a>

O CloudWatch Application Insights é compatível com as seguintes métricas:

DNSQueries

DNSSecInternalFailure

DNSSECKeySigningKeysNeedingAction

DNSSECKeySigningKeyMaxNeedingActionAge

DNSSECKeySigningKeyAge

# Amazon Route 53 ResolverEndpoint do
<a name="appinsights-metrics-resolver-endpoint"></a>

O CloudWatch Application Insights é compatível com as seguintes métricas:

EndpointHealthyENICount

EndpointUnHealthyENICount

InboundQueryVolume

OutboundQueryVolume

OutboundQueryAggregateVolume

# AWS Network FirewallGrupo de regras do
<a name="appinsights-metrics-firewall-rule-group"></a>

O CloudWatch Application Insights é compatível com as seguintes métricas:

FirewallRuleGroupQueryVolume

# associação do grupos de regras AWS Network Firewall
<a name="appinsights-metrics-firewall-rule-group-assoc"></a>

O CloudWatch Application Insights é compatível com as seguintes métricas:

FirewallRuleGroupVpcQueryVolume

# Métricas com requisitos de pontos de dados
<a name="appinsights-metrics-datapoint-requirements"></a>

Para métricas sem um limite padrão óbvio para a criação de alarmes, o Application Insights aguarda até que a métrica tenha pontos de dados suficientes para prever um limite razoável para criar o alarme. Os requisitos de pontos de dados da métrica que o CloudWatch Application Insights verifica antes da criação de um alarme são: 
+ A métrica tem pelo menos 100 pontos de dados dos últimos 15 dias aos últimos 2 dias.
+ A métrica tem pelo menos 100 pontos de dados do último dia.

As métricas a seguir seguem esses requisitos de pontos de dados. Observe que as métricas do atendente do CloudWatch exigem até uma hora para criar alarmes. 

**Topics**
+ [AWS/ApplicationELB](#appinsights-metrics-datapoint-requirements-app-elb)
+ [AWS/AutoScaling](#appinsights-metrics-datapoint-requirements-autoscaling)
+ [AWS/EC2](#appinsights-metrics-datapoint-requirements-ec2)
+ [Elastic Block Store (EBS)](#appinsights-metrics-datapoint-requirements-ebs)
+ [AWS/ELB](#appinsights-metrics-datapoint-requirements-elb)
+ [AWS/RDS](#appinsights-metrics-datapoint-requirements-rds)
+ [AWS/Lambda](#appinsights-metrics-datapoint-requirements-lambda)
+ [AWS/SQS](#appinsights-metrics-datapoint-requirements-sqs)
+ [AWS/CWAgent](#appinsights-metrics-datapoint-requirements-cwagent)
+ [AWS/DynamoDB](#appinsights-metrics-datapoint-requirements-dynamo)
+ [AWS/S3](#appinsights-metrics-datapoint-requirements-s3)
+ [AWS/States](#appinsights-metrics-datapoint-requirements-states)
+ [AWS/ApiGateway](#appinsights-metrics-datapoint-requirements-api-gateway)
+ [AWS/SNS](#appinsights-metrics-datapoint-requirements-sns)

## AWS/ApplicationELB
<a name="appinsights-metrics-datapoint-requirements-app-elb"></a>

ActiveConnectionCount

ConsumedLCUs

HTTPCode\$1ELB\$14XX\$1Count

HTTPCode\$1Target\$12XX\$1Count

HTTPCode\$1Target\$13XX\$1Count

HTTPCode\$1Target\$14XX\$1Count

HTTPCode\$1Target\$15XX\$1Count

NewConnectionCount

ProcessedBytes

TargetResponseTime

UnHealthyHostCount

## AWS/AutoScaling
<a name="appinsights-metrics-datapoint-requirements-autoscaling"></a>

GroupDesiredCapacity

GroupInServiceInstances

GroupMaxSize

GroupMinSize

GroupPendingInstances

GroupStandbyInstances

GroupTerminatingInstances

GroupTotalInstances

## AWS/EC2
<a name="appinsights-metrics-datapoint-requirements-ec2"></a>

CPUCreditBalance

CPUCreditUsage

CPUSurplusCreditBalance

CPUSurplusCreditsCharged

CPUUtilization

DiskReadBytes

DiskReadOps

DiskWriteBytes

DiskWriteOps

EBSByteBalance%

EBSIOBalance%

EBSReadBytes

EBSReadOps

EBSWriteBytes

EBSWriteOps

NetworkIn

NetworkOut

NetworkPacketsIn

NetworkPacketsOut

## Elastic Block Store (EBS)
<a name="appinsights-metrics-datapoint-requirements-ebs"></a>

VolumeReadBytes 

VolumeWriteBytes 

VolumeReadOps

VolumeWriteOps

VolumeTotalReadTime 

VolumeTotalWriteTime 

VolumeIdleTime

VolumeQueueLength

VolumeThroughputPercentage

VolumeConsumedReadWriteOps

BurstBalance

## AWS/ELB
<a name="appinsights-metrics-datapoint-requirements-elb"></a>

EstimatedALBActiveConnectionCount

EstimatedALBConsumedLCUs

EstimatedALBNewConnectionCount

EstimatedProcessedBytes

HTTPCode\$1Backend\$14XX

HTTPCode\$1Backend\$15XX

HealthyHostCount

Latência

RequestCount

SurgeQueueLength

UnHealthyHostCount

## AWS/RDS
<a name="appinsights-metrics-datapoint-requirements-rds"></a>

ActiveTransactions

AuroraBinlogReplicaLag

AuroraReplicaLag

BackupRetentionPeriodStorageUsed

BinLogDiskUsage

BlockedTransactions

CPUCreditBalance

CommitLatency

CommitThroughput

DDLLatency

DDLThroughput

DMLLatency

DMLThroughput

DatabaseConnections

Deadlocks

DeleteLatency

DeleteThroughput

DiskQueueDepth

EngineUptime

FreeLocalStorage

FreeStorageSpace

FreeableMemory

InsertLatency

InsertThroughput

LoginFailures

NetworkReceiveThroughput

NetworkThroughput

NetworkTransmitThroughput

Consultas

ReadIOPS

ReadThroughput

SelectLatency

SelectThroughput

SnapshotStorageUsed

TotalBackupStorageBilled

UpdateLatency

UpdateThroughput

VolumeBytesUsed

VolumeReadIOPs

VolumeWriteIOPs

WriteIOPS

WriteThroughput

## AWS/Lambda
<a name="appinsights-metrics-datapoint-requirements-lambda"></a>

Erros

DeadLetterErrors

Duração

Controles de utilização

IteratorAge

ProvisionedConcurrencySpilloverInvocations

## AWS/SQS
<a name="appinsights-metrics-datapoint-requirements-sqs"></a>

ApproximateAgeOfOldestMessage

ApproximateNumberOfMessagesDelayed

ApproximateNumberOfMessagesNotVisible

ApproximateNumberOfMessagesVisible

NumberOfEmptyReceives

NumberOfMessagesDeleted

NumberOfMessagesReceived

NumberOfMessagesSent

## AWS/CWAgent
<a name="appinsights-metrics-datapoint-requirements-cwagent"></a>

% de espaço livre de disco lógico

% de bytes confirmados em uso na memória

Mbytes de memória disponíveis

Total/s de bytes de interface de rede

% de uso de arquivo de paginação

% de tempo de disco de disco físico

Média de disco físico S/leitura de disco

Média de disco físico S/gravação de disco

Bytes/s de leitura de disco do disco físico

Leituras/s de disco do disco físico

Bytes/s de gravação de disco do disco físico

Gravações/s de disco do disco físico

% de tempo ocioso do processador

% de tempo de interrupção do processador

% de tempo de processador do processador

% de tempo de usuário do processador

SQLServer: gravações/s encaminhadas dos métodos de acesso

SQLServer: divisões/s da página de métodos de acesso

SQLServer: proporção de acertos do cache do buffer do gerenciador de buffer

SQLServer: expectativa de vida da página do gerenciador de buffer

SQLServer: bytes de arquivo de réplica de banco de dados recebidos por segundo

SQLServer: bytes de log de réplica de banco de dados recebidos por segundo

SQLServer: log de réplica do banco de dados restante para desfazer

SQLServer: fila de envio de log de réplica de banco de dados

SQLServer: transações de gravação espelhada de réplica de banco de dados por segundo

SQLServer: fila de recuperação de réplica de banco de dados

SQLServer: bytes para refazer réplica do banco de dados restante

SQLServer: bytes da réplica de banco de dados refeita por segundo

SQLServer: log total da réplica de banco de dados que deve ser desfeita

SQLServer: atraso da transação de réplica de banco de dados

SQLServer: processos de estatísticas gerais bloqueados

SQLServer: solicitações em lote/s de estatísticas do SQL

SQLServer: compilações do SQL/s de estatísticas do SQL

SQLServer: novas compilações do SQL/s de estatísticas do SQL

Tamanho da fila do processador do sistema

Conexões TCPv4 estabelecidas

Conexões TCPv6 estabelecidas

## AWS/DynamoDB
<a name="appinsights-metrics-datapoint-requirements-dynamo"></a>

ConsumedReadCapacityUnits

ConsumedWriteCapacityUnits

ReadThrottleEvents

WriteThrottleEvents

TimeToLiveDeletedItemCount

ConditionalCheckFailedRequests

TransactionConflict

ReturnedRecordsCount

PendingReplicationCount

ReplicationLatency

## AWS/S3
<a name="appinsights-metrics-datapoint-requirements-s3"></a>

ReplicationLatency

BytesPendingReplication

OperationsPendingReplication

4xxErros

5xxErros

AllRequests

GetRequests

PutRequests

DeleteRequests

HeadRequests

PostRequests

SelectRequests

ListRequests

SelectScannedBytes

SelectReturnedBytes

FirstByteLatency

TotalRequestLatency

BytesDownloaded

BytesUploaded

## AWS/States
<a name="appinsights-metrics-datapoint-requirements-states"></a>

ActivitiesScheduled

ActivitiesStarted

ActivitiesSucceeded

ActivityScheduleTime

AtivityRuntime

ActivityTime

LambdaFunctionsScheduled

LambdaFunctionsStarted

LambdaFunctionsSucceeded

LambdaFunctionScheduleTime

LambdaFunctionRuntime

LambdaFunctionTime

ServiceIntegrationsScheduled

ServiceIntegrationsStarted

ServiceIntegrationsSucceeded

ServiceIntegrationScheduleTime

ServiceIntegrationRuntime

ServiceIntegrationTime

ProvisionedRefillRate

ProvisionedBucketSize

ConsumedCapacity

ThrottledEvents

## AWS/ApiGateway
<a name="appinsights-metrics-datapoint-requirements-api-gateway"></a>

4XXError 

IntegrationLatency

Latência

DataProcessed

CacheHitCount

CacheMissCount

## AWS/SNS
<a name="appinsights-metrics-datapoint-requirements-sns"></a>

NumberOfNotificationsDelivered

NumberOfMessagesPublished

NumberOfNotificationsFailed

NumberOfNotificationsFilterredOut

NumberOfNotificationsFilterEredout-InvalidAttributes

NumberOfNotificationsFilterredout-NomessageAttributes

NumberOfNotificationsRedrivenToDlq

NumberOfNotificationsFailedToRedriveToDlq

SMSSuccessRate

# Métricas recomendadas
<a name="application-insights-recommended-metrics"></a>

A tabela a seguir lista as métricas recomendadas para cada tipo de componente.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/application-insights-recommended-metrics.html)

A tabela a seguir lista os processos e as métricas de processo recomendados para cada tipo de componente. O CloudWatch Application Insights não recomenda o monitoramento de processos que não são executados em uma instância.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/monitoring/application-insights-recommended-metrics.html)

# Métricas de contador de performance
<a name="application-insights-performance-counter"></a>

As métricas do Contador de performance são recomendadas para instâncias somente quando os conjuntos de Contador de performance correspondentes são instalados nas instâncias do Windows.


| Nome da métrica de contador de performance | Nome do conjunto de contadores de performance | 
| --- | --- | 
| Nº de exceções do CLR .NET de exceções ocorridas | Exceções do CLR .NET | 
| Nº de exceções do CLR .NET de exceções ocorridas por segundo  | Exceções do CLR .NET | 
| Nº de exceções do CLR .NET de filtros por segundo  | Exceções do CLR .NET | 
| Nº de exceções do CLR .NET de conclusões por segundo  | Exceções do CLR .NET | 
| Exceções do CLR .NET lançadas para capturar profundidade por segundo  | Exceções do CLR .NET | 
| Nº de interoperabilidade do CLR .NET de CCWs  | Interoperabilidade do CLR .NET  | 
| Nº de interoperabilidade do CLR .NET de stubs  | Interoperabilidade do CLR .NET  | 
| Nº de interoperabilidade do CLR .NET de exportações TLB/s  | Interoperabilidade do CLR .NET  | 
| Nº de interoperabilidade do CLR .NET de importações TLB/s  | Interoperabilidade do CLR .NET  | 
| Nº de interoperabilidade do CLR .NET de marshaling  | Interoperabilidade do CLR .NET  | 
| % de tempo de Jit do CLR .NET no Jit  | .NET CLR Jit  | 
| Falhas do Jit padrão do Jit do CLR .NET  | .NET CLR Jit  | 
| % de tempo de carregamento do CLR .NET  | CLR do .NET carregando  | 
| Taxa de carregamento do CLR .NET de falhas de carga  | CLR do .NET carregando  | 
| Taxa de contenção/s LocksAndThreads do CLR .NET  | LocksAndThreads do CLR .NET  | 
| Tamanho da fila/s LocksAndThreads do CLR .NET  | LocksAndThreads do CLR .NET  | 
| Nº total de bytes confirmados de memória do CLR .NET  | Memória do CLR .NET | 
| % de tempo de memória do CLR .NET em GC | Memória do CLR .NET | 
| Tempo médio da fila HttpWebRequest de rede 4.0.0.0 do CLR .NET  | Rede do CLR .NET 4.0.0.0  | 
| HttpWebRequests canceladas/s de rede 4.0.0.0 do CLR .NET  | Rede do CLR .NET 4.0.0.0  | 
| HttpWebRequests com falha/s de rede 4.0.0.0 do CLR .NET  | Rede do CLR .NET 4.0.0.0  | 
| HttpWebRequests colocadas na fila por segundo de rede 4.0.0.0 do CLR .NET  | Rede do CLR .NET 4.0.0.0  | 
| Total de falhas de ping do processo do operador APP\$1POOL\$1WAS | APP\$1POOL\$1WAS | 
| A aplicação ASP.NET é reiniciada  | ASP.NET  | 
| Solicitações de ASP.NET rejeitadas | ASP.NET | 
| Processo de operador de ASP.NET é reiniciado | ASP.NET | 
| Cortes de API do cache de aplicações ASP.NET | Aplicativos ASP.NET | 
| % do tempo de processador gerenciado de aplicações ASP.NET (estimado) | Aplicativos ASP.NET | 
| Total de erros de aplicações ASP.NET por segundo | Aplicativos ASP.NET | 
|  Erros de aplicações ASP.NET não processados durante a execução/s  |  Aplicativos ASP.NET  | 
|  Solicitações de aplicações ASP.NET na fila de aplicações  |  Aplicativos ASP.NET  | 
|  Solicitações de aplicações ASP.NET por segundo  |  Aplicativos ASP.NET  | 
| Tempo de espera de solicitação do ASP.NET  | ASP.NET  | 
| Solicitações do ASP.NET em fila  | ASP.NET  | 
| Banco de dados ==> % de acertos de cache do banco de dados de instâncias | Banco de dados ==> Instâncias | 
| Banco de dados ==> latência média das leituras do banco de dados de E/S de instâncias | Banco de dados ==> Instâncias | 
| Banco de dados ==> Leituras do banco de dados de E/S de instâncias/s | Banco de dados ==> Instâncias | 
| Banco de dados ==> Latência média de gravações do log de E/S de instâncias | Banco de dados ==> Instâncias | 
| Operações de replicação pendentes do DRA do DirectoryServices | DirectoryServices | 
| Sincronizações de replicação pendentes do DRA do DirectoryServices | DirectoryServices | 
| Tempo de vinculação de LDAP do DirectoryServices | DirectoryServices | 
| Consultas recursivas do DNS/s | DNS | 
| Falhas de consultas recursivas do DNS/s | DNS | 
| Consultas de TCP do DNS recebidas/s | DNS | 
| Total de consultas do DNS recebidas/s | DNS | 
| Total de respostas do DNS enviadas/s | DNS | 
| Consultas de UDP do DNS recebidas/s | DNS | 
| Filas de solicitação de serviço HTTP CurrentQueueSize  | Filas de solicitação de serviço HTTP  | 
|  % de espaço livre de disco lógico  |  LogicalDisk  | 
| Média de LogicalDisk S/gravação de disco | LogicalDisk | 
| Média de LogicalDisk S/leitura de disco | LogicalDisk | 
| Média de LogicalDisk Comprimento da fila de discos | LogicalDisk | 
|  % de bytes confirmados em uso na memória  | Memória | 
|  Mbytes de memória disponíveis  |  Memória  | 
| Páginas de memória/s  |  Memória  | 
| Tempo (s) de vida média do cache em espera de longo prazo da memória | Memória | 
|  Total/s de bytes de interface de rede  | Interface de rede | 
| Bytes de interface de rede recebidos/s | Interface de rede | 
| Bytes de interface de rede enviados/s | Interface de rede | 
| Largura de banda atual da Interface de Rede | Interface de rede | 
|  % de uso de arquivo de paginação  |  Arquivo de paginação  | 
| % de tempo de disco de disco físico | PhysicalDisk | 
| Média de disco físico Comprimento da fila de discos | PhysicalDisk | 
| Média de disco físico S/leitura de disco | PhysicalDisk | 
| Média de disco físico S/gravação de disco | PhysicalDisk | 
| Bytes/s de leitura de disco do disco físico | PhysicalDisk | 
| Leituras/s de disco do disco físico | PhysicalDisk | 
| Bytes/s de gravação de disco do disco físico | PhysicalDisk | 
| Gravações/s de disco do disco físico | PhysicalDisk | 
|  % de tempo ocioso do processador  | Processor | 
| % de tempo de interrupção do processador |  Processor  | 
| % de tempo de processador do processador |  Processor  | 
| % de tempo de usuário do processador |  Processor  | 
| Taxa de enchimento do cache de blob do cache baseado em disco do SharePoint  | Cache baseado em disco do SharePoint  | 
| Liberações de cache de blob do cache baseado em disco do SharePoint/segundo  | Cache baseado em disco do SharePoint  | 
| Taxa de acertos de cache de blob do cache baseado em disco do SharePoint  | Cache baseado em disco do SharePoint  | 
| Número total de compactações de cache do cache baseado em disco do SharePoint | Cache baseado em disco do SharePoint  | 
| Solicitação de tempo de execução/página do SharePoint Foundation | SharePoint Foundation | 
| Cache de publicação do SharePoint Liberações de cache de publicações/segundo | Cache de publicações do SharePoint | 
| Autenticações Kerberos de estatísticas abrangendo todo o sistema de segurança | Estatísticas abrangendo todo o sistema de segurança | 
| Autenticações NTLM de estatísticas abrangendo todo o sistema de segurança | Estatísticas abrangendo todo o sistema de segurança | 
| SQLServer: gravações/s encaminhadas dos métodos de acesso |  SQLServer: métodos de acesso  | 
| SQLServer: verificações completas dos métodos de acesso/s |  SQLServer: métodos de acesso  | 
| SQLServer: divisões/s da página de métodos de acesso |  SQLServer: métodos de acesso  | 
| SQLServer: proporção de acertos do cache do buffer do gerenciador de buffer |  SQLServer: gerenciador de buffer  | 
| SQLServer: expectativa de vida da página do gerenciador de buffer |  SQLServer: gerenciador de buffer  | 
| SQLServer: bytes de arquivo de réplica de banco de dados recebidos por segundo | SQLServer: réplica de banco de dados | 
| SQLServer: bytes de log de réplica de banco de dados recebidos por segundo | SQLServer: réplica de banco de dados | 
| SQLServer: log de réplica do banco de dados restante para desfazer | SQLServer: réplica de banco de dados | 
| SQLServer: fila de envio de log de réplica de banco de dados | SQLServer: réplica de banco de dados | 
| SQLServer: transações de gravação espelhada de réplica de banco de dados por segundo | SQLServer: réplica de banco de dados | 
| SQLServer: fila de recuperação de réplica de banco de dados | SQLServer: réplica de banco de dados | 
| SQLServer: bytes para refazer réplica do banco de dados restante | SQLServer: réplica de banco de dados | 
| SQLServer: bytes da réplica de banco de dados refeita por segundo | SQLServer: réplica de banco de dados | 
| SQLServer: log total da réplica de banco de dados que deve ser desfeita | SQLServer: réplica de banco de dados | 
| SQLServer: atraso da transação de réplica de banco de dados | SQLServer: réplica de banco de dados | 
| SQLServer: processos de estatísticas gerais bloqueados |  SQLServer: estatísticas gerais  | 
| SQLServer: conexões de usuário de estatísticas gerais | SQLServer: estatísticas gerais | 
| SQLServer: trava o tempo médio de espera (ms)  | SQLServer: travas  | 
| SQLServer: bloqueia o tempo médio de espera (ms)  | SQLServer: bloqueios  | 
| SQLServer: bloqueia os tempos limite de bloqueio/s  | SQLServer: bloqueios  | 
| SQLServer: bloqueia a espera de bloqueio/s  | SQLServer: bloqueios  | 
| SQLServer: bloqueia o número de bloqueios/s  | SQLServer: bloqueios  | 
| SQLServer: gerenciador de memória concessão de memória pendente  | SQLServer: gerenciador de memória  | 
| SQLServer: solicitações em lote/s de estatísticas do SQL | SQLServer: estatísticas de SQL | 
| SQLServer: compilações do SQL/s de estatísticas do SQL | SQLServer: estatísticas de SQL | 
| SQLServer: novas compilações do SQL/s de estatísticas do SQL |  SQLServer: estatísticas de SQL  | 
| Tamanho da fila do processador do sistema |  Sistema  | 
| Conexões TCPv4 estabelecidas | TCPv4 | 
| Conexões TCPv6 estabelecidas | TCPv6 | 
| Descargas de cache de arquivos W3SVC\$1W3WP  | W3SVC\$1W3WP  | 
| Erros de cache de arquivos W3SVC\$1W3WP  | W3SVC\$1W3WP  | 
| Solicitações W3SVC\$1W3WP/s  | W3SVC\$1W3WP  | 
| Descargas de cache URI W3SVC\$1W3WP  | W3SVC\$1W3WP  | 
| Erros de cache URI W3SVC\$1W3WP  | W3SVC\$1W3WP  | 
| Bytes de serviço web recebidos por segundo |  Serviço web  | 
| Bytes de serviço web enviados por segundo |  Serviço web  | 
|  Tentativas de conexão de web service/s   |  Serviço web  | 
| Conexões atuais de serviços web  |  Serviço web  | 
| Solicitações para obter web service/s  |  Serviço web  | 
| Solicitações para publicar web service/s  |  Serviço web  | 

# Usar a visualização de integridade de recursos no console do CloudWatch
<a name="servicelens_resource_health"></a>

É possível usar a visualização de integridade de recursos para detectar, gerenciar e exibir automaticamente a integridade e a performance dos hosts em suas aplicações em uma única visualização. Você pode visualizar a integridade de seus hosts por uma dimensão de performance, como CPU ou memória, e cortar e cortar centenas de hosts em uma única visualização usando filtros. É possível filtrar por etiquetas ou por casos de uso, como hosts no mesmo grupo do Auto Scaling ou hosts que usam o mesmo balanceador de carga. 

## Pré-requisitos
<a name="servicelens_resource_health-prerequisites"></a>

Para garantir que o benefício completo do modo de integridade do recurso, verifique se você conta com os pré-requisitos a seguir.
+ Para ver a utilização da memória de seus hosts e usá-la como um filtro, é necessário instalar o agente do CloudWatch em seus hosts e configurá-lo para enviar uma métrica de memória ao CloudWatch no namespace `CWAgent`. Nas instâncias do Linux e do macOS, o agente do CloudWatch deverá enviar a métrica `mem_used_percent`. Em instâncias do Windows, o agente deverá enviar a métrica `Memory % Committed Bytes In Use`. Essas métricas serão incluídas se você usar o assistente para criar o arquivo de configuração do agente do CloudWatch e selecionar qualquer um dos conjuntos de métricas predefinidos. As métricas coletadas pelo agente do CloudWatch são cobradas como métricas personalizadas. Para obter mais informações, consulte [Instalação do atendente do CloudWatch](install-CloudWatch-Agent-on-EC2-Instance.md). 

  Ao usar o agente do CloudWatch para coletar essas métricas de memória a serem usadas com a visualização de integridade de recursos, você deverá incluir a seção a seguir no arquivo de configuração do agente do CloudWatch. Esta seção contém as configurações de dimensão padrão e é criada por padrão; Portanto, não altere nenhuma parte desta seção para nada diferente do que é demonstrado no exemplo a seguir.

  ```
  "append_dimensions": {
    "ImageId": "${aws:ImageId}",
    "InstanceId": "${aws:InstanceId}",
    "InstanceType": "${aws:InstanceType}",
    "AutoScalingGroupName": "${aws:AutoScalingGroupName}"
  },
  ```
+  Para visualizar todas as informações disponíveis no modo de integridade do recurso, é necessário estar conectado a uma conta que tenha as permissões a seguir. Caso sua sessão tenha menos permissões, você poderá continuar utilizando a visualização de integridade de recursos, mas alguns dados de performance não estarão visíveis.

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Action": [
                  "autoscaling:Describe*",
                  "cloudwatch:Describe*",
                  "cloudwatch:Describe*",
                  "cloudwatch:Get*",
                  "cloudwatch:List*",
                  "logs:Get*",
                  "logs:Describe*",
                  "sns:Get*",
                  "sns:List*",
                  "ec2:DescribeInstances",
                  "ec2:DescribeInstanceStatus",
                  "ec2:DescribeRegions"
              ],
              "Effect": "Allow",
              "Resource": "*"
          }
      ]
  }
  ```

------

**Para visualizar a integridade do recurso em sua conta**

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

1. No painel de navegação, selecione **Insights**, **Integridade de recurso do EC2**.

   A página de integridade do recurso é exibida, mostrando um quadrado para cada host de sua conta. Cada quadrado recebe uma cor baseada no status atual desse host, de acordo com a configuração em **Color by** (Colorir por). Os quadrados de host com um símbolo de alarme atualmente têm um ou mais alarmes no estado ALARM.

   É possível ver até 500 hosts em uma única visualização. Caso tenha mais hosts em sua conta, use as configurações de filtro da etapa 6 deste procedimento.

1. Para alterar os critérios que serão usados para exibir a integridade de cada host, escolha uma configuração para **Color by** (Colorir por). Você pode escolher **CPU Utilization** (Utilização da CPU), **Memory Utilization** (Utilização da memória) ou **Status check** (Verificação de status). As métricas de utilização de memória estão disponíveis apenas para hosts que executam o agente do CloudWatch e o têm configurado para coletar métricas de memória e enviá-las ao namespace `CWAgent` padrão. Para obter mais informações, consulte [Coleta de métricas, logs e rastreamentos usando o agente do CloudWatch](Install-CloudWatch-Agent.md).

1. Para alterar os limites e as cores que são usadas para os indicadores de integridade na grade, escolha o ícone de engrenagem acima da grade.

1. Para alternar se os alarmes serão exibidos na grade do host, escolha ou desmarque **Show alarms across all metrics** (Exibir alarmes em todas as métricas).

1. Para dividir os hosts no mapa em grupos, escolha um critério de agrupamento em **Group by** (Agrupar por).

1. Para restringir a visulização para menos hosts, escolha um critério de filtro para **Filter by** (Filtrar por). É possível filtrar por etiquetas e por agrupamentos de recursos, como grupo do Auto Scaling, tipo de instância, grupo de segurança etc.

1. Para classificar hosts, escolha um critério de classificação em **Sort by** (Classificar por). É possível classificar por resultados da verificação de status, estado da instância, utilização da CPU ou memória e o número de alarmes que estão no estado ALARM.

1. Para ver mais informações sobre um host, escolha o quadrado que representa esse host. É exibido um painel pop-up. Para então aprofundar as informações sobre esse host, escolha **View dashboard** (Visualizar painel) ou **View on list** (Visualizar na lista).