

# Coletar métricas e rastreamentos com o OpenTelemetry
<a name="CloudWatch-Agent-OpenTelemetry-metrics"></a>

 Você pode coletar métricas e rastreamentos das aplicações ou serviços usando o agente do CloudWatch com o OpenTelemetry Protocol (OTLP), que é uma solução de código aberto popular. Você pode usar qualquer SDK do OpenTelemetry para enviar métricas e rastreamentos ao agente do CloudWatch. Para obter mais informações sobre os SDKs do OpenTelemetry disponíveis, consulte [as APIs e os SDKs de linguagem compatível com o OpenTelemetry](https://opentelemetry.io/docs/languages/).

Para coletar métricas e rastreamentos do OpenTelemetry, adicione uma seção `otlp` ao arquivo de configuração do agente do CloudWatch. A seção tem os seguintes campos:
+ `grpc_endpoint`: opcional. Especifica o endereço que o agente do CloudWatch deve usar para receber rastreamentos e métricas do OpenTelemetry enviados usando chamadas de procedimento remoto gRPC. O formato de é `ip:port`. Esse endereço deve corresponder ao endereço definido para o exportador de gRPC no SDK do OpenTelemetry. Se você omitir esse campo, o padrão de `127.0.0.1:4317` será usado.
+ `http_endpoint`: opcional. Especifica o endereço que o agente do CloudWatch deve usar para receber rastreamentos e métricas de do OpenTelemetry enviados por HTTP. O formato de é `ip:port`. Esse endereço deve corresponder ao endereço definido para o exportador de HTTP no SDK do OpenTelemetry. Se você omitir esse campo, o padrão de `127.0.0.1:4318` será usado.
+ `tls`: opcional. Especifica que o servidor deve ser configurado com TLS.
  + `cert_file`: caminho para o certificado TLS a ser usado nas conexões necessárias do TLS.
  + `key_file`: caminho para a chave TLS a ser usada nas conexões necessárias do TLS.

A seção `otlp` pode ser colocada em várias seções no arquivo de configuração do agente do CloudWatch, dependendo de como e para onde você deseja enviar as métricas e os rastreamentos.

**Importante**  
Cada seção `otlp` necessita de um endpoint e uma porta exclusivos. Para obter informações detalhadas sobre como dividir os endpoints de métricas e rastreamentos, consulte [Configuração do OTLP Exporter](https://opentelemetry.io/docs/languages/sdk-configuration/otlp-exporter/), na documentação do OpenTelemetry SDK.

Para enviar métricas para o CloudWatch ou o Amazon Managed Service for Prometheus, adicione a seção `otlp` em `metrics_collected` na seção `metrics`. Para obter mais informações sobre o envio de métricas para destinos diferentes, consulte [Criar ou editar manualmente o arquivo de configuração do atendente do CloudWatch](CloudWatch-Agent-Configuration-File-Details.md). O exemplo a seguir mostra uma configuração que envia métricas ao CloudWatch:

**nota**  
 Se você estiver executando o agente em ambientes com contêineres e enviando telemetria proveniente de forma externa à rede do contêiner do agente, certifique-se de especificar o endpoint como `0.0.0.0` em vez do endpoint padrão `127.0.0.1`.

```
{
  "metrics": {
    "metrics_collected": {
      "otlp": {
        "grpc_endpoint": "127.0.0.1:4317",
        "http_endpoint": "127.0.0.1:4318"
      }
    }
  }
}
```

Para enviar métricas para o Amazon CloudWatch Logs usando o formato de métrica incorporada (EMF), adicione a seção `otlp` em `metrics_collected` na seção `logs`. Isso envia os logs EMF por padrão para o grupo de logs `/aws/cwagent` e um fluxo de logs gerado. As métricas são extraídas no namespace `CWAgent` por padrão. O exemplo a seguir mostra uma configuração que envia métricas de logs EMF ao CloudWatch Logs:

```
{
  "logs": {
    "metrics_collected": {
      "otlp": {
        "grpc_endpoint": "127.0.0.1:4317",
        "http_endpoint": "127.0.0.1:4318"
      }
    }
  }
}
```

Para enviar rastreamentos para o AWS X-Ray, adicione a seção `otlp` em `traces_collected` na seção `traces`. O exemplo a seguir mostra uma configuração que envia rastreamentos ao X-Ray:

```
{
  "traces": {
    "traces_collected": {
      "otlp": {
        "grpc_endpoint": "127.0.0.1:4317",
        "http_endpoint": "127.0.0.1:4318"
      }
    }
  }
}
```