Configurer l'ingestion de métriques depuis Amazon à l'ECSaide de AWS Distro for Open Telemetry - Amazon Managed Service for Prometheus

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 à l'ECSaide de AWS Distro for Open Telemetry

Cette section explique comment collecter des métriques depuis Amazon Elastic Container Service (AmazonECS) 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.

Prérequis

Important

Avant de commencer, vous devez disposer d'un ECS environnement Amazon sur un AWS Fargate cluster 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 ECS environnement Amazon sur un cluster Fargate avec des paramètres par défaut, consultez la section Création d'un cluster dans le manuel Amazon ECS Developer Guide.

  • 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 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 dans le Guide de l’utilisateur Amazon Managed Grafana.

Étape 1 : définition d'une image de conteneur de ADOT collection personnalisée

Utilisez le fichier de configuration suivant comme modèle pour définir votre propre image de conteneur de ADOT collection. Remplacez my-remote-URL and my-region avec vos region valeurs endpoint et vos valeurs. 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 configurationsigv4auth, voir Authenticator - Sigv4 activé. 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érer l'image de votre conteneur de ADOT collection vers un ECR référentiel Amazon

Utilisez un Dockerfile pour créer et transférer votre image de conteneur vers un référentiel Amazon Elastic Container Registry (ECR).

  1. Créez le Dockerfile pour copier et ajouter votre image de conteneur à l'image 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"]
  2. Créez un ECR référentiel Amazon.

    # create repo: COLLECTOR_REPOSITORY=$(aws ecr create-repository --repository aws-otel-collector \ --query repository.repositoryUri --output text)
  3. 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.

  4. Connectez-vous au ECR référentiel Amazon. Remplacez my-region avec votre region valeur.

    # sign in to repo: aws ecr get-login-password --region my-region | \ docker login --username AWS --password-stdin $COLLECTOR_REPOSITORY
  5. Envoyez votre image de conteneur.

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

Étape 3 : créer une définition de ECS tâche Amazon pour supprimer Amazon Managed Service for Prometheus

Créez une définition de ECS tâche Amazon pour supprimer 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 image valeur de adot-collector par votre référentiel URL et votre 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

Pour envoyer les métriques récupérées à Amazon Managed Service for Prometheus, votre tâche ECS Amazon doit disposer des autorisations appropriées pour effectuer les opérations à votre place. AWS API Vous devez créer un IAM rôle pour vos tâches et y associer la AmazonPrometheusRemoteWriteAccess politique. Pour plus d'informations sur la création de ce rôle et l'attachement de la politique, consultez la section Création d'un IAM rôle et d'une stratégie pour vos tâches.

Une fois que vous vous êtes attaché AmazonPrometheusRemoteWriteAccess à votre IAM rôle et que vous l'avez utilisé pour vos tâches, Amazon ECS peut envoyer vos statistiques supprimées à Amazon Managed Service for Prometheus.

Étape 5 : Visualisez vos statistiques dans Amazon Managed Grafana

Important

Avant de commencer, vous devez exécuter une tâche Fargate sur votre définition de tâche AmazonECS. 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.

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

  3. Choisissez Add data source.

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