

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Configurer l'ingestion de métriques depuis Amazon ECS à l'aide de AWS Distro for Open Telemetry
<a name="AMP-onboard-ingest-metrics-OpenTelemetry-ECS"></a>

Cette section explique comment collecter des métriques depuis Amazon Elastic Container Service (Amazon ECS) et les intégrer dans Amazon Managed Service for Prometheus à l' AWS aide de Distro for Open Telemetry (ADOT). Elle décrit également comment visualiser vos métriques dans Amazon Managed Grafana.

## Conditions préalables
<a name="AMP-onboard-ingest-metrics-OpenTelemetry-ECS-prereq"></a>

**Important**  
Avant de commencer, vous devez disposer d’un environnement Amazon ECS sur un cluster AWS Fargate avec des paramètres par défaut, d’un espace de travail Amazon Managed Service for Prometheus et d’un espace de travail Amazon Managed Grafana. Nous supposons que vous connaissez les charges de travail liées aux conteneurs, Amazon Managed Service for Prometheus et Amazon Managed Grafana.

Pour plus d'informations, consultez les liens suivants :
+ Pour plus d’informations sur la création d’un environnement Amazon ECS dans un cluster Fargate avec des paramètres par défaut, consultez la section [Création d’un cluster](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create_cluster.html) dans le *Guide du développeur Amazon ECS*.
+ Pour plus d’informations sur la création d’un espace de travail Amazon Managed Service for Prometheus, consultez la section [Création d’un espace de travail](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-create-workspace.html) dans le *Guide de l’utilisateur Amazon Managed Service for Prometheus*.
+ Pour plus d’informations sur la création d’un espace de travail Amazon Managed Grafana, consultez la section [Création d’un espace de travail](https://docs.aws.amazon.com/grafana/latest/userguide/AMG-create-workspace.html) dans le *Guide de l’utilisateur Amazon Managed Grafana*.

## Étape 1 : définir une image de conteneur de collecteur ADOT personnalisée
<a name="AMP-onboard-ingest-metrics-OpenTelemetry-ECS-create"></a>

Utilisez le fichier de configuration suivant comme modèle pour définir votre propre image de conteneur de collecteur ADOT. Remplacez *my-remote-URL* et *my-region* par vos `region` valeurs `endpoint` et. Enregistrez la configuration dans un fichier appelé *adot-config.yaml*.

**Note**  
Cette configuration utilise l’extension `sigv4auth` pour authentifier les appels à Amazon Managed Service for Prometheus. Pour plus d'informations sur la configuration`sigv4auth`, voir [Authenticator - Sigv4 activé](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/extension/sigv4authextension). 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]
```

## Étape 2 : Transférez l'image de votre conteneur ADOT Collector vers un référentiel Amazon ECR
<a name="AMP-onboard-ingest-metrics-OpenTelemetry-ECS-push"></a>

Utilisez un fichier Dockerfile pour créer et envoyer votre image de conteneur à un référentiel Amazon Elastic Container Registry (ECR).

1. Créez le fichier Dockerfile pour copier et ajouter votre image de conteneur à l’image Docker 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. créer un référentiel Amazon ECR ;

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

1. Créez voter image de conteneur.

   ```
   # build ADOT collector image:
   docker build -t $COLLECTOR_REPOSITORY:ecs .
   ```
**Note**  
Cela suppose que vous créez votre conteneur dans le même environnement que celui dans lequel il sera exécuté. Dans le cas contraire, vous devrez peut-être utiliser le paramètre `--platform` lors de la création de l’image.

1. Connectez-vous au référentiel Amazon ECR. Remplacez *my-region* par votre `region` valeur.

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

1. Envoyez votre image de conteneur.

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

## Étape 3 : créer une définition de tâche Amazon ECS pour supprimer Amazon Managed Service for Prometheus
<a name="AMP-onboard-ingest-metrics-OpenTelemetry-ECS-task"></a>

Créez une définition de tâche Amazon ECS pour la collecte dans Amazon Managed Service for Prometheus. Votre définition de tâche doit inclure un conteneur nommé `adot-collector` et un conteneur nommé`prometheus`. `prometheus` génère des métriques et `adot-collector` effectue la collecte dans `prometheus`.

**Note**  
Amazon Managed Service for Prometheus fonctionne en tant que service et collecte des métriques à partir de conteneurs. Dans ce cas, les conteneurs exécutent Prometheus localement, en mode Agent, et envoient les métriques locales à Amazon Managed Service for Prometheus.

**Exemple : définition de tâche**

Voici un exemple de définition de tâche. Vous pouvez utiliser cet exemple comme modèle pour créer votre propre définition de tâche. Remplacez la valeur `image` de `adot-collector` par l’URL du référentiel et la balise d’image (`$COLLECTOR_REPOSITORY:ecs`). Remplacez les valeurs `region` de `adot-collector` et `prometheus` par vos valeurs `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"
}
```

## Étape 4 : autorisez votre tâche à accéder à Amazon Managed Service for Prometheus
<a name="AMP-onboard-ingest-metrics-OpenTelemetry-ECS-attach"></a>

Pour envoyer les métriques récupérées à Amazon Managed Service for Prometheus, votre tâche Amazon ECS doit disposer des autorisations appropriées pour appeler AWS les opérations d'API à votre place. Vous devez créer un rôle IAM pour vos tâches et y attacher la politique `AmazonPrometheusRemoteWriteAccess`. Pour plus d’informations sur la création de ce rôle et l’attachement de cette politique, consultez la section [Création d’un rôle et d’une politique IAM pour vos tâches](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html#create_task_iam_policy_and_role).

Une fois que vous avez attaché `AmazonPrometheusRemoteWriteAccess` à votre rôle IAM et que vous l’avez utilisé pour vos tâches, Amazon ECS peut envoyer vos métriques collectées à Amazon Managed Service for Prometheus.

## Étape 5 : Visualisez vos statistiques dans Amazon Managed Grafana
<a name="AMP-onboard-ingest-metrics-OpenTelemetry-ECS-vis"></a>

**Important**  
Avant de commencer, vous devez exécuter une tâche Fargate sur votre définition de tâche Amazon ECS. Sinon, Amazon Managed Service for Prometheus ne pourra pas utiliser vos métriques.

1. Dans le volet de navigation de votre espace de travail Amazon Managed Grafana, sélectionnez **Sources de données** sous l' AWS icône.

1. Dans l’onglet **Sources de données**, pour **Service**, sélectionnez **Amazon Managed Service for Prometheus** et choisissez votre **région par défaut.**

1. Choisissez **Add data source**.

1. Utilisez les préfixes `ecs` et `prometheus` pour interroger et visualiser vos métriques.