

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.

# Corrélation des performances des applications Amazon ECS à l’aide des métriques d’application
<a name="metrics-data"></a>

Amazon ECS on Fargate permet de collecter des métriques à partir de vos applications exécutées sur Fargate et de les exporter vers Amazon CloudWatch ou Amazon Managed Service for Prometheus. 

Vous pouvez utiliser les métadonnées collectées pour corréler les données de performance des applications avec les données d’infrastructure sous-jacentes, réduisant ainsi le temps moyen de résolution du problème. 

Amazon ECS utilise un conteneur AWS Distro for OpenTelemetry sidecar pour collecter et acheminer les métriques de votre application vers leur destination. L‘expérience de la console Amazon ECS simplifie le processus d’ajout de cette intégration lors de la création de vos définitions de tâches.

**Topics**
+ [Exporter les métriques des applications vers Amazon CloudWatch](application-metrics-cloudwatch.md)
+ [Exportation des métriques d'application vers Amazon Managed Service for Prometheus](application-metrics-prometheus.md)

# Exporter les métriques des applications vers Amazon CloudWatch
<a name="application-metrics-cloudwatch"></a>

Amazon ECS on Fargate prend en charge l'exportation de vos métriques d'application personnalisées 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 console Amazon ECS simplifie ce processus en ajoutant l’option **Utiliser la collection de métriques** lors de la création d’une définition de tâche. Pour de plus amples informations, veuillez consulter [Création d’une définition de tâche Amazon ECS à l’aide de la console](create-task-definition.md).

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 équipée du OpenTelemetry SDK. Pour plus d'informations, voir [Introduction à AWS Distro for OpenTelemetry in the](https://aws-otel.github.io/docs/introduction) AWS Distro pour OpenTelemetry la documentation.

## Considérations
<a name="application-metrics-cloudwatch-considerations"></a>

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 du cluster Amazon ECS. Pour de plus amples informations, veuillez consulter [Surveillance des conteneurs Amazon ECS au moyen de Container Insights avec observabilité améliorée](cloudwatch-container-insights.md).
+ La AWS distribution pour l' OpenTelemetry intégration est prise en charge pour les charges de travail Amazon ECS hébergées sur Fargate et les charges de travail Amazon ECS 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 dimensions `TaskARN`, `ClusterARN`, `LaunchType`, `TaskDefinitionFamily`, et `TaskDefinitionRevision` aux métriques. 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](https://aws-otel.github.io/docs/getting-started/cloudwatch-metrics) dans la distribution pour OpenTelemetry obtenir de la AWS documentation. 

## Autorisations IAM requises pour AWS Distro pour OpenTelemetry l'intégration à Amazon CloudWatch
<a name="application-metrics-cloudwatch-iam"></a>

L'intégration d'Amazon ECS à AWS Distro for OpenTelemetry nécessite que vous créiez un rôle IAM 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 les journaux, ce qui nécessite la création et la spécification d'un rôle IAM d'exécution de tâches dans votre définition de tâche. CloudWatch La console Amazon ECS prend en charge le rôle IAM d’exécution de tâche pour vous, mais le rôle IAM de tâche doit être créé manuellement et ajouté à votre définition de tâche. Pour plus d'informations sur le rôle IAM d'exécution de tâche, consultez [Rôle IAM d'exécution de tâche Amazon ECS](task_execution_IAM_role.md).

**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 le rôle IAM de votre tâche contient également les autorisations nécessaires à cette intégration. Pour de plus amples informations, veuillez consulter [Identification des opportunités d’optimisation d’Amazon ECS à l’aide des données de suivi des applications](trace-data.md).  
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 rôle IAM de tâche. Par exemple, si vous utilisez un fichier de configuration personnalisé stocké dans Systems Manager, vous devez ajouter l'autorisation `ssm:GetParameters` à cette politique IAM.

**Pour créer un rôle de service Elastic Container Service (console IAM)**

1. Connectez-vous à la console IAM AWS Management Console et ouvrez-la à [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)l'adresse.

1. Dans le volet de navigation de la console IAM, sélectionnez **Roles** (Rôles), puis **Create role** (Créer un rôle).

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

1. Pour **Service ou cas d’utilisation**, choisissez **Elastic Container Service**, puis choisissez le cas d’utilisation **Tâche Elastic Container Service**.

1. Choisissez **Suivant**.

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

1. (Facultatif) Définissez une [limite d'autorisations](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html). 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 une limite des autorisations** et choisissez **Utiliser une limite des autorisations pour contrôler le nombre maximum d’autorisations de rôle**.

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

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

1. Choisissez **Suivant**.

1. Saisissez 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, notez ce qui suit :  
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 deux rôles nommés **PRODROLE** et **prodrole**. Lorsqu’un nom de rôle est utilisé dans une politique ou dans le cadre d’un ARN, le nom de rôle est sensible à la casse. Cependant, lorsqu’un nom de rôle apparaît aux clients dans la console, par exemple lors de la procédure d’ouverture de session, le nom de rôle est insensible à la casse.
Vous ne pouvez pas modifier le nom du rôle après sa création, car d’autres entités pourraient y faire référence.

1. (Facultatif) Pour **Description**, saisissez la description du rôle.

1. (Facultatif) Pour modifier les cas d’utilisation et les autorisations du rôle, dans les sections **Étape 1 : sélectionner les entités de confiance** ou **Étape 2 : ajouter des autorisations**, sélectionnez **Modifier**.

1. (Facultatif) Pour identifier, organiser ou rechercher le rôle, ajoutez des identifications sous forme de paires clé-valeur. Pour plus d'informations sur l'utilisation des balises dans IAM, consultez la section [Balises pour les Gestion des identités et des accès AWS ressources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) dans le Guide de l'*utilisateur d'IAM*.

1. 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
<a name="application-metrics-cloudwatch-containerdefinitions"></a>

La console Amazon ECS simplifie l'expérience de création du conteneur AWS Distro for OpenTelemetry sidecar en **utilisant l'option Use metric collection**. Pour de plus amples informations, veuillez consulter [Création d’une définition de tâche Amazon ECS à l’aide de la console](create-task-definition.md).

Si vous n'utilisez pas la console Amazon ECS, 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"
}
```

# Exportation des métriques d'application vers Amazon Managed Service for Prometheus
<a name="application-metrics-prometheus"></a>

Amazon ECS prend en charge l'exportation de vos métriques de processeur, de mémoire, de réseau et de stockage au niveau des tâches, ainsi que vos métriques d'application personnalisées vers Amazon Managed Service for Prometheus. Cela se fait en ajoutant le conteneur AWS Distro for OpenTelemetry sidecar à votre définition de tâche. La console Amazon ECS simplifie ce processus en ajoutant l’option **Utiliser la collection de métriques** lors de la création d’une définition de tâche. Pour de plus amples informations, veuillez consulter [Création d’une définition de tâche Amazon ECS à l’aide de la console](create-task-definition.md).

Les métriques sont exportées vers Amazon Managed Service for Prometheus et peuvent être consultées à l'aide du tableau de bord Amazon Managed Grafana. Votre application doit être instrumentée avec les bibliothèques Prometheus ou avec le SDK. OpenTelemetry Pour plus d'informations sur l'instrumentation de votre application avec le OpenTelemetry SDK, consultez la documentation [Introduction à la AWS distribution pour OpenTelemetry in the AWS Distro](https://aws-otel.github.io/docs/introduction). OpenTelemetry 

Lorsque vous utilisez les bibliothèques Prometheus, votre application doit exposer un point de terminaison `/metrics` utilisé pour récupérer les données de métriques. Pour plus d'informations sur l'instrumentation de votre application avec les bibliothèques Prometheus, consultez [Bibliothèques clientes Prometheus](https://prometheus.io/docs/instrumenting/clientlibs/) dans la documentation Prometheus.

## Considérations
<a name="application-metrics-prometheus-considerations"></a>

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 Managed Service for Prometheus.
+ La AWS distribution pour l' OpenTelemetry intégration est prise en charge pour les charges de travail Amazon ECS hébergées sur Fargate et les charges de travail Amazon ECS hébergées sur des instances Amazon EC2. Les instances externes ne sont actuellement pas prises en charge.
+ Par défaut, AWS Distro for OpenTelemetry inclut toutes les dimensions de niveau tâche disponibles pour les métriques de votre application lors de l'exportation vers Amazon Managed Service for Prometheus. Vous pouvez également instrumenter votre application pour ajouter des dimensions supplémentaires. Pour plus d'informations, consultez [Getting Started with Prometheus Remote Write Exporter for Amazon Managed Service for Prometheus in the Distro pour obtenir](https://aws-otel.github.io/docs/getting-started/prometheus-remote-write-exporter) de la documentation. AWS OpenTelemetry 

## Autorisations IAM requises pour AWS Distro pour OpenTelemetry l'intégration à Amazon Managed Service for Prometheus
<a name="application-metrics-prometheus-iam"></a>

L'intégration d'Amazon ECS à Amazon Managed Service for Prometheus à l'aide AWS de Distro OpenTelemetry pour sidecar nécessite que vous créiez un rôle IAM de tâche et que vous le spécifiiez dans la définition de votre tâche. Ce rôle IAM de tâche doit être créé manuellement avant d’enregistrer votre définition de tâche. Pour plus d’informations sur la création d’un rôle de tâche, consultez la section [rôle IAM de tâche Amazon ECS](task-iam-roles.md).

Nous recommandons que la AWS distribution pour OpenTelemetry sidecar soit également configurée pour acheminer les journaux des conteneurs vers les journaux, ce qui nécessite la création et la spécification d'un rôle IAM d'exécution de tâches dans votre définition de tâche. CloudWatch La console Amazon ECS prend en charge le rôle IAM d’exécution de tâche pour vous, mais le rôle IAM de tâche doit être créé manuellement. Pour en savoir plus sur la création d'un rôle IAM d'exécution de tâche, consultez [Rôle IAM d'exécution de tâche Amazon ECS](task_execution_IAM_role.md).

**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 le rôle IAM de votre tâche contient également les autorisations nécessaires à cette intégration. Pour de plus amples informations, veuillez consulter [Identification des opportunités d’optimisation d’Amazon ECS à l’aide des données de suivi des applications](trace-data.md).

Les autorisations suivantes sont requises pour que AWS Distro puisse être OpenTelemetry intégré à Amazon Managed Service for Prometheus :
+ journaux : PutLogEvents
+ journaux : CreateLogGroup
+ journaux : CreateLogStream
+ journaux : DescribeLogStreams
+ journaux : DescribeLogGroups
+ surveillance des nuages : PutMetricData

## Spécification de la AWS distribution pour le OpenTelemetry sidecar dans la définition de votre tâche
<a name="application-metrics-prometheus-containerdefinitions"></a>

La console Amazon ECS simplifie l'expérience de création du conteneur AWS Distro for OpenTelemetry sidecar en **utilisant l'option Use metric collection**. Pour de plus amples informations, veuillez consulter [Création d’une définition de tâche Amazon ECS à l’aide de la console](create-task-definition.md).

Si vous n'utilisez pas la console Amazon ECS, 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 l'intégration de AWS Distro for OpenTelemetry sidecar pour Amazon Managed Service for Prometheus.

```
{
	"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": "aws-region",
					"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-amp.yaml"
			],
			"environment": [{
				"name": "AWS_PROMETHEUS_ENDPOINT",
				"value": "https://aps-workspaces.aws-region.amazonaws.com/workspaces/ws-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111/api/v1/remote_write"
			}],
			"logConfiguration": {
				"logDriver": "awslogs",
				"options": {
					"awslogs-create-group": "True",
					"awslogs-group": "/ecs/ecs-aws-otel-sidecar-collector",
					"awslogs-region": "aws-region",
					"awslogs-stream-prefix": "ecs"
				}
			}
		}
	],
	"networkMode": "awsvpc",
	"requiresCompatibilities": [
		"FARGATE"
	],
	"cpu": "1024",
	"memory": "3072"
}
```