

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Configura l'inserimento dei parametri da Amazon ECS utilizzando AWS Distro for Open Telemetry
<a name="AMP-onboard-ingest-metrics-OpenTelemetry-ECS"></a>

Questa sezione spiega come raccogliere metriche da Amazon Elastic Container Service (Amazon ECS) e inserirle in Amazon Managed Service for Prometheus utilizzando Distro for Open Telemetry (ADOT). AWS Descrive anche come visualizzare i tuoi parametri in Grafana gestito da Amazon.

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

**Importante**  
Prima di iniziare, devi disporre di un ambiente Amazon ECS su un AWS Fargate cluster con impostazioni predefinite, un'area di lavoro del servizio gestito da Amazon per Prometheus e un'area di lavoro Grafana gestito da Amazon. Partiamo dal presupposto che tu abbia familiarità con i carichi di lavoro dei container, il servizio gestito da Amazon per Prometheus e Grafana gestito da Amazon.

Per ulteriori informazioni, consulta i collegamenti seguenti:
+ Per informazioni su come creare un ambiente Amazon ECS su un cluster Fargate con impostazioni predefinite, consulta [Creazione di un cluster](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create_cluster.html) nella *Guida per lo sviluppatore Amazon ECS*.
+ Per informazioni su come creare un'area di lavoro del servizio gestito da Amazon per Prometheus, consulta [Creazione di un'area di lavoro](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-create-workspace.html) nella *Guida per l'utente del servizio gestito da Amazon per Prometheus*.
+ Per informazioni su come creare un'area di lavoro Grafana gestito da Amazon, consulta [Creazione di un'area di lavoro](https://docs.aws.amazon.com/grafana/latest/userguide/AMG-create-workspace.html) nella *Guida per l'utente di Grafana gestito da Amazon*.

## Fase 1: definire un'immagine personalizzata del contenitore ADOT Collector
<a name="AMP-onboard-ingest-metrics-OpenTelemetry-ECS-create"></a>

Utilizza il seguente file di configurazione come modello per definire la tua immagine del conteiner ADOT Collector. Sostituisci {{my-remote-URL}} e {{my-region}} con i tuoi valori`endpoint`. `region` Salva la configurazione in un file denominato *adot-config.yaml*.

**Nota**  
Questa configurazione utilizza l'`sigv4auth`estensione per autenticare le chiamate al servizio gestito da Amazon per Prometheus. Per ulteriori informazioni sulla configurazione`sigv4auth`, consulta [Authenticator -](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/extension/sigv4authextension) Sigv4 on. 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]
```

## Fase 2: invia l'immagine del contenitore ADOT Collector a un repository Amazon ECR
<a name="AMP-onboard-ingest-metrics-OpenTelemetry-ECS-push"></a>

Usa un Dockerfile per creare e inviare l'immagine del container a un repository Amazon Elastic Container Registry (ECR).

1. Crea il Dockerfile per copiare e aggiungere l'immagine del conteiner all'immagine Docker di OTEL.

   ```
   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. Crea un repository Amazon ECR.

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

1. Crea la tua immagine di container.

   ```
   # build ADOT collector image:
   docker build -t $COLLECTOR_REPOSITORY:ecs .
   ```
**Nota**  
Ciò presuppone che tu stia costruendo il tuo conteiner nello stesso ambiente in cui verrà eseguito. In caso contrario, potrebbe essere necessario utilizzare il `--platform` parametro durante la creazione dell'immagine.

1. Accedi al repository Amazon ECR. Sostituisci con il tuo valore{{my-region}}. `region`

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

1. Invia l'immagine del conteiner.

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

## Passaggio 3: creare una definizione di attività Amazon ECS per eseguire lo scraping di Amazon Managed Service for Prometheus
<a name="AMP-onboard-ingest-metrics-OpenTelemetry-ECS-task"></a>

Crea una definizione di attività Amazon ECS per eseguire l'importazione del servizio gestito da Amazon per Prometheus. La definizione dell'attività deve includere un conteiner denominato `adot-collector` e un conteiner denominato`prometheus`. `prometheus` genera parametri e `adot-collector` scrape `prometheus`.

**Nota**  
Il servizio gestito da Amazon per Prometheus funziona come servizio, raccogliendo parametri dai container. I conteiner in questo caso eseguono Prometheus localmente, in modalità Agente, che invia i parametri locali al servizio gestito da Amazon per Prometheus.

**Esempio: definizione di attività**

Di seguito è riportato un esempio di come potrebbe presentarsi la definizione dell'attività. È possibile utilizzare questo esempio come modello per creare la propria definizione di attività. Sostituisci il `image` valore di `adot-collector` con l'URL del repository e il tag dell'immagine (`$COLLECTOR_REPOSITORY:ecs`). Sostituisci i valori di `region` di `adot-collector` e `prometheus` con i tuoi valori `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"
}
```

## Passaggio 4: autorizza la tua attività ad accedere ad Amazon Managed Service for Prometheus
<a name="AMP-onboard-ingest-metrics-OpenTelemetry-ECS-attach"></a>

Per inviare i parametri eliminati ad Amazon Managed Service for Prometheus, la tua attività Amazon ECS deve disporre delle autorizzazioni corrette per chiamare le operazioni API per te. AWS Devi creare un ruolo IAM e una policy `AmazonPrometheusRemoteWriteAccess` per le tue attività. Per ulteriori informazioni sulla creazione di un ruolo per i processi, consulta [Creazione di un ruolo e una policy IAM per le attività ](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html#create_task_iam_policy_and_role).

Dopo esserti collegato `AmazonPrometheusRemoteWriteAccess` al tuo ruolo IAM e aver utilizzato quel ruolo per le tue attività, Amazon ECS può inviare i tuoi parametri eliminati al servizio gestito da Amazon per Prometheus.

## Fase 5: visualizza le tue metriche in Amazon Managed Grafana
<a name="AMP-onboard-ingest-metrics-OpenTelemetry-ECS-vis"></a>

**Importante**  
Prima di iniziare, devi eseguire un processo Fargate nella definizione dell'attività Amazon ECS. Altrimenti, il servizio gestito da Amazon per Prometheus non può utilizzare i tuoi parametri.

1. Dal pannello di navigazione del tuo spazio di lavoro Amazon Managed Grafana, scegli **Origini dati** sotto l'icona. AWS 

1. Nella scheda **Origini dati**, per **Servizio**, seleziona **Servizio gestito da Amazon per Prometheus** e scegli la tua **regione predefinita**.

1. Scegli **Aggiungi origine dati**.

1. Usa i prefissi `ecs` e `prometheus` per interrogare e visualizzare i tuoi parametri.