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 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 collecte de métriques lors de la création d'une nouvelle 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 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. 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 dans la documentation Prometheus.

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 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 de la documentation. AWS OpenTelemetry

Autorisations IAM requises pour AWS Distro pour OpenTelemetry l'intégration à Amazon Managed Service for Prometheus

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 en suivant les étapes ci-dessous avant d'enregistrer votre définition de 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 des tâches en votre nom, mais le rôle IAM des tâches 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 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 plus d’informations, consultez Identifiez les opportunités d'optimisation d'Amazon ECS à l'aide des données de suivi des applications.

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

  2. Dans le volet de navigation de la console IAM, sélectionnez Roles (Rôles), puis Create role (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 AmazonPrometheusRemoteWriteAccess, 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 le nombre maximal 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.

    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'un ARN, il 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 fait pas la distinction entre 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 balises dans IAM, consultez la rubrique Balisage des ressources IAM dans le Guide de l'utilisateur IAM.

  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 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 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 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" }