Utiliser l'interface de surveillance Dataflow

Lorsque vous exécutez votre pipeline à l'aide du service géré Dataflow, vous pouvez afficher la tâche correspondante et toute autre tâche au moyen de l'interface utilisateur Web de surveillance Dataflow. Elle vous permet de voir vos tâches Dataflow et d'interagir avec.

Vous pouvez accéder à l'interface de surveillance Dataflow à l'aide de Google Cloud Console. L'interface de surveillance peut vous montrer :

  • la liste de toutes les tâches Dataflow en cours d'exécution et des tâches précédemment exécutées au cours des 30 derniers jours ;
  • une représentation graphique de chaque pipeline ;
  • les détails de l'état, du type et de la version du SDK de votre tâche ;
  • des liens vers des informations sur les services Google Cloud exécutant votre pipeline (tels que Compute Engine et Cloud Storage) ;
  • toute erreur ou avertissement survenus au cours d'une tâche ;
  • des diagnostics supplémentaires pour une tâche.

Vous pouvez afficher les graphiques de surveillance des tâches dans l'interface de surveillance Dataflow. Ces graphiques affichent des métriques sur la durée d'une tâche de pipeline et incluent les informations suivantes :

  • Visibilité au niveau des étapes pour identifier celles susceptibles de causer un retard de pipeline
  • Informations statistiques pouvant révéler un comportement anormal
  • Métriques d'E/S pouvant vous aider à identifier les goulots d'étranglement dans vos sources et vos récepteurs

Accéder à l'interface de surveillance Dataflow

Pour accéder à l'interface de surveillance Dataflow, procédez comme suit :

  1. Connectez-vous à Cloud Console.
  2. Sélectionnez votre projet Google Cloud.
  3. Cliquez sur le menu en haut à gauche.
  4. Accédez à la section Big Data et cliquez sur Dataflow.

Une liste des tâches Dataflow ainsi que leur état respectif apparaissent. Si vous ne voyez aucune tâche, vous devez en exécuter une nouvelle. Pour savoir comment exécuter une tâche, consultez les guides de démarrage rapide de Dataflow.

Liste des tâches Dataflow en cours, ayant échoué et ayant réussi.
Figure 1 : Liste des tâches Dataflow dans Cloud Console ayant l'état Running (En cours d'exécution), Failed (Échec) et Succeeded (Réussie).

Une tâche peut présenter les états suivants :

  •  : l'interface de surveillance n'a pas encore reçu d'information d'état de la part du service Dataflow.
  • Running (en cours d'exécution) : la tâche est en cours d'exécution.
  • Starting... (en cours de démarrage) : la tâche est créée, mais le système a besoin d'un certain temps pour se préparer avant de la lancer.
  • En file d'attente : une tâche FlexRS est en file d'attente ou une tâche de modèle Flex est lancée (ce qui peut prendre plusieurs minutes).
  • Cancelling... (en cours d'annulation) : la tâche est en cours d'annulation.
  • Cancelled (annulée) : la tâche est annulée.
  • Draining… (Drainage…) : la tâche est en cours de drainage.
  • Drained (drainée) : la tâche est drainée.
  • Updating… (Mise à jour…) : la tâche est en cours de mise à jour.
  • Updated (mise à jour) : la tâche est mise à jour.
  • Succeeded (Réussie) : la tâche s'est correctement terminée.
  • Failed (Échec) : la tâche n'a pas abouti.

Pour plus d'informations sur un pipeline, cliquez sur le nom de cette tâche.

Accéder aux graphiques de surveillance des tâches

Pour accéder à un graphique de surveillance d'une tâche, cliquez sur son nom dans l'interface de surveillance Dataflow. La page Informations sur la tâche s'affiche. Elle contient les informations suivantes :

  • Job graph (Graphique de la tâche) : représentation visuelle de votre pipeline
  • Execution details (Détails de l'exécution) : outil permettant d'optimiser les performances de votre pipeline
  • Job metrics (Métriques de tâche) : métriques sur l'exécution de votre tâche
  • Volet Job info (Informations sur la tâche) : informations descriptives sur votre pipeline
  • Job logs (Journaux de la tâche) : journaux générés par le service Dataflow au niveau de la tâche
  • Journaux de nœud de calcul : journaux générés par le service Dataflow au niveau du nœud de calcul
  • Diagnostics: table indiquant l'origine des erreurs sur la chronologie choisie et les recommandations possibles pour votre pipeline.
  • Time selector (Sélecteur de temps) : outil permettant d'ajuster la période de vos métriques

Sur la page Détails de la tâche, vous pouvez basculer l'affichage de la tâche sur Graphique de la tâche, Détails de l'exécution et Métriques de la tâche. .

Vue de l'interface utilisateur de surveillance Dataflow, dans laquelle l'onglet "Job graph" (Graphique de la tâche) est sélectionné. Dans ce mode, vous pouvez afficher le graphique du pipeline, les informations sur les tâches, les journaux des tâches, les diagnostics et l'outil de sélection de temps.

Vue de l'interface utilisateur de surveillance Dataflow, dans laquelle l'onglet "Job metrics" (Métriques de tâche) est sélectionné.
Dans ce mode, vous pouvez afficher les graphiques de métriques de tâche, les informations sur la tâche, les journaux de la tâche, les journaux du nœud de calcul, les diagnostics et les rapports d'erreurs liés aux tâches et le sélecteur de temps.

Créer des alertes Cloud Monitoring

Dataflow est entièrement intégré à Cloud Monitoring, qui vous permet de créer des alertes lorsque votre tâche dépasse un seuil défini par l'utilisateur. Pour créer une alerte Cloud Monitoring à partir d'un graphique de métriques, cliquez sur Créer une règle d'alerte.

Le lien **Créer une règle d'alerte** vous permet de créer une alerte à partir d'un graphique de métriques.

Pour obtenir des instructions concernant la création de ces alertes, consultez la page Utiliser Cloud Monitoring pour les pipelines Dataflow. Si vous ne parvenez pas à afficher les graphiques de surveillance ou à créer des alertes, vous avez peut-être besoin d'autorisations Monitoring supplémentaires.

Mode plein écran

Pour afficher un graphique de métriques en plein écran, cliquez sur .

Utiliser le sélecteur de temps

Vous pouvez ajuster la période des métriques à l'aide du sélecteur de temps. Vous pouvez sélectionner une durée prédéfinie ou un intervalle de temps personnalisé pour analyser votre tâche.

Le sélecteur de temps vous permet de sélectionner une période en utilisant des incréments d'heures et de jours ou une plage personnalisée.

Pour les tâches par flux ou par lot en cours d'exécution, l'affichage par défaut des graphiques comporte les six dernières heures de métriques pour cette tâche. Pour les tâches par flux arrêtées ou terminées, l'affichage par défaut des graphiques comporte la durée totale d'exécution de la tâche.

Métriques des étapes et des nœuds de calcul

Vous pouvez afficher des graphiques pour les métriques suivantes :

  • Fraîcheur des données (pipelines de traitement par flux uniquement)
  • Latence du système (pipelines de traitement par flux uniquement)
  • Autoscaling
  • Débit
  • Utilisation du processeur
  • Décompte de journal d'erreur de nœud de calcul
  • Métriques d'entrée et de sortie

Pour accéder à des informations supplémentaires dans ces graphiques, cliquez sur la case à cocher "Développer la légende du graphique".

Le bouton d'activation de la légende se trouve à côté du bouton "Create alerting policy" (Créer une règle d'alerte).

Fraîcheur des données (pipelines de traitement par flux uniquement)

La fraîcheur des données correspond au temps écoulé entre le temps réel et la marque de sortie. Une marque de données de sortie est associée à chaque étape de votre pipeline. La marque de données de sortie T indique que les ressources de calcul ont traité tous les éléments avec une heure d'événement antérieure à T. La marque de données de sortie a pour limite la marque de données d'entrée la plus ancienne de tous les calculs effectués en amont. Si certaines données d'entrée n'ont pas encore été traitées, la marque de sortie peut être bloquée, ce qui affecte la fraîcheur des données.

Visualisation des données montrant la fraîcheur des données dans un pipeline de streaming.

Latence du système (pipelines de traitement par flux uniquement)

La latence du système correspond à la durée maximale, en secondes, pendant laquelle un élément de données est en cours de traitement ou en attente de traitement. Cette métrique indique le délai d'attente d'un élément dans une source du pipeline. La durée maximale est ajustée après le traitement. Les cas suivants sont également à prendre en considération :

  • S'il existe plusieurs sources et récepteurs, la latence du système correspond au délai d'attente maximum d'un élément dans une source avant qu'il ne soit écrit dans tous les récepteurs.
  • Parfois, une source ne fournit pas de valeur pour la période pendant laquelle un élément est en attente dans la source. En outre, l'élément peut ne pas avoir de métadonnées permettant de définir son heure d'événement. Dans ce scénario, la latence du système est calculée à partir du moment où le pipeline reçoit l'élément.

Visualisation de données montrant la latence du système dans un pipeline de streaming.

Autoscaling

Le service Dataflow choisit automatiquement le nombre d'instances de nœud de calcul nécessaires à l'exécution de votre tâche d'autoscaling. Le nombre d'instances de nœud de calcul peut changer au fil du temps en fonction des exigences de la tâche.

Visualisation des données montrant le nombre de nœuds de calcul dans un pipeline

Pour afficher l'historique des modifications de l'autoscaling, cliquez sur le bouton More history (Plus d'entrées d'historique). Une table contenant des informations sur l'historique des nœuds de calcul de votre pipeline s'affiche.

Tableau illustrant l'historique des nœuds de calcul d'un pipeline.

Débit

Le débit correspond au volume de données traitées à tout moment. Cette métrique par étape est affichée en tant que nombre d'éléments par seconde. Pour afficher cette métrique en octets par seconde, cliquez sur Throughput (elements/sec) (Débit (éléments/s))  > Throughput (bytes/sec) (Débit (octets/s)).

Visualisation des données montrant le débit de quatre étapes d'un pipeline.

Décompte de journal d'erreur de nœud de calcul

Le volet Worker error log count (Décompte de journal d'erreur de nœud de calcul) indique le taux d'erreurs observées sur tous les nœuds de calcul à tout moment.

Récapitulatif de chaque erreur consignée et de son nombre d'occurrences.

Utilisation du processeur

L'utilisation du processeur correspond à la quantité de processeur utilisée, divisée par la quantité de processeur disponible pour le traitement. Cette métrique par nœud de calcul est affichée sous forme de pourcentage.

Visualisation des données montrant l'utilisation du processeur dans un nœud de calcul Dataflow.

Métriques d'entrée et de sortie

Les métriques d'entrée et les métriques de sortie sont affichées si votre tâche de streaming Dataflow lit ou écrit des enregistrements à l'aide de Pub/Sub.

Par défaut, toutes les métriques d'entrée et toutes les métriques de sortie sont combinées. Pour modifier les statistiques affichées, une liste déroulante de filtres est fournie dans chaque section. Les images suivantes montrent tous les filtres disponibles.

Menu déroulant des filtres disponibles pour les métriques d'entrée d'une tâche Dataflow. Menu déroulant des filtres disponible pour les métriques de sortie d'une tâche Dataflow.

Les deux graphiques suivants sont affichés à la fois dans les sections Métriques d'entrée et Métriques de sortie.

Série de graphiques affichant les métriques d'entrée et de sortie pour une tâche de traitement par flux Dataflow

Requêtes par seconde

Le nombre de requêtes par seconde correspond au taux des requêtes API de lecture ou d'écriture de données de la source ou du récepteur au fil du temps. Si ce taux est égal à zéro ou diminue de manière significative pendant une période prolongée par rapport au comportement attendu, le pipeline risque d'être bloqué pour exécuter certaines opérations. Il est également possible qu'il n'y ait aucune donnée à lire. Dans ce cas, nous vous recommandons d'examiner les étapes comportant un filigrane système élevé. Examinez également les journaux du nœud de calcul pour identifier les erreurs ou les éléments indiquant que le traitement est lent.

Graphique montrant le nombre de requêtes API de lecture ou d'écriture de données de la source ou du récepteur au fil du temps.

Erreurs de réponse par seconde et par type

Le nombre d'erreurs de réponse par seconde et par type d'erreur correspond au taux d'échec des requêtes API de lecture ou d'écriture de données de la source ou du récepteur au fil du temps. Si de telles erreurs se produisent fréquemment, ces requêtes API peuvent ralentir le traitement. Ces requêtes API en échec doivent être examinées. Pour résoudre ces problèmes, consultez la documentation générale sur le code d'erreur d'E/S et les documents d'erreur spécifiques utilisés par la source ou le récepteur, tels que les codes d'erreur Pub/Sub.

Graphique illustrant la fréquence d'échec des requêtes API de lecture ou d'écriture de données de la source ou du récepteur au fil du temps

Utiliser l'explorateur de métriques

Les métriques d'E/S Dataflow suivantes peuvent être visualisées dans l'explorateur de métriques :

  • job/pubsub/write_count : requêtes de publication Pub/Sub provenant de PubsubIO.Write dans les tâches Dataflow
  • job/pubsub/read_count : demandes d'extraction Pub/Sub de PubsubIO.Read dans les tâches Dataflow
  • job/bigquery/write_count : requêtes de publication BigQuery de BigQueryIO.Write dans les tâches Dataflow. Les métriques job/bigquery/write_count sont disponibles dans les pipelines Python à l'aide de la transformation WriteToBigQuery avec method='STREAMING_INSERTS' activé sur Apache Beam v2.28.0 ou version ultérieure.

Pour obtenir la liste complète des métriques Dataflow, consultez la documentation sur les métriques Google Cloud.

Afficher un pipeline

Lorsque vous sélectionnez une tâche Dataflow spécifique, l'interface de surveillance affiche des informations sur le pipeline dans cette tâche. Ces informations incluent une représentation graphique de votre pipeline tel qu'il est exécuté sur le service Dataflow, un résumé de la tâche, le journal de celle-ci et des informations sur chaque étape du pipeline.

L'interface de surveillance Dataflow offre une représentation graphique de votre pipeline : le graphique d'exécution. Sur le graphique d'exécution d'un pipeline, chaque transformation est représentée sous la forme d'une case. Chaque case contient le nom de la transformation et certaines informations sur son état, par exemple :

  • Running (en cours d'exécution) : l'étape est en cours d'exécution.
  • Queued (En file d'attente) : l'étape d'une tâche FlexRS est en file d'attente.
  • Succeeded (Réussie) : l'étape s'est terminée avec succès.
  • Stopped (Arrêtée) : l'étape a été arrêtée, car la tâche s'est arrêtée.
  • Unknown (Inconnu) : l'étape n'a pas pu indiquer l'état.
  • Failed (Échec) : l'étape n'a pas abouti.

Graphique d'exécution de base

Code du pipeline :

Java


  // Read the lines of the input text.
  p.apply("ReadLines", TextIO.read().from(options.getInputFile()))
     // Count the words.
     .apply(new CountWords())
     // Write the formatted word counts to output.
     .apply("WriteCounts", TextIO.write().to(options.getOutput()));

Python


(
    pipeline
    # Read the lines of the input text.
    | 'ReadLines' >> beam.io.ReadFromText(args.input_file)
    # Count the words.
    | CountWords()
    # Write the formatted word counts to output.
    | 'WriteCounts' >> beam.io.WriteToText(args.output_path))
Graphique d'exécution :

Graphique d'exécution d'un pipeline WordCount tel qu'il s'affiche dans l'interface de surveillance de Dataflow.

Figure 2 : Code du pipeline WordCount affiché avec le graphique d'exécution obtenu dans l'interface de surveillance Dataflow.

Transformations composites

Dans le graphique d'exécution, vous pouvez développer les transformations composites (qui contiennent plusieurs sous-transformations imbriquées). Les transformations composites que vous pouvez développer sont identifiées par une flèche. Cliquez sur cette flèche pour développer la transformation et afficher les sous-transformations qu'elle contient.

Code du pipeline :

Java


  // The CountWords Composite Transform
  // inside the WordCount pipeline.

  public static class CountWords
    extends PTransform<PCollection<String>, PCollection<String>> {

    @Override
    public PCollection<String> apply(PCollection<String> lines) {

      // Convert lines of text into individual words.
      PCollection<String> words = lines.apply(
        ParDo.of(new ExtractWordsFn()));

      // Count the number of times each word occurs.
      PCollection<KV<String, Long>> wordCounts =
        words.apply(Count.<String>perElement());

      return wordCounts;
    }
  }

Remarque : Dans l'image de droite, l'étape FormatCounts n'est pas pertinente pour ce SDK.

Python


# The CountWords Composite Transform inside the WordCount pipeline.
@beam.ptransform_fn
def CountWords(pcoll):
  return (
      pcoll
      # Convert lines of text into individual words.
      | 'ExtractWords' >> beam.ParDo(ExtractWordsFn())
      # Count the number of times each word occurs.
      | beam.combiners.Count.PerElement()
      # Format each word and count into a printable string.
      | 'FormatCounts' >> beam.ParDo(FormatCountsFn()))

Graphique d'exécution :

Graphique d&#39;exécution d&#39;un pipeline WordCount, avec la transformation CountWords développée de façon à afficher les sous-transformations qui la constituent.

Figure 3 : Code du pipeline correspondant aux sous-étapes de la transformation CountWords, affiché avec le graphique d'exécution développé pour l'ensemble du pipeline.

Noms de transformation

Dataflow propose plusieurs solutions pour obtenir le nom de la transformation apparaissant dans le graphique d'exécution de l'interface de surveillance :

Java

  • Dataflow peut utiliser un nom que vous attribuez lorsque vous appliquez votre transformation. Le premier argument que vous fournissez à la méthode apply sert de nom à la transformation.
  • Dataflow peut déduire le nom de la transformation soit du nom de la classe (si vous avez créé une transformation personnalisée), soit du nom de votre objet fonction DoFn (si vous utilisez une transformation de base telle que ParDo).

Python

  • Dataflow peut utiliser un nom que vous attribuez lorsque vous appliquez votre transformation. Vous pouvez définir le nom d'une transformation en spécifiant l'argument label de celle-ci.
  • Dataflow peut déduire le nom de la transformation soit du nom de la classe (si vous avez créé une transformation personnalisée), soit du nom de votre objet fonction DoFn (si vous utilisez une transformation de base telle que ParDo).

Comprendre les métriques

Durée d'exécution

Lorsque vous cliquez sur une étape, la métrique Wall time (Durée d'exécution) s'affiche dans le panneau Step info (Informations sur l'étape). Cette métrique fournit une approximation du temps total passé sur l'ensemble des threads dans tous les nœuds de calcul pour les actions suivantes :

  • Initialisation de l'étape
  • Traitement des données
  • Mélange des données
  • Clôture de l'étape

Pour les étapes composites, il s'agit de la durée cumulée des étapes des composants. Cette estimation peut vous aider à identifier les étapes particulièrement lentes et à déterminer quelles parties de votre pipeline prennent plus de temps qu'elles ne le devraient.

Vous pouvez voir le temps nécessaire à l&#39;exécution d&#39;une étape dans votre pipeline.
Figure 4 : La métrique Wall time (Durée d'exécution) peut vous aider à vérifier que votre pipeline fonctionne efficacement.

Métriques des entrées secondaires

Les métriques des entrées secondaires vous montrent comment les modèles et algorithmes d'accès aux entrées secondaires affectent les performances de votre pipeline. Lorsque votre pipeline utilise une entrée secondaire, Dataflow écrit la collection sur une couche persistante (telle qu'un disque), et vos transformations lisent les données à partir de cette collection persistante. Ces lectures et écritures affectent le temps d'exécution de votre tâche.

L'interface de surveillance Dataflow affiche les métriques des entrées secondaires lorsque vous sélectionnez une transformation qui crée ou absorbe une collection d'entrée secondaire. Vous pouvez consulter les métriques dans la section Side Input Metrics (Métriques des entrées secondaires) du panneau Step info (Informations sur l'étape).

Transformations créant une entrée secondaire

Si la transformation sélectionnée crée une collection d'entrée secondaire, la section Side Input Metrics (Métriques des entrées secondaires) affiche le nom de la collection, ainsi que les métriques suivantes :

  • Time spent writing (Durée de l'écriture) : temps passé à écrire la collection de l'entrée secondaire.
  • Bytes written (Octets écrits) : nombre total d'octets écrits dans la collection de l'entrée secondaire.
  • Time & bytes read from side input (Durée de la lecture et octets lus à partir des entrées secondaires) : tableau contenant des métriques supplémentaires pour toutes les transformations absorbant la collection de l'entrée secondaire. Ces transformations sont appelées side input consumers (consommateurs de l'entrée secondaire).

Le tableau Time & bytes read from side input (Durée de la lecture et octets lus à partir des entrées secondaires) contient les informations suivantes pour chaque consommateur de l'entrée secondaire :

  • Side input consumer (Consommateur de l'entrée secondaire) : nom de la transformation consommant l'entrée secondaire.
  • Time spent reading (Durée de la lecture) : temps passé par ce consommateur à lire la collection de l'entrée secondaire.
  • Bytes read (Octets lus) : nombre d'octets lus par ce consommateur à partir de la collection de l'entrée secondaire.

Si votre pipeline comporte une transformation composite qui crée une entrée secondaire, déployez la transformation composite jusqu'à voir la sous-transformation spécifique qui crée l'entrée secondaire. Ensuite, sélectionnez cette sous-transformation pour afficher la section Side Input Metrics (Métriques des entrées secondaires).

La figure 5 illustre les métriques des entrées secondaires pour une transformation créant une collection d'entrée secondaire.

Vous pouvez sélectionner la sous-transformation. Ses métriques d&#39;entrées secondaires sont alors visibles dans le panneau latéral Informations sur l&#39;étape.
Figure 5 : Le graphique d'exécution comporte une transformation composite développée (MakeMapView). La sous-transformation créant l'entrée secondaire (CreateDataflowView) est sélectionnée, et les métriques des entrées secondaires sont visibles dans le panneau Informations de l'étape.

Transformations consommant une ou plusieurs entrées secondaires

Si la transformation sélectionnée consomme une ou plusieurs entrées secondaires, la section Side Input Metrics (Métriques des entrées secondaires) affiche le tableau Time & bytes read from side input (Durée de la lecture et octets lus à partir des entrées secondaires). Ce tableau contient les informations suivantes pour chaque collection de l'entrée secondaire :

  • Side input collection (Collection de l'entrée secondaire) : nom de la collection de l'entrée secondaire.
  • Time spent reading (Durée de la lecture) : temps passé par la transformation à lire cette collection de l'entrée secondaire.
  • Bytes read (Octets lus) : nombre d'octets lus par la transformation dans la collection de l'entrée secondaire.

Si votre pipeline comporte une transformation composite qui lit une entrée secondaire, déployez la transformation composite jusqu'à voir la sous-transformation spécifique qui lit l'entrée secondaire. Ensuite, sélectionnez cette sous-transformation pour afficher la section Side Input Metrics (Métriques des entrées secondaires).

La figure 6 illustre les métriques des entrées secondaires pour une transformation lisant une collection d'entrée secondaire.

Vous pouvez sélectionner la transformation. Ses métriques d&#39;entrées secondaires sont alors visibles dans le panneau latéral Informations sur l&#39;étape.
Figure 6 : La transformation JoinBothCollections lit une collection de l'entrée secondaire L'option JoinBothCollections est sélectionnée dans le graphique d'exécution, et les métriques des entrées secondaires sont visibles dans le panneau latéral Informations sur l'étape.

Identifier les problèmes de performance des entrées secondaires

La réitération est un problème de performances courant lié aux entrées secondaires. Si votre PCollection d'entrée secondaire est trop volumineuse, les nœuds de calcul ne peuvent pas mettre en cache l'intégralité de la collection. Par conséquent, les nœuds de calcul doivent régulièrement lire les données depuis le stockage persistant de la collection de l'entrée secondaire.

Dans la figure 7, les métriques des entrées secondaires montrent que le nombre total d'octets lus dans la collection de l'entrée secondaire est bien supérieur à la taille de la collection (nombre total d'octets écrits).

Vous pouvez sélectionner la transformation. Ses métriques d&#39;entrées secondaires sont alors visibles dans le panneau latéral Informations sur l&#39;étape.
Figure 7 : Exemple de réitération. La collection de l'entrée secondaire a une taille de 563 Mo, et la somme des octets lus par les transformations consommatrices atteint pratiquement 12 Go.

Pour améliorer les performances de ce pipeline, modifiez votre algorithme pour éviter les itérations ou la récupération répétée des données de l'entrée secondaires. Dans cet exemple, le pipeline calcule le produit cartésien de deux collections. Pour chaque élément de la collection principale, l'algorithme parcourt l'ensemble de la collection de l'entrée secondaire. Vous pouvez améliorer le modèle d'accès du pipeline en regroupant plusieurs éléments de la collection principale. Cette modification réduit le nombre de lectures de la collection de l'entrée secondaire requises par les nœuds de calcul.

Un autre problème de performances courant peut survenir si votre pipeline effectue une jointure en appliquant une fonction ParDo sur une ou plusieurs entrées secondaires volumineuses. Dans ce cas, les nœuds de calcul consacrent une large proportion du temps de traitement de la jointure à lire les données des collections d'entrées secondaires.

La figure 8 illustre des exemples de métriques des entrées secondaires dans ce type de contexte :

Vous pouvez sélectionner la transformation. Ses métriques d&#39;entrées secondaires sont alors visibles dans le panneau latéral Informations sur l&#39;étape.
Figure 8 : Le temps total de traitement de la transformation JoinBothCollections est de 18 min 31 s. Les nœuds de calcul passent la majeure partie du temps de traitement (10 min 3 s) à lire la collection de l'entrée secondaire, qui a une taille de 10 Go.

Pour améliorer les performances de ce pipeline, utilisez CoGroupByKey au lieu des entrées secondaires.

Recommandations et diagnostics

Diagnostic

L'onglet Diagnostics, sous Logs (Journaux), collecte et affiche certaines entrées de journal générées dans vos pipelines. Il s'agit par exemple des messages indiquant un problème probable avec le pipeline, ainsi que des messages d'erreur avec des traces de pile. Les entrées de journal collectées sont dédupliquées et combinées en groupes d'erreurs.

Onglet &quot;Diagnostics&quot; d&#39;une tâche Dataflow avec un groupe d&#39;erreurs &quot;Service Error&quot; (Erreur de service).

Le rapport d'erreurs comprend les informations suivantes :

  • Une liste des erreurs avec les messages correspondants
  • Le nombre d'occurrences de chaque erreur
  • Un histogramme indiquant quand est survenue chaque erreur
  • L'heure à laquelle l'erreur s'est produite pour la dernière fois.
  • Heure à laquelle l'erreur s'est produite pour la première fois.
  • L'état de l'erreur.

Pour afficher le rapport d'erreurs pour une erreur spécifique, cliquez sur la description dans la colonne Erreurs. La page Error Reporting s'affiche. S'il s'agit d'une erreur de service, un lien vers la documentation contenant des instructions supplémentaires s'affiche ("Guide de dépannage").

Page de détails du groupe d&#39;erreurs pour une erreur de service Dataflow.

Pour en savoir plus sur cette page, consultez la section Afficher les erreurs.

Recommandations

L'onglet Recommandations affiche des insights Dataflow concernant le pipeline. Le but de ces insights est d'identifier les situations dans lesquelles des améliorations de performances et des optimisations des coûts sont possibles.

Onglet &quot;Recommendations&quot; (Recommandations) d&#39;une tâche Dataflow avec des exemples de recommandations.

Activer les recommandations

Vous pouvez activer les recommandations en définissant l'option --experiments=enable_recommendations pour le pipeline.

Étape suivante

  • Découvrez comment utiliser les détails de l'exécution pour optimiser une tâche Dataflow.

  • Explorez Cloud Monitoring pour créer des alertes et afficher les métriques Dataflow, y compris des métriques personnalisées.