

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Configure a ingestão de métricas do Amazon ECS usando o AWS Distro for Open Telemetry
<a name="AMP-onboard-ingest-metrics-OpenTelemetry-ECS"></a>

Esta seção explica como coletar métricas do Amazon Elastic Container Service (Amazon ECS) e inseri-las no Amazon Managed Service for AWS Prometheus usando o Distro for Open Telemetry (ADOT). Também descreve como visualizar suas métricas no Amazon Managed Grafana.

## Pré-requisitos
<a name="AMP-onboard-ingest-metrics-OpenTelemetry-ECS-prereq"></a>

**Importante**  
Antes de começar, é preciso ter um ambiente Amazon ECS em um cluster do AWS Fargate com configurações padrão, um espaço de trabalho do Amazon Managed Service for Prometheus e um espaço de trabalho do Amazon Managed Grafana. Presumimos que você esteja familiarizado com as workloads de contêineres, o Amazon Managed Service for Prometheus e o Amazon Managed Grafana.

Para obter mais informações, consulte os seguintes links:
+ Para obter informações sobre como criar um ambiente Amazon ECS em um cluster Fargate com configurações padrão, consulte [Criação de um cluster](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create_cluster.html) no *Guia do desenvolvedor do Amazon ECS*.
+ Para obter informações sobre como criar um espaço de trabalho do Amazon Managed Service for Prometheus, consulte [Criação de um espaço de trabalho](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-create-workspace.html) no *Guia do usuário do Amazon Managed Service for Prometheus*.
+ Para obter informações sobre como criar um espaço de trabalho do Amazon Managed Grafana, consulte [Criação de um espaço de trabalho](https://docs.aws.amazon.com/grafana/latest/userguide/AMG-create-workspace.html) no *Guia do usuário do Amazon Managed Grafana*.

## Etapa 1: definir uma imagem personalizada de contêiner do coletor do ADOT
<a name="AMP-onboard-ingest-metrics-OpenTelemetry-ECS-create"></a>

Use o arquivo de configuração a seguir como modelo para definir sua própria imagem de contêiner do coletor ADOT. *my-region*Substitua *my-remote-URL* e por seus `endpoint` `region` valores. Salve a configuração em um arquivo chamado *adot-config.yaml*.

**nota**  
Essa configuração usa a extensão `sigv4auth` para autenticar chamadas para o Amazon Managed Service for Prometheus. Para obter mais informações sobre a configuração`sigv4auth`, consulte [Autenticador - Sigv4](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/extension/sigv4authextension) ativado. GitHub

```
receivers:
  prometheus:
    config:
      global:
        scrape_interval: 15s
        scrape_timeout: 10s
      scrape_configs:
      - job_name: "prometheus"
        static_configs:
        - targets: [ 0.0.0.0:9090 ]
  awsecscontainermetrics:
    collection_interval: 10s
processors:
  filter:
    metrics:
      include:
        match_type: strict
        metric_names:
          - ecs.task.memory.utilized
          - ecs.task.memory.reserved
          - ecs.task.cpu.utilized
          - ecs.task.cpu.reserved
          - ecs.task.network.rate.rx
          - ecs.task.network.rate.tx
          - ecs.task.storage.read_bytes
          - ecs.task.storage.write_bytes
exporters:
  prometheusremotewrite:
    endpoint: my-remote-URL
    auth:
      authenticator: sigv4auth
  logging:
    loglevel: info
extensions:
  health_check:
  pprof:
    endpoint: :1888
  zpages:
    endpoint: :55679
  sigv4auth:
    region: my-region
    service: aps
service:
  extensions: [pprof, zpages, health_check, sigv4auth]
  pipelines:
    metrics:
      receivers: [prometheus]
      exporters: [logging, prometheusremotewrite]
    metrics/ecs:
      receivers: [awsecscontainermetrics]
      processors: [filter]
      exporters: [logging, prometheusremotewrite]
```

## Etapa 2: enviar sua imagem do contêiner do coletor do ADOT para um repositório do Amazon ECR
<a name="AMP-onboard-ingest-metrics-OpenTelemetry-ECS-push"></a>

Use um Dockerfile para criar e enviar sua imagem de contêiner para um repositório do Amazon Elastic Container Registry (ECR).

1. Crie o Dockerfile para copiar e adicionar sua imagem de contêiner à imagem do OTEL Docker.

   ```
   FROM public.ecr.aws/aws-observability/aws-otel-collector:latest
   COPY adot-config.yaml /etc/ecs/otel-config.yaml
   CMD ["--config=/etc/ecs/otel-config.yaml"]
   ```

1. Crie um repositório do Amazon ECR.

   ```
   # create repo:
   COLLECTOR_REPOSITORY=$(aws ecr create-repository --repository aws-otel-collector \ 
                                  --query repository.repositoryUri --output text)
   ```

1. Crie sua imagem de contêiner.

   ```
   # build ADOT collector image:
   docker build -t $COLLECTOR_REPOSITORY:ecs .
   ```
**nota**  
Isso pressupõe que você esteja criando seu contêiner no mesmo ambiente em que ele será executado. Caso contrário, talvez seja necessário usar o parâmetro `--platform` ao criar a imagem.

1. Faça login no repositório do Amazon ECR. *my-region*Substitua pelo seu `region` valor.

   ```
   # sign in to repo:
   aws ecr get-login-password --region my-region | \
           docker login --username AWS --password-stdin $COLLECTOR_REPOSITORY
   ```

1. Envie a imagem do seu contêiner.

   ```
   # push ADOT collector image:
   docker push $COLLECTOR_REPOSITORY:ecs
   ```

## Etapa 3: criar uma definição de tarefa do Amazon ECS para extrair o Amazon Managed Service for Prometheus
<a name="AMP-onboard-ingest-metrics-OpenTelemetry-ECS-task"></a>

Crie uma definição de tarefa do Amazon ECS para coletar o Amazon Managed Service for Prometheus. Sua definição de tarefa deve incluir um contêiner chamado `adot-collector` e um contêiner chamado`prometheus`. O `prometheus` gera métricas e o `adot-collector` coleta `prometheus`.

**nota**  
O Amazon Managed Service for Prometheus é executado como um serviço, coletando métricas dos contêineres. Nesse caso, os contêineres executam o Prometheus localmente, no modo Atendente, que envia as métricas locais para o Amazon Managed Service for Prometheus.

**Exemplo: Definição de tarefa**

Veja a seguir um exemplo da possível aparência da definição de tarefa. Você pode usar esse exemplo como modelo para criar sua própria definição de tarefa. Substitua o valor `image` de `adot-collector` pelo URL do seu repositório e pela tag da imagem (`$COLLECTOR_REPOSITORY:ecs`). Substitua os valores `region` de `adot-collector` e `prometheus` por seus valores `region`.

```
{
  "family": "adot-prom",
  "networkMode": "awsvpc",
  "containerDefinitions": [
    {
      "name": "adot-collector",
      "image": "account_id.dkr.ecr.region.amazonaws.com/image-tag",
      "essential": true,
      "logConfiguration": {
        "logDriver": "awslogs",
        "options": {
          "awslogs-group": "/ecs/ecs-adot-collector",
          "awslogs-region": "my-region",
          "awslogs-stream-prefix": "ecs",
          "awslogs-create-group": "True"
        }
      }
    },
    {
      "name": "prometheus",
      "image": "prom/prometheus:main",
      "logConfiguration": {
        "logDriver": "awslogs",
        "options": {
          "awslogs-group": "/ecs/ecs-prom",
          "awslogs-region": "my-region",
          "awslogs-stream-prefix": "ecs",
          "awslogs-create-group": "True"
        }
      }
    }
  ],
  "requiresCompatibilities": [
    "FARGATE"
  ],
  "cpu": "1024"
}
```

## Etapa 4: conceder à sua tarefa permissões para acessar o Amazon Managed Service for Prometheus
<a name="AMP-onboard-ingest-metrics-OpenTelemetry-ECS-attach"></a>

Para enviar as métricas coletadas para o Amazon Managed Service for Prometheus, sua tarefa do Amazon ECS deve ter as permissões corretas para chamar as operações de API para você. AWS Você deve criar um perfil do IAM para as suas tarefas e anexar a política do `AmazonPrometheusRemoteWriteAccess` a ele. Para obter mais informações sobre como criar esse perfil e anexar a política, consulte [Criação de um perfil e política do IAM para as suas tarefas](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html#create_task_iam_policy_and_role).

Depois de anexar `AmazonPrometheusRemoteWriteAccess` ao seu perfil do IAM e usar esse perfil para suas tarefas, o Amazon ECS pode enviar suas métricas coletadas para o Amazon Managed Service for Prometheus.

## Etapa 5: visualizar suas métricas no Amazon Managed Grafana
<a name="AMP-onboard-ingest-metrics-OpenTelemetry-ECS-vis"></a>

**Importante**  
Antes de começar, você deve executar uma tarefa do Fargate na definição de tarefa do Amazon ECS. Caso contrário, o Amazon Managed Service for Prometheus não poderá consumir suas métricas.

1. No painel de navegação do seu espaço de trabalho Amazon Managed Grafana, **escolha Fontes de dados abaixo** do ícone. AWS 

1. Na guia **Fontes de dados**, em **Serviço**, selecione **Amazon Managed Service for Prometheus** e escolha a **Região padrão**.

1. Escolha **Adicionar fonte de dados**.

1. Use os prefixos `ecs` e `prometheus` para consultar e visualizar suas métricas.