Surveillance de AWS Glue avec des métriques Amazon CloudWatch - AWS Glue

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.

Surveillance de AWS Glue avec des métriques Amazon CloudWatch

Vous pouvez surveiller les opérations d'AWS Glue à l'aide du profileur de tâche AWS Glue. Il collecte et traite les données brutes des tâches AWS Glue en métriques lisibles pratiquement en temps réel stockées dans Amazon CloudWatch. Ces statistiques sont conservées et regroupées dans CloudWatch pour vous permettre d'accéder aux informations historiques et de bénéficier d'une meilleure vision des performances de votre application.

Note

Vous encourez des frais supplémentaires lorsque vous activez métriques de tâche et que des métriques personnalisées CloudWatch sont créées. Pour plus d'informations, consultez Tarification Amazon CloudWatch .

Présentation des métriques AWS Glue

Lorsque vous interagissez avec AWS Glue, il envoie des métriques à CloudWatch. Vous pouvez afficher ces métriques dans la console AWS Glue (recommandé), sur le tableau de bord de la console CloudWatch ou dans la AWS Command Line Interface (AWS CLI).

Pour afficher des métriques à l'aide du tableau de bord de la console AWS Glue

Vous pouvez afficher un résumé ou des graphiques détaillés des métriques pour une tâche ou des graphiques détaillés pour l'exécution d'une tâche.

  1. Connectez-vous à la AWS Management Console et ouvrez la console AWS Glue à l’adresse https://console.aws.amazon.com/glue/.

  2. Dans le panneau de navigation, choisissez Surveillance de l'exécution des tâches.

  3. Dans Exécutions de tâches, choisissez Actions pour arrêter une tâche en cours d'exécution, afficher une tâche ou restaurer le signet d'une tâche.

  4. Sélectionnez une tâche, puis choisissez Afficher les informations de l'exécution pour afficher des informations supplémentaires sur l'exécution de la tâche.

Pour afficher des métriques à l'aide du tableau de bord de la console CloudWatch

Les métriques sont d'abord regroupées par espace de noms de service, puis par les différentes combinaisons de dimension au sein de chaque espace de noms.

  1. Ouvrez la console CloudWatch à l’adresse https://console.aws.amazon.com/cloudwatch/.

  2. Dans le panneau de navigation, sélectionnez ‎Métriques.

  3. Sélectionnez l'espace de noms Glue.

Pour afficher les métriques à l'aide de AWS CLI
  • A partir d'une invite de commande, utilisez la commande suivante.

    aws cloudwatch list-metrics --namespace Glue

AWS Glue envoie des métriques à CloudWatch toutes les 30 secondes et les tableaux de bord de métriques sont configurés pour les afficher toutes les minutes. Les métriques AWS Glue représentent des valeurs delta des valeurs précédemment rapportées. Le cas échéant, les tableaux de bord de métriques regroupent (additionnent) les valeurs de plages de 30 secondes pour obtenir une valeur pour la totalité de la dernière minute.

Comportement des métriques AWS Glue pour les tâches Spark

Les métriques AWS Glue sont activées à l'initialisation d'un GlueContext dans un script et sont généralement mises à jour uniquement à la fin d'une tâche Apache Spark. Elles représentent les valeurs regroupées sur l'ensemble des tâches Spark terminées jusqu'alors.

D'autre part, les métriques Spark que AWS Glue transmet à CloudWatch sont généralement des valeurs absolues représentant l'état actuel au moment où elles sont signalées. AWS Glue les signale à CloudWatch toutes les 30 secondes et les tableaux de bord de métriques montrent généralement la moyenne entre les points de données reçus au cours de la dernière minute.

Les noms des métriques AWS Glue sont tous précédés par l'un des types suivants de préfixe :

  • glue.driver. – Les métriques dont les noms commencent par ce préfixe représentent des métriques AWS Glue regroupées à partir de tous les programmes d'exécution dans le pilote Spark ou des métriques Spark correspondant au pilote Spark.

  • glue.executorId. – L'executorId correspond au numéro d'un programme d'exécution Spark spécifique. Il correspond aux programmes d'exécution répertoriés dans les journaux.

  • glue.ALL. - Les métriques dont les noms commencent par ce préfixe regroupent des valeurs de tous les programmes d'exécution Spark.

AWS Glue métriques

AWS Glue dresse le profil et envoie les métriques suivantes à CloudWatch toutes les 30 secondes, tandis que le tableau de bord des métriques AWS Glue les signale une fois par minute :

Métrique Description

glue.driver.aggregate.bytesRead

Nombre d'octets lus à partir de toutes les sources de données par toutes les tâches Spark exécutées dans tous les programmes d'exécution.

Dimensions valides : JobName (nom de la tâche AWS Glue), JobRunId (ID JobRun ou ALL) et Type (compte).

Statistiques valides : SUM. Cette métrique est une valeur delta à partir de la dernière valeur signalée, donc sur le tableau de bord des métriques AWS Glue, une statistique SUM est utilisée pour l'agrégation.

Unité : octets

Peut être utilisé pour contrôler ce qui suit :

  • Octets lus.

  • Progrès de la tâche.

  • Source de données JDBC.

  • Problèmes de marque-page de la tâche.

  • Variation entre les exécutions de tâches.

Cette métrique peut être utilisée de la même manière que la métrique glue.ALL.s3.filesystem.read_bytes, à la différence qu'elle est mise à jour à la fin d'une tâche Spark et qu'elle capture également les sources de données non S3.

glue.driver.aggregate.elapsedTime

Le temps écoulé ETL en millisecondes (n'inclut pas les temps d'amorçage de la tâche).

Dimensions valides : JobName (nom de la tâche AWS Glue), JobRunId (ID JobRun ou ALL) et Type (compte).

Statistiques valides : SUM. Cette métrique est une valeur delta à partir de la dernière valeur signalée, donc sur le tableau de bord des métriques AWS Glue, une statistique SUM est utilisée pour l'agrégation.

Unité : millisecondes

Peut être utilisé pour déterminer combien le temps moyen requis pour une exécution de tâche.

Voici quelques façons d'utiliser les données :

  • Définissez des alarmes pour les ralentisseurs.

  • Mesurez l'écart entre les exécutions de tâches.

glue.driver.aggregate.numCompletedStages

Le nombre d'étapes terminées dans la tâche.

Dimensions valides : JobName (nom de la tâche AWS Glue), JobRunId (ID JobRun ou ALL) et Type (compte).

Statistiques valides : SUM. Cette métrique est une valeur delta à partir de la dernière valeur signalée, donc sur le tableau de bord des métriques AWS Glue, une statistique SUM est utilisée pour l'agrégation.

Unité : nombre

Peut être utilisé pour contrôler ce qui suit :

  • Progrès de la tâche.

  • Chronologie par étape de l'exécution des tâches, en cas de corrélation avec d'autres métriques.

Voici quelques façons d'utiliser les données :

  • Identifiez les étapes exigeantes dans l'exécution d'une tâche.

  • Définissez des alarmes pour les pics corrélés (étapes exigeantes) à travers les exécutions de tâches.

glue.driver.aggregate.numCompletedTasks

Le nombre de tâches terminées dans la tâche.

Dimensions valides : JobName (nom de la tâche AWS Glue), JobRunId (ID JobRun ou ALL) et Type (compte).

Statistiques valides : SUM. Cette métrique est une valeur delta à partir de la dernière valeur signalée, donc sur le tableau de bord des métriques AWS Glue, une statistique SUM est utilisée pour l'agrégation.

Unité : nombre

Peut être utilisé pour contrôler ce qui suit :

  • Progrès de la tâche.

  • Parallélisme au sein d'une étape.

glue.driver.aggregate.numFailedTasks

Nombre de tâches ayant échoué.

Dimensions valides : JobName (nom de la tâche AWS Glue), JobRunId (ID JobRun ou ALL) et Type (compte).

Statistiques valides : SUM. Cette métrique est une valeur delta à partir de la dernière valeur signalée, donc sur le tableau de bord des métriques AWS Glue, une statistique SUM est utilisée pour l'agrégation.

Unité : nombre

Peut être utilisé pour contrôler ce qui suit :

  • Anomalies de données qui provoquent l'échec des tâches de la tâche.

  • Anomalies de cluster qui provoquent l'échec des tâches de la tâche.

  • Anomalies de script qui provoquent l'échec des tâches de la tâche.

Les données peuvent être utilisées pour définir des alarmes pour des échecs accrus qui pourraient suggérer des anomalies dans les données, les clusters ou les scripts.

glue.driver.aggregate.numKilledTasks

Nombre de tâches supprimées.

Dimensions valides : JobName (nom de la tâche AWS Glue), JobRunId (ID JobRun ou ALL) et Type (compte).

Statistiques valides : SUM. Cette métrique est une valeur delta à partir de la dernière valeur signalée, donc sur le tableau de bord des métriques AWS Glue, une statistique SUM est utilisée pour l'agrégation.

Unité : nombre

Peut être utilisé pour contrôler ce qui suit :

  • Anomalies de l'asymétrie des données qui entraînent des exceptions (OOM) qui suppriment les tâches.

  • Anomalies de script qui entraînent des exceptions (OOM) qui suppriment les tâches.

Voici quelques façons d'utiliser les données :

  • Définissez des alarmes pour les échecs accrus indiquant des anomalies des données.

  • Définissez des alarmes pour les échecs accrus indiquant des anomalies de cluster.

  • Définissez des alarmes pour les échecs accrus indiquant des anomalies de script.

glue.driver.aggregate.recordsRead

Nombre d'enregistrements lus à partir de toutes les sources de données par toutes les tâches Spark terminées exécutées dans tous les programmes d'exécution.

Dimensions valides : JobName (nom de la tâche AWS Glue), JobRunId (ID JobRun ou ALL) et Type (compte).

Statistiques valides : SUM. Cette métrique est une valeur delta à partir de la dernière valeur signalée, donc sur le tableau de bord des métriques AWS Glue, une statistique SUM est utilisée pour l'agrégation.

Unité : nombre

Peut être utilisé pour contrôler ce qui suit :

  • Enregistrements lus.

  • Progrès de la tâche.

  • Source de données JDBC.

  • Problèmes de marque-page de la tâche.

  • Asymétrie dans les exécutions de tâches au fil des jours.

Cette métrique peut être utilisée de manière similaire à la métrique glue.ALL.s3.filesystem.read_bytes, à la différence qu'elle est mise à jour à la fin d'une tâche Spark.

glue.driver.aggregate.shuffleBytesWritten

Le nombre d'octets écrits par tous les programmes d'exécution pour remanier des données sur ceux-ci depuis le rapport précédent (agrégé par le tableau de bord des métriques AWS Glue comme le nombre d'octets écrits à cet effet au cours de la minute précédente).

Dimensions valides : JobName (nom de la tâche AWS Glue), JobRunId (ID JobRun ou ALL) et Type (compte).

Statistiques valides : SUM. Cette métrique est une valeur delta à partir de la dernière valeur signalée, donc sur le tableau de bord des métriques AWS Glue, une statistique SUM est utilisée pour l'agrégation.

Unité : octets

Peut être utilisé pour contrôler le remaniement de données dans les tâches (jointures volumineuses, GroupBy, répartition, coalesce).

Voici quelques façons d'utiliser les données :

  • Repartitionnez ou décompressez les fichiers d'entrée volumineux avant un traitement ultérieur.

  • Repartitionnez les données de manière plus uniforme pour éviter les raccourcis clavier.

  • Filtrez préalablement les données avant les jointures ou les opérations GroupBy.

glue.driver.aggregate.shuffleLocalBytesRead

Le nombre d'octets lus par tous les programmes d'exécution pour remanier des données sur ceux-ci depuis le rapport précédent (agrégé par le tableau de bord des métriques AWS Glue comme le nombre d'octets lus à cet effet au cours de la minute précédente).

Dimensions valides : JobName (nom de la tâche AWS Glue), JobRunId (ID JobRun ou ALL) et Type (compte).

Statistiques valides : SUM. Cette métrique est une valeur delta à partir de la dernière valeur signalée, donc sur le tableau de bord des métriques AWS Glue, une statistique SUM est utilisée pour l'agrégation.

Unité : octets

Peut être utilisé pour contrôler le remaniement de données dans les tâches (jointures volumineuses, GroupBy, répartition, coalesce).

Voici quelques façons d'utiliser les données :

  • Repartitionnez ou décompressez les fichiers d'entrée volumineux avant un traitement ultérieur.

  • Repartitionnez les données de manière plus uniforme à l'aide des raccourcis clavier.

  • Filtrez préalablement les données avant les jointures ou les opérations GroupBy.

glue.driver.BlockManager.disk.diskSpaceUsed_MB

Nombre de mégaoctets d'espace disque utilisés sur tous les programmes d'exécution.

Dimensions valides : JobName (nom de la tâche AWS Glue), JobRunId (ID JobRun ou ALL) et Type (jauge).

Statistiques valides : moyenne Il s'agit d'une métrique Spark, rapportée en tant que valeur absolue.

Unité : mégaoctets

Peut être utilisé pour contrôler ce qui suit :

  • Espace disque utilisé pour les blocs qui représentent des partitions RDD mises en cache.

  • Espace disque utilisé pour les blocs qui représentent des sorties de remaniement intermédiaire.

  • Espace disque utilisé pour les blocs qui représentent des diffusions.

Voici quelques façons d'utiliser les données :

  • Identifiez les échecs de tâche dus à une utilisation accrue du disque.

  • Identifiez les larges partitions qui entraînent un déversement ou un remaniement.

  • Augmentez la capacité DPU allouée pour corriger ces problèmes.

glue.driver.ExecutorAllocationManager.executors.numberAllExecutors

Le nombre de programmes d'exécution de tâches actifs en cours d'exécution.

Dimensions valides : JobName (nom de la tâche AWS Glue), JobRunId (ID JobRun ou ALL) et Type (jauge).

Statistiques valides : moyenne Il s'agit d'une métrique Spark, rapportée en tant que valeur absolue.

Unité : nombre

Peut être utilisé pour contrôler ce qui suit :

  • Activité de la tâche.

  • Programmes d'exécution en retard (avec uniquement quelques programmes d'exécution en cours d'exécution)

  • Parallélisme actuel au niveau du programme d'exécution.

Voici quelques façons d'utiliser les données :

  • Repartitionnez ou décompressez au préalable les fichiers d'entrée volumineux si le cluster est sous-utilisé.

  • Identifiez les retards d'exécution de l'étape ou de la tâche dus à des scénarios de ralentissement.

  • • Comparez avec numberMaxneededExecutors pour comprendre le backlog pour allouer plus de DPU.

glue.driver.ExecutorAllocationManager.executors.numberMaxNeededExecutors

Nombre maximal de programmes d'exécution de tâches (en cours d'exécution et en attente) nécessaires pour satisfaire la charge actuelle.

Dimensions valides : JobName (nom de la tâche AWS Glue), JobRunId (ID JobRun ou ALL) et Type (jauge).

Statistiques valides : maximum Il s'agit d'une métrique Spark, rapportée en tant que valeur absolue.

Unité : nombre

Peut être utilisé pour contrôler ce qui suit :

  • Activité de la tâche.

  • Parallélisme actuel au niveau du programme d'exécution et backlog de tâches en attente qui ne sont pas encore planifiées en raison de l'indisponibilité des programmes d'exécution, en raison de la capacité du DPU ou de l'échec/la suppression des programmes d'exécution.

Voici quelques façons d'utiliser les données :

  • Identifiez la mise en attente ou le backlog de la file d'attente de planification.

  • Identifiez les retards d'exécution de l'étape ou de la tâche dus à des scénarios de ralentissement.

  • Comparez avec numberAllExecutors pour comprendre le backlog pour allouer plus de DPU.

  • Augmentez la capacité de DPU allouée pour corriger le backlog des programmes d'exécution en attente.

glue.driver.jvm.heap.usage

glue.executorId.jvm.heap.usage

glue.ALL.jvm.heap.usage

La fraction de mémoire utilisée par la pile de la JVM pour ce pilote (échelle : 0-1) pour le pilote, un programme d'exécution identifié par executorId ou TOUS les programmes d'exécution.

Dimensions valides : JobName (nom de la tâche AWS Glue), JobRunId (ID JobRun ou ALL) et Type (jauge).

Statistiques valides : moyenne Il s'agit d'une métrique Spark, rapportée en tant que valeur absolue.

Unité : pourcentage

Peut être utilisé pour contrôler ce qui suit :

  • Conditions de mémoire insuffisante (OM) du pilote à l'aide de glue.driver.jvm.heap.usage.

  • Conditions de mémoire insuffisante (OM) du programme d'exécution à l'aide de glue.ALL.jvm.heap.usage.

Voici quelques façons d'utiliser les données :

  • Identifiez les ID et les étapes des programmes d'exécution consommant de la mémoire.

  • Identifiez les ID et les étapes des programmes d'exécution en retard.

  • Identifiez une condition de mémoire insuffisante (OOM) d'un pilote.

  • Identifiez une condition de mémoire insuffisante (OOM) d'un programme d'exécution et obtenez l'ID du programme d'exécution correspondant afin d'obtenir une trace de pile à partir du journal du programme d'exécution.

  • Identifiez les fichiers ou les partitions qui peuvent avoir une asymétrie des données entraînant des erreurs ou des conditions de mémoire insuffisante (OOM).

glue.driver.jvm.heap.used

glue.executorId.jvm.heap.used

glue.ALL.jvm.heap.used

le nombre d'octets de mémoire utilisés par la pile JVM pour le pilote, le programme d'exécution identifié par executorId, ou TOUS les programmes d'exécution.

Dimensions valides : JobName (nom de la tâche AWS Glue), JobRunId (ID JobRun ou ALL) et Type (jauge).

Statistiques valides : moyenne Il s'agit d'une métrique Spark, rapportée en tant que valeur absolue.

Unité : octets

Peut être utilisé pour contrôler ce qui suit :

  • Conditions de mémoire insuffisante (OOM) du pilote.

  • Conditions de mémoire insuffisante (OOM) du programme d'exécution.

Voici quelques façons d'utiliser les données :

  • Identifiez les ID et les étapes des programmes d'exécution consommant de la mémoire.

  • Identifiez les ID et les étapes des programmes d'exécution en retard.

  • Identifiez une condition de mémoire insuffisante (OOM) d'un pilote.

  • Identifiez une condition de mémoire insuffisante (OOM) d'un programme d'exécution et obtenez l'ID du programme d'exécution correspondant afin d'obtenir une trace de pile à partir du journal du programme d'exécution.

  • Identifiez les fichiers ou les partitions qui peuvent avoir une asymétrie des données entraînant des erreurs ou des conditions de mémoire insuffisante (OOM).

glue.driver.s3.filesystem.read_bytes

glue.executorId.s3.filesystem.read_bytes

glue.ALL.s3.filesystem.read_bytes

Le nombre d'octets lus à partir d'Amazon S3 par le pilote, un programme d'exécution identifié par executorId, ou TOUS les programmes d'exécution depuis le rapport précédent (agrégés par le Tableau de bord de métriques AWS Glue comme le nombre d'octets lus pendant la minute précédente).

Dimensions valides :JobName, JobRunId, et Type (jauge).

Statistiques valides : SUM. Cette métrique est une valeur delta à partir de la dernière valeur signalée, donc sur le Tableau de bord des métriques AWS Glue, une statistique SUM est utilisée pour l'agrégation. La zone sous la courbe du Tableau de bord des métriques AWS Glue peut être utilisée pour comparer visuellement les octets lus par deux exécutions de tâches différentes.

Unité : octets.

Peut être utilisé pour contrôler ce qui suit :

  • Déplacement de données ETL.

  • Progrès de la tâche.

  • Problèmes de marque-page de tâche (données traitées, retraitées et ignorées).

  • Comparaison des lectures par rapport au taux d'ingestion à partir de sources de données externes.

  • Variation entre les exécutions de tâches.

Les données résultantes peuvent être utilisées pour ce qui suit :

  • Planification des capacités de DPU.

  • Paramétrage d'alarmes pour les pics importants ou les creux au niveau des données lues pour les exécutions de tâches et les étapes des tâches.

glue.driver.s3.filesystem.write_bytes

glue.executorId.s3.filesystem.write_bytes

glue.ALL.s3.filesystem.write_bytes

Le nombre d'octets écrits à partir d'Amazon S3 par le pilote, un programme d'exécution identifié par executorId, ou TOUS les programmes d'exécution depuis le rapport précédent (agrégés par le Tableau de bord de métriques AWS Glue comme le nombre d'octets écrits pendant la minute précédente).

Dimensions valides :JobName, JobRunId, et Type (jauge).

Statistiques valides : SUM. Cette métrique est une valeur delta à partir de la dernière valeur signalée, donc sur le Tableau de bord des métriques AWS Glue, une statistique SUM est utilisée pour l'agrégation. La zone sous la courbe du Tableau de bord des métriques AWS Glue peut être utilisée pour comparer visuellement les octets écrits par deux exécutions de tâches différentes.

Unité : octets

Peut être utilisé pour contrôler ce qui suit :

  • Déplacement de données ETL.

  • Progrès de la tâche.

  • Problèmes de marque-page de tâche (données traitées, retraitées et ignorées).

  • Comparaison des lectures par rapport au taux d'ingestion à partir de sources de données externes.

  • Variation entre les exécutions de tâches.

Voici quelques façons d'utiliser les données :

  • Planification des capacités de DPU.

  • Paramétrage d'alarmes pour les pics importants ou les creux au niveau des données lues pour les exécutions de tâches et les étapes des tâches.

glue.driver.streaming.numRecords

Nombre d'enregistrements reçus dans un micro-lot. Cette métrique est uniquement disponible pour les tâches de streaming AWS Glue avec AWS Glue version 2.0 et ultérieures.

Dimensions valides : JobName (nom de la tâche AWS Glue), JobRunId (ID JobRun ou ALL) et Type (compte).

Statistiques valides : somme, minimum, maximum, moyenne, percentile

Unité : nombre

Peut être utilisé pour contrôler ce qui suit :

  • Enregistrements lus.

  • Progrès de la tâche.

glue.driver.streaming.batchProcessingTimeInMs

Temps nécessaire pour traiter les lots en millisecondes. Cette métrique est uniquement disponible pour les tâches de streaming AWS Glue avec AWS Glue version 2.0 et ultérieures.

Dimensions valides : JobName (nom de la tâche AWS Glue), JobRunId (ID JobRun ou ALL) et Type (compte).

Statistiques valides : somme, minimum, maximum, moyenne, percentile

Unité : nombre

Peut être utilisé pour contrôler ce qui suit :

  • Progrès de la tâche.

  • Performances de script.

glue.driver.system.cpuSystemLoad

glue.executorId.system.cpuSystemLoad

glue.ALL.system.cpuSystemLoad

La fraction de chargement du système UC utilisée (échelle : 0-1) par le pilote, un programme d'exécution identifié par executorId ou tous les programmes d'exécution.

Dimensions valides : JobName (nom de la tâche AWS Glue), JobRunId (ID JobRun ou ALL) et Type (jauge).

Statistiques valides : moyenne Cette métrique est rapportée en tant que valeur absolue.

Unité : pourcentage

Peut être utilisé pour contrôler ce qui suit :

  • Charge de l'UC du pilote.

  • Charge de l'UC du programme d'exécution.

  • Détection des programmes d'exécution ou des stages liés à l'UC ou liés à l'IO dans une tâche.

Voici quelques façons d'utiliser les données :

  • Planification de la capacité DPU ainsi que les mesures d'IO (octets de lecture/octets de remaniement, parallélisme des tâches) et nombre maximal de métriques de programmes d'exécution nécessaires.

  • Identifier le ratio UC/IO lié. Cela permet de repartitionner et d'augmenter la capacité allouée pour les tâches de longue durée avec des jeux de données pouvant être divisés ayant une utilisation moins élevée de l'UC.

Dimensions pour les métriques AWS Glue

Les métriques AWS Glue utilisent l'espace de noms AWS Glue et fournissent des métriques pour les dimensions suivantes :

Dimension Description

JobName

Cette dimension filtre les métriques de toutes les exécutions de tâches d'une tâche AWS Glue spécifique.

JobRunId

Cette dimension filtre les métriques d'une tâche AWS Glue spécifique exécutée par un ID JobRun, ou ALL.

Type

Cette dimension filtre les métriques par count (un nombre agrégé) ou gauge (une valeur à un moment donné).

Pour plus d’informations, consultez le Guide de l’utilisateur Amazon CloudWatch.