Exporter les métriques des applications vers Amazon CloudWatch - Amazon Elastic Container Service

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.

Exporter les métriques des applications vers Amazon CloudWatch

Amazon ECS on Fargate prend en charge l'exportation des métriques personnalisées de votre application vers CloudWatch Amazon en tant que métriques personnalisées. Cela se fait en ajoutant le conteneur AWS Distro for OpenTelemetry sidecar à votre définition de tâche. La ECS console Amazon simplifie ce processus en ajoutant l'option Utiliser la collecte de métriques lors de la création d'une nouvelle définition de tâche. Pour de plus amples informations, veuillez consulter Création d'une définition de ECS tâche Amazon à l'aide de la console.

Les métriques de l'application sont exportées vers CloudWatch Logs avec le nom du groupe de journaux /aws/ecs/application/metrics et les métriques peuvent être consultées dans l'espace de ECS/AWSOTel/Application noms. Votre application doit être instrumentée avec le OpenTelemetry SDK. Pour plus d'informations, voir Introduction à AWS Distro for OpenTelemetry in the AWS Distro pour OpenTelemetry la documentation.

Considérations

Les points suivants doivent être pris en compte lors de l'utilisation de l'intégration Amazon ECS on Fargate AWS avec Distro OpenTelemetry pour envoyer des métriques d'application à Amazon. CloudWatch

  • Cette intégration envoie uniquement les métriques personnalisées de votre application à CloudWatch. Si vous souhaitez obtenir des statistiques au niveau des tâches, vous pouvez activer Container Insights dans la configuration ECS du cluster Amazon. Pour de plus amples informations, veuillez consulter Surveillez les ECS conteneurs Amazon à l'aide de Container Insights.

  • La AWS distribution pour l' OpenTelemetry intégration est prise en charge pour les charges de ECS travail Amazon hébergées sur Fargate et les charges de travail ECS Amazon hébergées sur des instances Amazon. EC2 Les instances externes ne sont actuellement pas prises en charge.

  • CloudWatch prend en charge un maximum de 30 dimensions par métrique. Par défaut, Amazon ECS inclut par défaut les dimensionsTaskARN, ClusterARN LaunchTypeTaskDefinitionFamily, et les TaskDefinitionRevision dimensions dans les statistiques. Les 25 dimensions restantes peuvent être définies par votre application. Si plus de 30 dimensions sont configurées, CloudWatch impossible de les afficher. Dans ce cas, les métriques de l'application apparaîtront dans l'espace de noms des ECS/AWSOTel/Application CloudWatch métriques, mais sans aucune dimension. Vous pouvez instrumenter votre application pour ajouter des dimensions supplémentaires. Pour plus d'informations, consultez la section Utilisation CloudWatch des métriques avec AWS Distro pour OpenTelemetry dans la distribution pour OpenTelemetry obtenir de la AWS documentation.

IAMAutorisations requises pour AWS Distro pour OpenTelemetry l'intégration à Amazon CloudWatch

L'ECSintégration d'Amazon à AWS Distro pour OpenTelemetry nécessite que vous créiez un IAM rôle de tâche et que vous le spécifiiez dans la définition de votre tâche. Nous recommandons que la AWS distribution pour OpenTelemetry sidecar soit également configurée pour acheminer les journaux des conteneurs vers CloudWatch des journaux, ce qui nécessite la création et la spécification d'un IAM rôle d'exécution de tâche dans votre définition de tâche. La ECS console Amazon prend en charge le IAM rôle d'exécution des tâches en votre nom, mais le IAM rôle de tâche doit être créé manuellement et ajouté à votre définition de tâche. Pour plus d'informations sur le IAM rôle d'exécution des tâches, consultezIAMRôle d'exécution des ECS tâches Amazon.

Important

Si vous collectez également des données de suivi d'applications à l'aide de AWS Distro à des fins OpenTelemetry d'intégration, assurez-vous que votre IAM rôle de tâche contient également les autorisations nécessaires à cette intégration. Pour de plus amples informations, veuillez consulter Identifiez les opportunités ECS d'optimisation d'Amazon à l'aide des données de suivi des applications.

Si votre application nécessite des autorisations supplémentaires, vous devez les ajouter à cette politique. Chaque définition de tâche ne peut spécifier qu'un seul IAM rôle de tâche. Par exemple, si vous utilisez un fichier de configuration personnalisé stocké dans Systems Manager, vous devez ajouter l'ssm:GetParametersautorisation à cette IAM politique.

Pour créer le rôle de service pour Elastic Container Service (IAMconsole)
  1. Connectez-vous à la IAM console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/iam/.

  2. Dans le volet de navigation de la IAM console, sélectionnez Rôles, puis sélectionnez Créer un rôle.

  3. Pour Trusted entity (Entité de confiance), choisissez Service AWS.

  4. Pour Service ou cas d'utilisation, choisissez Elastic Container Service, puis choisissez le cas d'utilisation d'Elastic Container Service Task.

  5. Choisissez Suivant.

  6. Dans la section Ajouter des autorisations, recherchez AWSDistroOpenTelemetryPolicyForXray, puis sélectionnez la politique.

  7. (Facultatif) Définissez une limite d'autorisations. Il s’agit d’une fonctionnalité avancée disponible pour les fonctions de service, mais pas pour les rôles liés à un service.

    1. Ouvrez la section Définir les limites des autorisations, puis choisissez Utiliser une limite d'autorisations pour contrôler les autorisations maximales des rôles.

      IAMinclut une liste des politiques AWS gérées et gérées par le client dans votre compte.

    2. Sélectionnez la politique à utiliser comme limite d'autorisations.

  8. Choisissez Suivant.

  9. Entrez un nom de rôle ou un suffixe de nom de rôle pour vous aider à identifier l'objectif du rôle.

    Important

    Lorsque vous nommez un rôle, tenez compte des points suivants :

    • Les noms de rôles doivent être uniques au sein du Compte AWS vôtre et ne peuvent pas être rendus uniques au cas par cas.

      Par exemple, ne créez pas de rôles nommés à la fois PRODROLE etprodrole. Lorsqu'un nom de rôle est utilisé dans une politique ou dans le cadre d'une politiqueARN, le nom du rôle distingue les majuscules et minuscules, mais lorsqu'un nom de rôle apparaît aux clients dans la console, par exemple pendant le processus de connexion, le nom du rôle ne distingue pas les majuscules et minuscules.

    • Vous ne pouvez pas modifier le nom du rôle une fois qu'il a été créé car d'autres entités peuvent y faire référence.

  10. (Facultatif) Dans Description, entrez une description pour le rôle.

  11. (Facultatif) Pour modifier les cas d'utilisation et les autorisations du rôle, dans les sections Étape 1 : Sélection des entités de confiance ou Étape 2 : Ajouter des autorisations, choisissez Modifier.

  12. (Facultatif) Pour identifier, organiser ou rechercher le rôle, ajoutez des balises sous forme de paires clé-valeur. Pour plus d'informations sur l'utilisation des balisesIAM, consultez les IAMressources relatives au balisage dans le guide de l'IAMutilisateur.

  13. Passez en revue les informations du rôle, puis choisissez Create role (Créer un rôle).

Spécification de la AWS distribution pour le OpenTelemetry sidecar dans la définition de votre tâche

La ECS console Amazon simplifie l'expérience de création du conteneur AWS Distro pour OpenTelemetry sidecar en utilisant l'option Use metric collection. Pour de plus amples informations, veuillez consulter Création d'une définition de ECS tâche Amazon à l'aide de la console.

Si vous n'utilisez pas la ECS console Amazon, vous pouvez ajouter manuellement le conteneur AWS Distro for OpenTelemetry sidecar à votre définition de tâche. L'exemple de définition de tâche suivant montre la définition de conteneur pour l'ajout de AWS Distro for OpenTelemetry sidecar pour l'intégration d'Amazon. CloudWatch

{ "family": "otel-using-cloudwatch", "taskRoleArn": "arn:aws:iam::111122223333:role/AmazonECS_OpenTelemetryCloudWatchRole", "executionRoleArn": "arn:aws:iam::111122223333:role/ecsTaskExecutionRole", "containerDefinitions": [ { "name": "aws-otel-emitter", "image": "application-image", "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-create-group": "true", "awslogs-group": "/ecs/aws-otel-emitter", "awslogs-region": "us-east-1", "awslogs-stream-prefix": "ecs" } }, "dependsOn": [{ "containerName": "aws-otel-collector", "condition": "START" }] }, { "name": "aws-otel-collector", "image": "public.ecr.aws/aws-observability/aws-otel-collector:v0.30.0", "essential": true, "command": [ "--config=/etc/ecs/ecs-cloudwatch.yaml" ], "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-create-group": "True", "awslogs-group": "/ecs/ecs-aws-otel-sidecar-collector", "awslogs-region": "us-east-1", "awslogs-stream-prefix": "ecs" } } } ], "networkMode": "awsvpc", "requiresCompatibilities": [ "FARGATE" ], "cpu": "1024", "memory": "3072" }