View a markdown version of this page

Exportation des métriques d'application vers Amazon Managed Service for Prometheus - 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.

Exportation des métriques d'application vers Amazon Managed Service for Prometheus

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 AWS Distro pour OpenTelemetry conteneur sidecar à la définition de votre 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 plus d’informations, consultez Création d’une définition de tâche Amazon ECS à l’aide de la console.

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 soit avec les bibliothèques Prometheus, soit avec OpenTelemetry SDK. Pour plus d'informations sur l'instrumentation de votre application avec OpenTelemetry SDK, voir Présentation de AWS Distro pour OpenTelemetry dans le AWS Distro pour OpenTelemetry documentation.

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 dans la documentation Prometheus.

Considérations

Les points suivants doivent être pris en compte lors de l'utilisation de l'intégration d'Amazon ECS sur Fargate avec AWS Distro pour OpenTelemetry pour envoyer les métriques de l'application à Amazon Managed Service for Prometheus.

  • Le AWS Distro pour OpenTelemetry l'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 pour OpenTelemetry inclut toutes les dimensions disponibles au niveau des tâches pour les métriques de votre application lors de l'exportation vers Amazon Managed Service pour Prometheus. Vous pouvez également instrumenter votre application pour ajouter des dimensions supplémentaires. Pour plus d'informations, voir Démarrez avec Prometheus Remote Write Exporter pour Amazon Managed Service for Prometheus dans le AWS Distro pour OpenTelemetry documentation.

Autorisations IAM requises pour AWS Distro pour OpenTelemetry intégration avec Amazon Managed Service pour Prometheus

L'intégration d'Amazon ECS à Amazon Managed Service pour Prometheus à l'aide du AWS Distro pour OpenTelemetry sidecar nécessite que vous créiez un rôle IAM de tâche et que vous spécifiiez ce rôle dans votre définition de 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.

Nous recommandons que le AWS Distro pour OpenTelemetry le sidecar doit également être configuré pour acheminer les journaux des conteneurs vers CloudWatch Les journaux qui nécessitent un rôle IAM pour l'exécution des tâches doivent être créés et spécifiés également dans votre définition de tâche. 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.

Important

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

Les autorisations suivantes sont requises pour AWS Distro pour OpenTelemetry intégration avec Amazon Managed Service pour Prometheus :

  • journaux :PutLogEvents

  • journaux :CreateLogGroup

  • journaux :CreateLogStream

  • journaux :DescribeLogStreams

  • journaux :DescribeLogGroups

  • Cloudwatch :PutMetricData

Spécifier le AWS Distro pour OpenTelemetry sidecar dans votre définition de tâche

La console Amazon ECS simplifie l'expérience de création du AWS Distro pour OpenTelemetry conteneur sidecar en utilisant le Utiliser la collecte de métriques option. Pour plus d’informations, consultez Création d’une définition de tâche Amazon ECS à l’aide de la console.

Si vous n'utilisez pas la console Amazon ECS, vous pouvez ajouter le AWS Distro pour OpenTelemetry conteneur sidecar à votre définition de tâche manuellement. L'exemple de définition de tâche suivant montre la définition du conteneur pour ajouter AWS Distro pour OpenTelemetry sidecar pour l'intégration d'Amazon Managed Service pour 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" }