• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

Cette traduction automatique est fournie pour votre commodité.

En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.

Créer un problème

Monitorer ECS Fargate avec OpenTelemetry

Monitorez les tâches Amazon ECS s'exécutant sur AWS Fargate en déployant OpenTelemetry Collector Contrib en tant que conteneur sidecar. Ce guide complet vous accompagne dans la création de définitions de tâches, la configuration du collecteur et la mise en place du monitoring pour vos workloads ECS serverless.

Étapes d'installation

Suivez ces étapes pour configurer le monitoring de vos tâches ECS Fargate.

Avant de commencer

Assurez-vous que votre environnement respecte ces prérequis :

Stockez votre clé de licence New Relic

Enregistrez votre clé de licence en tant que paramètre du système Manager (SSM) pour stocker en toute sécurité les informations d'identification pour l'OpenTelemetry Collector :

bash
$
aws ssm put-parameter \
>
--name "/newrelic-infra/ecs/license-key" \
>
--type SecureString \
>
--description 'New Relic license key for ECS monitoring' \
>
--value "YOUR_NEW_RELIC_LICENSE_KEY"

Créer une politique IAM et un rôle d'exécution

Créez une politique IAM pour que vos conteneurs ECS puissent récupérer en toute sécurité la clé de licence New Relic :

bash
$
aws iam create-policy \
>
--policy-name "NewRelicSSMLicenseKeyReadAccess" \
>
--policy-document '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Action":["ssm:GetParameters"],"Resource":["arn:aws:ssm:*:*:parameter/newrelic-infra/ecs/license-key"]}]}' \
>
--description "Provides read access to the New Relic SSM license key parameter"

Créez un rôle IAM à utiliser comme rôle d’exécution de tâche :

bash
$
aws iam create-role \
>
--role-name "NewRelicECSTaskExecutionRole" \
>
--assume-role-policy-document '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"Service":"ecs-tasks.amazonaws.com"},"Action":"sts:AssumeRole"}]}' \
>
--description "ECS task execution role for New Relic infrastructure"

Joignez les politiques gérées requises au rôle :

bash
$
# Attach the standard ECS task execution policy
$
aws iam attach-role-policy \
>
--role-name "NewRelicECSTaskExecutionRole" \
>
--policy-arn "arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy"
$
$
# Attach the New Relic SSM license key read access policy
$
aws iam attach-role-policy \
>
--role-name "NewRelicECSTaskExecutionRole" \
>
--policy-arn "arn:aws:iam::$(aws sts get-caller-identity --query Account --output text):policy/NewRelicSSMLicenseKeyReadAccess"

Stocker la configuration du collecteur

Stockez la configuration du Collector OpenTelemetry dans le magasin de paramètres AWS Systems Manager afin de pouvoir gérer et mettre à jour les paramètres sans reconstruire les images de conteneurs :

bash
$
aws ssm put-parameter \
>
--name "/ecs/otel-collector/fargate-config" \
>
--type "String" \
>
--value "$(cat <<EOF
$
receivers:
$
awsecscontainermetrics:
$
collection_interval: <COLLECTION_INTERVAL>
$
$
processors:
$
metricstransform/containers:
$
transforms:
$
- include: container.cpu.utilized
$
action: insert
$
new_name: container.cpu.utilization
$
- include: container.memory.usage
$
action: insert
$
new_name: container.memory.usage.total
$
- include: container.storage.read_bytes
$
action: insert
$
new_name: container.blockio.io_service_bytes_recursive
$
operations:
$
- action: add_label
$
new_label: operation
$
new_value: read
$
- include: container.storage.write_bytes
$
action: insert
$
new_name: container.blockio.io_service_bytes_recursive
$
operations:
$
- action: add_label
$
new_label: operation
$
new_value: write
$
$
batch:
$
send_batch_size: <SEND_BATCH_SIZE>
$
timeout: <BATCH_TIMEOUT>
$
$
resource:
$
attributes:
$
- key: ClusterName
$
from_attribute: aws.ecs.cluster.name
$
action: insert
$
- key: ServiceName
$
from_attribute: aws.ecs.service.name
$
action: insert
$
- key: TaskId
$
from_attribute: aws.ecs.task.id
$
action: insert
$
- key: TaskDefinitionFamily
$
from_attribute: aws.ecs.task.family
$
action: insert
$
- key: LaunchType
$
from_attribute: aws.ecs.launch_type
$
action: insert
$
- key: cloud.platform
$
value: \"aws_ecs\"
$
action: upsert
$
- key: docker.host
$
from_attribute: aws.ecs.task.id
$
action: insert
$
- key: docker.imageName
$
from_attribute: container.image.name
$
action: insert
$
- key: docker.containerId
$
from_attribute: container.id
$
action: insert
$
- key: docker.state
$
from_attribute: aws.ecs.container.know_status
$
action: insert
$
$
$
exporters:
$
otlphttp:
$
endpoint: https://otlp.nr-data.net:443
$
headers:
$
api-key: \${NEW_RELIC_LICENSE_KEY}
$
$
debug:
$
verbosity: basic
$
$
service:
$
pipelines:
$
metrics/containers:
$
receivers: [awsecscontainermetrics]
$
processors: [metricstransform/containers, resource, batch]
$
exporters: [otlphttp, debug]
$
EOF
$
)"

Paramètres de configuration

Les paramètres suivants peuvent être personnalisés dans la configuration d'OpenTelemetry Collector :

paramètres

Description

<COLLECTION_INTERVAL>

L'intervalle en secondes pour collecter les métriques depuis le point de terminaison des métriques du conteneur ECS.

<MEMORY_LIMIT_MIB>

Limite de mémoire pour le Collector OpenTelemetry en MiB

<SEND_BATCH_SIZE>

Nombre de métriques à regrouper par lot avant l'envoi à New Relic

<BATCH_TIMEOUT>

Temps maximal d'attente avant l'envoi d'un batch

<RESOURCE_DETECTION_TIMEOUT>

Délai d'attente des processeurs de détection des ressources

Créer une définition de tâche

Créez une nouvelle définition de tâche ECS pour Fargate qui inclut le conteneur side-car OpenTelemetry Collector. Choisissez la définition de tâche appropriée pour votre plateforme de conteneurs :

Paramètres de définition de tâche

Les paramètres suivants peuvent être personnalisés dans votre définition de tâche ECS Fargate :

paramètres

Description

<TASK_CPU>

Unités CPU totales pour la tâche Fargate

<TASK_MEMORY>

Mémoire totale pour la tâche Fargate en MiB

<APP_CPU>

Unités de CPU allouées à votre conteneur d'application

<APP_MEMORY>

Mémoire allouée à votre conteneur d'application en MiB

<COLLECTOR_CPU>

Unités CPU allouées au Collector OpenTelemetry

<COLLECTOR_MEMORY_RESERVATION>

Réservation de mémoire pour le Collector OpenTelemetry en MiB

<APP_LOG_GROUP>

Nom du CloudWatch log groupe pour votre conteneur d'application

<COLLECTOR_LOG_GROUP>

Nom du groupe de logs CloudWatch pour le Collector OpenTelemetry

<AWS_REGION>

Région AWS pour les logs CloudWatch

<APP_LOG_STREAM_PREFIX>

Préfixe du flux de logs pour votre conteneur d'application

<COLLECTOR_LOG_STREAM_PREFIX>

Préfixe de flux de logs pour le Collector OpenTelemetry

Conseil

Principales différences entre les conteneurs Fargate Linux et Windows :

  • Plateforme d'exécution : Windows nécessite explicite operatingSystemFamily: "WINDOWS_SERVER_2022_FULL"
  • Images : Windows utilise des images de conteneur Windows spécifiques
  • Point d'entrée : le collecteur Windows spécifie C:\\otelcol-contrib.exe comme point d'entrée
  • Allocation de mémoire : utilise memoryReservation pour une gestion flexible de la mémoire

Important

Remplacez YOUR_ACCOUNT et les valeurs de région par votre ID de compte AWS et votre région AWS réels.

Déployer et exécuter la tâche

Déployez votre définition de tâche sur votre cluster ECS :

  1. Enregistrez la définition de tâche :

    bash
    $
    aws ecs register-task-definition --cli-input-json file://task-definition.json
  2. Créer un service :

    bash
    $
    aws ecs create-service \
    >
    --cluster your-cluster-name \
    >
    --service-name otel-monitoring-service \
    >
    --task-definition otel-ecs-fargate-metrics:1 \
    >
    --desired-count 1 \
    >
    --launch-type FARGATE \
    >
    --network-configuration "awsvpcConfiguration={subnets=[subnet-12345,subnet-67890],securityGroups=[sg-abcdef],assignPublicIp=ENABLED}"

Vérifier la collecte de données

Vérifiez que vos données sont transmises à New Relic :

Différences de configuration par rapport à EC2

Principales différences lors de l'exécution sur Fargate :

  • Aucun accès au niveau de l'hôte: impossible d'accéder aux métriques de l'hôte sous-jacent comme dans EC2
  • Mode réseau: doit utiliser le mode réseau awsvpc
  • Contraintes de ressources: limité par les combinaisons CPU/mémoire de Fargate
  • Stockage: stockage éphémère uniquement, pas de volumes persistants
  • Informations détaillées de conteneur: s'appuie sur le point de terminaison de métadonnées de tâche v4 pour les statistiques de conteneur

Prochaines étapes

Après avoir configuré le monitoring, vous pouvez :

Droits d'auteur © 2026 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.