Surveillance des tâches - Amazon EMR

Surveillance des tâches

Surveillance des tâches à l'aide d'Amazon CloudWatch Events

Amazon EMR on EKS émet des événements lorsque l'état d'une exécution de tâche change. Chaque événement fournit des informations, telles que la date et l'heure auxquelles l'événement s'est produit, ainsi que d'autres détails sur l'événement, tels que l'identifiant du cluster virtuel et l'identifiant de l'exécution de tâche qui a été affectée.

Vous pouvez utiliser les événements pour suivre l'activité et l'état des tâches que vous exécutez sur un cluster virtuel. Vous pouvez également utiliser Amazon CloudWatch Events pour définir une action à effectuer lorsqu'une tâche génère un événement correspondant à un modèle que vous indiquez. Les événements sont utiles pour surveiller un événement spécifique au cours du cycle de vie d'une tâche. Par exemple, vous pouvez surveiller le moment où l'état d'une exécution de tâche passe de submitted à running. Pour plus d'informations sur CloudWatch Events, consultez le Guide de l'utilisateur Amazon CloudWatch Events.

Le tableau suivant répertorie les événements Amazon EMR on EKS en indiquant l'état ou la modification d'état associée à chaque événement, sa gravité ainsi que les messages correspondants. Chaque événement est représenté sous la forme un objet JSON qui est automatiquement envoyé à un flux d'événements. L'objet JSON inclut des détails supplémentaires sur l'événement. L'objet JSON est particulièrement important lorsque vous configurez des règles pour gérer les événements via CloudWatch Events, car ces règles visent à établir une correspondance avec des modèles présents dans cet objet JSON. Pour plus d'informations, consultez les rubriques Événements et modèles d'événements et Événements Amazon EMR on EKS dans le Guide de l'utilisateur Amazon CloudWatch Events.

Événements de changement d'état d'exécution de tâche
État Sévérité Message
SUBMITTED INFO L'exécution de tâche JobRunId (JobRunName) a été soumise avec succès au cluster virtuel VirtualClusterId à Heure UTC.
RUNNING INFO L'exécution de tâche JobRunId (JobRunName) dans le cluster virtuel VirtualClusterId a commencé à s'exécuter à Heure.
TERMINÉ INFO L'exécution de tâche JobRunId (JobRunName) dans le cluster virtuel VirtualClusterId s'est terminée à Heure. L'exécution de tâche a commencé à s'exécuter à Heure et a duré Nombre minutes avant de se terminer.
CANCELLED WARN La demande d'annulation a réussi pour l'exécution de tâche Job Run JobRunId (JobRunName) dans le cluster virtuel VirtualClusterId à Heure et l'exécution de tâche est maintenant annulée.
ÉCHEC ERROR L'exécution de tâche JobRunId (JobRunName) dans le cluster virtuel VirtualClusterId a échoué à Heure.

Automatisation d'Amazon EMR on EKS avec CloudWatch Events

Vous pouvez utiliser Amazon CloudWatch Events pour automatiser vos services AWS afin de répondre aux événements système tels que les problèmes de disponibilité des applications ou les changements de ressources. Les événements des services AWS sont fournis à CloudWatch Events presque en temps réel. Vous pouvez écrire des règles simples pour préciser les événements qui vous intéressent et les actions automatisées à effectuer quand un événement correspond à une règle. Les actions pouvant être déclenchées automatiquement sont les suivantes :

  • Appel d'une fonction AWS Lambda

  • Appel de la fonctionnalité Exécuter la commande d'Amazon EC2

  • Relais de l'événement à Amazon Kinesis Data Streams

  • Activation d'une machine d'état AWS Step Functions

  • Notification d'une rubrique Amazon Simple Notification Service (SNS) ou d'une file d'attente Amazon Simple Queue Service (SQS)

Voici quelques exemples d'utilisation de CloudWatch Events avec Amazon EMR on EKS :

  • Activation d'une fonction Lambda lorsqu'une exécution de tâche réussit

  • Notification d'une rubrique Amazon SNS lorsqu'une exécution de tâche échoue

Les événements CloudWatch pour « detail-type: » « EMR Job Run State Change » sont générés par Amazon EMR on EKS pour les modifications d'état SUBMITTED, RUNNING, CANCELLED, FAILED et COMPLETED.

Exemple : configuration d'une règle qui invoque Lambda

Suivez les étapes ci-dessous pour configurer une règle CloudWatch Events qui invoque Lambda lorsqu'il y a un événement « Modification d'état d'exécution de tâche EMR ».

aws events put-rule \ --name cwe-test \ --event-pattern '{"detail-type": ["EMR Job Run State Change"]}'

Ajoutez la fonction Lambda que vous possédez en tant que nouvelle cible et donnez à CloudWatch Events l'autorisation d'invoquer la fonction Lambda comme suit. Remplacez 123456789012 par votre l'identifiant de votre compte.

aws events put-targets \ --rule cwe-test \ --targets Id=1,Arn=arn:aws:lambda:us-east-1:123456789012:function:MyFunction
aws lambda add-permission \ --function-name MyFunction \ --statement-id MyId \ --action 'lambda:InvokeFunction' \ --principal events.amazonaws.com
Note

Vous ne pouvez pas écrire un programme qui dépend de l'ordre ou de l'existence d'événements de notification, car ces événements peuvent arriver dans un ordre différent ou être absents. Les événements sont générés sur la base du meilleur effort.

Surveillance du pod de pilote de la tâche avec une politique de relance à l'aide d'Amazon CloudWatch Events

À l'aide de CloudWatch Events, vous pouvez surveiller les pods de pilote qui ont été créés dans des tâches dotées de politiques de relance. Pour plus d'informations, consultez Surveillance d'une tâche à l'aide d'une politique de relance dans ce guide.