Surveiller et dépanner les charges de travail Dataproc sans serveur

Vous pouvez surveiller et dépanner Dataproc sans serveur pour les charges de travail par lot Spark à l'aide des informations et des outils décrits dans les sections suivantes.

Serveur d'historique persistant

Dataproc sans serveur pour Spark crée les ressources de calcul nécessaires à l'exécution d'une charge de travail, exécute la charge de travail sur ces ressources, puis les supprime une fois la charge de travail terminée. Les métriques et les événements liés aux charges de travail ne sont pas conservés une fois la charge de travail terminée. Toutefois, vous pouvez utiliser un serveur d'historique persistant (PHS) pour conserver l'historique de l'application de la charge de travail (journaux des événements) dans Cloud Storage.

Pour utiliser un PHS avec une charge de travail par lot, procédez comme suit:

  1. Créez un serveur d'historique persistant (PHS) Dataproc.

  2. Spécifiez vos PHS lorsque vous envoyez une charge de travail.

  3. Utilisez la passerelle des composants pour vous connecter à PHS et afficher les détails de l'application, les étapes du programmeur, les détails au niveau des tâches, ainsi que les informations sur l'environnement et l'exécuteur.

Journaux Dataproc sans serveur pour Spark

La journalisation est activée par défaut dans Dataproc sans serveur pour Spark, et les journaux de charge de travail sont conservés une fois la charge de travail terminée. Dataproc sans serveur pour Spark collecte les journaux de charge de travail dans Cloud Logging. Vous pouvez accéder aux journaux de charge de travail spark, agent, output et container sous la ressource Cloud Dataproc Batch dans l'explorateur de journaux.

Exemple de requête Dataproc sans serveur pour Spark par lot:

Exemple de sélection par lots dans l'explorateur de métriques.

Pour en savoir plus, consultez la page Journaux Dataproc.

Journaux d'audit sans serveur Dataproc

Pour en savoir plus sur les journaux d'audit Dataproc sans serveur, consultez la page Journaux d'audit Dataproc.

Métriques liées aux charges de travail

Par défaut, Dataproc sans serveur pour Spark permet de collecter les métriques Spark disponibles, sauf si vous utilisez les propriétés de collecte des métriques Spark pour désactiver ou remplacer la collecte d'une ou de plusieurs métriques Spark.

Vous pouvez afficher les métriques de charge de travail depuis l'explorateur de métriques ou la page Détails du lot de la console Google Cloud.

Métriques par lot

Les métriques de ressources batch Dataproc fournissent des insights sur les ressources par lot, comme le nombre d'exécuteurs de lot. Les métriques par lot sont précédées du préfixe dataproc.googleapis.com/batch.

Exemple de métrique par lot dans l'explorateur de métriques

Métriques Spark

Les métriques Spark disponibles incluent les métriques du pilote et de l'exécuteur Spark, ainsi que les métriques système. Les métriques Spark disponibles sont précédées du préfixe custom.googleapis.com/.

Exemple de métrique Spark dans l'explorateur de métriques

Configurer des alertes de métriques

Vous pouvez créer des alertes de métriques Dataproc pour être averti des problèmes liés aux charges de travail.

Créer des graphiques

Vous pouvez créer des graphiques qui visualisent les métriques de charge de travail à l'aide de l'Explorateur de métriques de la console Google Cloud. Par exemple, vous pouvez créer un graphique pour afficher disk:bytes_used, puis filtrer par batch_id.

Cloud Monitoring

Monitoring utilise les métadonnées et les métriques des charges de travail pour fournir des insights sur l'état et les performances de Dataproc sans serveur pour les charges de travail Spark. Les métriques de charge de travail incluent les métriques Spark, les métriques par lot et les métriques d'opération.

Vous pouvez utiliser Cloud Monitoring dans la console Google Cloud pour explorer des métriques, ajouter des graphiques, créer des tableaux de bord et créer des alertes.

Créer des tableaux de bord

Vous pouvez créer un tableau de bord pour surveiller les charges de travail à l'aide de métriques de plusieurs projets et de différents produits Google Cloud. Pour en savoir plus, consultez la page Créer et gérer des tableaux de bord personnalisés.

Dépannage avancé (preview)

Cette section aborde les fonctionnalités de dépannage avancées (version preview) disponibles dans la console Google Cloud. Ces fonctionnalités incluent le dépannage assisté par Gemini pour Dataproc sans serveur, qui fait partie de l'offre Gemini dans BigQuery.

Accès aux fonctionnalités en preview

Pour vous inscrire à la version preview des fonctionnalités de dépannage avancées, remplissez et envoyez le formulaire d'inscription à Gemini dans BigQuery avant disponibilité générale. Une fois le formulaire approuvé, les projets répertoriés dans le formulaire ont accès aux fonctionnalités en version preview.

Aperçu des tarifs

La participation à l'aperçu n'entraîne aucuns frais supplémentaires. Des frais s'appliqueront aux fonctionnalités en preview suivantes lorsqu'elles seront en phase de disponibilité générale:

Un avis préalable concernant les frais en disponibilité générale sera envoyé à l'adresse e-mail que vous avez fournie dans le formulaire d'inscription (aperçu).

Exigences concernant les fonctionnalités

  • Inscription: vous devez vous inscrire pour utiliser cette fonctionnalité.

  • Autorisation:vous devez disposer de l'autorisation dataproc.batches.analyze.

    gcloud iam roles update CUSTOM_ROLE_ID --project=PROJECT_ID \
    --add-permissions="dataproc.batches.analyze"
    
  • Activer le dépannage assisté par Gemini pour Dataproc sans serveur:vous activez le dépannage assisté par Gemini pour Dataproc sans serveur lorsque vous envoyez chaque charge de travail par lot Spark récurrente à l'aide de la console Google Cloud, de gcloud CLI ou de l'API Dataproc. Une fois cette fonctionnalité activée sur une charge de travail par lot récurrente, Dataproc stocke une copie des journaux de charge de travail pendant 30 jours et utilise les données de journaux enregistrées pour fournir le dépannage de la charge de travail assisté par Gemini. Pour en savoir plus sur le contenu des journaux de charge de travail Spark, consultez la page Dataproc sans serveur pour les journaux Spark.

Console

Procédez comme suit pour activer le dépannage assisté par Gemini sur chaque charge de travail par lot Spark récurrente:

  1. Dans la console Google Cloud, accédez à la page Dataproc Lots.

    Accéder à la page "Lots" de Dataproc

  2. Pour créer une charge de travail par lot, cliquez sur Créer.

  3. Dans la section Conteneur, renseignez le nom de la cohorte, qui identifie le lot comme faisant partie d'une série de charges de travail récurrentes. L'analyse assistée par Gemini est appliquée à la deuxième charge de travail et aux suivantes qui sont envoyées avec ce nom de cohorte. Par exemple, spécifiez TPCH-Query1 comme nom de cohorte pour une charge de travail planifiée qui exécute une requête TPC-H quotidienne.

  4. Remplissez les autres sections de la page Créer un lot selon vos besoins, puis cliquez sur Envoyer. Pour en savoir plus, consultez la section Envoyer une charge de travail par lot.

gcloud

Exécutez la commande gcloud dataproc batches submit suivante de la gcloud CLI, en local dans une fenêtre de terminal ou dans Cloud Shell, pour activer le dépannage assisté par Gemini sur chaque charge de travail par lot Spark récurrente:

gcloud dataproc batches submit COMMAND \
    --region=REGION \
    --cohort=COHORT \
    other arguments ...

Remplacez les éléments suivants :

  • COMMAND: type de charge de travail Spark, tel que Spark, PySpark, Spark-Sql ou Spark-R.
  • REGION: région dans laquelle la charge de travail sera exécutée.
  • COHORT: nom de la cohorte, qui identifie le lot comme faisant partie d'une série de charges de travail récurrentes. L'analyse assistée par Gemini est appliquée à la deuxième charge de travail et aux suivantes qui sont envoyées avec ce nom de cohorte. Par exemple, spécifiez TPCH Query 1 comme nom de cohorte pour une charge de travail planifiée qui exécute une requête TPC-H quotidienne.

API

Incluez le nom RuntimeConfig.cohort dans une requête batches.create pour activer le dépannage assisté par Gemini sur chaque charge de travail par lot Spark récurrente. L'analyse assistée par Gemini est appliquée à la deuxième charge de travail et aux suivantes envoyées avec ce nom de cohorte. Par exemple, spécifiez TPCH-Query1 comme nom de cohorte pour une charge de travail planifiée qui exécute une requête TPC-H quotidienne.

Exemple :

...
runtimeConfig:
  cohort: TPCH-Query1
...

Dépannage assisté par Gemini pour Dataproc sans serveur

Les fonctionnalités suivantes en preview de dépannage assisté par Gemini sont disponibles sur les pages Détails des lots et Lots de la console Google Cloud.

  • Onglet Examiner: l'onglet "Examiner" de la page Détails du lot comporte une section "Aperçu de l'état (Preview)" avec les panneaux suivants de dépannage assisté par Gemini:

    • Qu'est-ce qui a été réglé automatiquement ? Si vous avez activé le réglage automatique sur une ou plusieurs charges de travail, ce panneau affiche les modifications de réglage automatique les plus récentes qui ont été appliquées aux charges de travail en cours d'exécution, terminées et ayant échoué.

    Panneau d'investigation du réglage automatique

    • Que se passe-t-il maintenant ? et Que puis-je faire ? Cliquez sur Demander à Gemini pour obtenir des recommandations afin de corriger les charges de travail ayant échoué ou d'améliorer les charges de travail réussies, mais lentes.

    Bouton "Demander à Gemini".

    Si vous cliquez sur Demander à Gemini, Gemini pour Google Cloud génère un résumé des erreurs, anomalies ou mises en surbrillance provenant des journaux de charge de travail, des métriques Spark et des événements Spark. Gemini pour Google Cloud peut également afficher une liste de mesures recommandées pour corriger une charge de travail ayant échoué ou améliorer les performances d'une charge de travail réussie, mais lente.

    Insights générés par Gemini pour Google Cloud.

  • Colonnes de dépannage assistée par Gemini:dans la version preview, la page contenant la liste des lots de Dataproc de la console Google Cloud inclut les colonnes What was Autotuned, What is happening now? et What can I do about it?.

    Les lots répertorient les colonnes Gemini.

    Le bouton Demander à Gemini ne s'affiche et n'est activé que si l'état d'un lot terminé est Failed, Cancelled ou Succeeded. Si vous cliquez sur Demander à Gemini, Gemini pour Google Cloud génère un résumé des erreurs, anomalies ou mises en surbrillance à partir des journaux de charge de travail, des métriques Spark et des événements Spark. Gemini pour Google Cloud peut également afficher une liste de mesures recommandées pour corriger une charge de travail ayant échoué ou améliorer les performances d'une charge de travail réussie, mais lente.

Principales métriques par lot

Dans la version preview, la page Détails du lot de la console Google Cloud inclut des graphiques qui affichent les valeurs importantes des métriques pour les charges de travail par lot. Les graphiques de métriques sont renseignés avec des valeurs une fois le lot terminé.

Tableau de bord des métriques par lot.

Tableau des métriques

Le tableau suivant répertorie les métriques des charges de travail Spark affichées sur la page Informations sur le lot de la console Google Cloud, et décrit comment les valeurs des métriques peuvent fournir des informations sur l'état et les performances des charges de travail.

Métrique Que s'affiche-t-il ?
Métriques au niveau de l'exécuteur
Ratio entre le délai de récupération de mémoire et l'environnement d'exécution de la JVM Cette métrique indique le ratio entre le temps de récupération de mémoire (récupération de mémoire) de la JVM et le temps d'exécution par exécuteur. Des ratios élevés peuvent indiquer des fuites de mémoire dans les tâches exécutées sur des exécuteurs particuliers ou des structures de données inefficaces, ce qui peut entraîner une forte perte d'objets.
Octets de disque répandus Cette métrique indique le nombre total d'octets de disque répandus sur différents exécuteurs. Si un exécuteur montre un nombre élevé d'octets de disque répandus, cela peut indiquer un décalage des données. Si la métrique augmente au fil du temps, cela peut indiquer que certaines étapes présentent une pression sur la mémoire ou des fuites de mémoire.
Octets lus et écrits Cette métrique affiche le nombre d'octets écrits par rapport au nombre d'octets lus par exécuteur. Des écarts importants au niveau des octets lus ou écrits peuvent indiquer des scénarios dans lesquels les jointures répliquées entraînent une amplification des données sur des exécuteurs spécifiques.
Enregistrements lus et écrits Cette métrique affiche les enregistrements lus et écrits par exécuteur. La lecture d'un grand nombre d'enregistrements avec un faible nombre d'enregistrements écrits peut indiquer un goulot d'étranglement dans la logique de traitement sur des exécuteurs spécifiques, entraînant la lecture des enregistrements en attendant. Les exécuteurs qui sont constamment à la traîne en termes de lecture et d'écriture peuvent indiquer des conflits de ressources sur ces nœuds ou des inefficacités de code spécifiques aux exécuteurs.
Ratio du temps d'écriture du brassage par rapport au temps d'exécution La métrique indique le temps que l'exécuteur a passé dans l'environnement d'exécution de brassage par rapport à l'environnement d'exécution global. Si cette valeur est élevée pour certains exécuteurs, cela peut indiquer un décalage des données ou une sérialisation inefficace des données. Vous pouvez identifier les étapes avec de longs temps d'écriture en brassage dans l'UI Spark. Recherchez les tâches aberrantes au sein de ces étapes qui prennent plus de temps que la moyenne. Vérifiez si les exécuteurs avec des temps d'écriture en mode aléatoire élevés affichent également une activité d'E/S sur le disque élevée. Une sérialisation plus efficace et des étapes de partitionnement supplémentaires peuvent s'avérer utiles. Des écritures d'enregistrements très volumineuses par rapport aux lectures d'enregistrements peuvent indiquer une duplication involontaire des données en raison de jointures inefficaces ou de transformations incorrectes.
Métriques au niveau de l'application
Progression des étapes Cette métrique indique le nombre d'étapes en échec, en attente et en cours d'exécution. Un grand nombre d'étapes en échec ou en attente peut indiquer un décalage des données. Recherchez les partitions de données et déboguez la raison de l'échec d'une étape à l'aide de l'onglet Stages (Étapes) de l'UI Spark.
Exécuteurs Spark par lot Cette métrique indique le nombre d'exécuteurs pouvant être requis par rapport au nombre d'exécuteurs en cours d'exécution. Une différence importante entre les exécuteurs obligatoires et les exécuteurs en cours d'exécution peut indiquer des problèmes d'autoscaling.
Métriques au niveau de la VM
Mémoire utilisée Cette métrique indique le pourcentage de mémoire de VM utilisée. Si le pourcentage de nœuds maîtres est élevé, cela peut indiquer que le pilote est sous pression sur la mémoire. Pour les autres nœuds de VM, un pourcentage élevé peut indiquer que les exécuteurs sont à court de mémoire, ce qui peut entraîner des déversements de disque importants et un délai d'exécution des charges de travail plus lent. Utilisez l'UI Spark pour analyser les exécuteurs afin de vérifier le temps de récupération de mémoire et les échecs de tâches élevés. Déboguer également le code Spark pour la mise en cache d'ensembles de données volumineux et la diffusion inutile de variables

Journaux de job

Dans la version preview, la page Détails du lot de la console Google Cloud répertorie les journaux des tâches (charge de travail par lot). Les journaux incluent des avertissements et des erreurs filtrés à partir du résultat de la charge de travail et des journaux Spark. Vous pouvez sélectionner la gravité du journal, ajouter un filtre,puis cliquer sur l'icône Afficher dans l'explorateur de journaux pour ouvrir les journaux par lot sélectionnés dans l'explorateur de journaux.

Exemple: L'explorateur de journaux s'ouvre après que vous avez choisi Errors dans le sélecteur de gravité sur la page Détails du lot de la console Google Cloud.

Explorateur de journaux Batch.

UI Spark (preview)

Si vous avez enregistré votre projet dans la fonctionnalité d'aperçu de l'UI Spark, vous pouvez afficher l'UI Spark dans la console Google Cloud sans avoir à créer un cluster Dataproc PHS (Persistent History Server). L'UI Spark collecte les détails de l'exécution Spark à partir des charges de travail par lot. Pour en savoir plus, consultez le guide de l'utilisateur distribué aux clients inscrits dans la version preview de l'UI Spark.