Dataflow-Monitoring-Oberfläche verwenden

Wenn Sie eine Pipeline mit dem verwalteten Dataflow-Dienst ausführen, können Sie diesen und alle anderen Jobs über die webbasierte Monitoring-Oberfläche von Dataflow aufrufen. Über die Monitoring-Oberfläche können Sie Ihre Dataflow-Jobs ansehen und mit ihnen interagieren.

Sie können mit der Google Cloud Console auf die Monitoring-Oberfläche von Dataflow zugreifen. Auf dieser wird Folgendes angezeigt:

  • Eine Liste aller derzeit ausgeführten Dataflow-Jobs und bereits abgeschlossene Jobs der letzten 30 Tage
  • Eine grafische Darstellung aller Pipelines
  • Details zum Status, zur Ausführung und zur SDK-Version eines Jobs
  • Links zu Informationen zu den Google Cloud-Diensten, auf denen Ihre Pipeline ausgeführt wird, z. B. Compute Engine und Cloud Storage.
  • Alle Fehler oder Warnungen, die während eines Jobs auftreten

Sie können in der Dataflow-Monitoring-Oberfläche Diagramme zum Job-Monitoring aufrufen. Diese Diagramme zeigen Messwerte für die Dauer eines Pipelinejobs und enthalten folgende Informationen:

  • Sichtbarkeit auf Schrittebene zum Erkennen von Schritten, die Pipelineverzögerungen verursachen können
  • Statistische Informationen, die auf ungewöhnliches Verhalten hinweisen können
  • E/A-Messwerte, mit denen Sie Engpässe in Quellen und Senken identifizieren können.

Auf die Dataflow-Monitoring-Oberfläche zugreifen

So greifen Sie auf die Monitoring-Oberfläche von Dataflow zu:

  1. Melden Sie sich in der Cloud Console an.
  2. Wählen Sie Ihr Google Cloud-Projekt aus.
  3. Klicken Sie auf das Menü in der oberen linken Ecke.
  4. Gehen Sie zum Abschnitt Big Data und klicken Sie auf Dataflow.

Eine Liste der Dataflow-Jobs mit ihrem Status wird angezeigt. Wenn Sie keine Jobs sehen, müssen Sie einen neuen Job ausführen. Informationen zum Ausführen eines Jobs finden Sie in den Kurzanleitungen zu Dataflow.

Liste der Cloud Dataflow-Jobs mit Jobs im Status
Abbildung 1: Eine Liste von Dataflow-Jobs in der Cloud Console mit Jobs im Status Aktiv, Fehlgeschlagen und Erfolgreich.

Ein Job kann folgende Statuswerte haben:

  • : Die Monitoring-UI hat noch keinen Status vom Dataflow-Dienst erhalten.
  • Running (Aktiv): Der Job wird gerade ausgeführt.
  • Starting... (Wird gestartet): Der Job ist erstellt, das System benötigt jedoch vor dem Start noch etwas Vorbereitungszeit.
  • Queued (In der Warteschlange): Ein FlexRS-Job wurde in die Warteschlange gestellt.
  • Canceling... (Wird abgebrochen): Der Job wird gerade abgebrochen.
  • Canceled (Abgebrochen): Der Job wurde vom Nutzer abgebrochen.
  • Draining… (Draining läuft…): Der Job wird gerade per Drain beendet.
  • Drained (Draining angewendet): Der Job wurde vom Nutzer per Drain beendet.
  • Updating… (Wird aktualisiert…): Der Job wird gerade aktualisiert.
  • Updated (Aktualisiert): Der Job wurde vom Nutzer aktualisiert.
  • Succeeded (Erfolgreich): Der Job wurde erfolgreich abgeschlossen.
  • Failed (Fehlgeschlagen): Der Job konnte nicht abgeschlossen werden.

Weitere Informationen zu einer Pipeline erhalten Sie durch Klicken auf den Jobnamen.

Auf Diagramme zum Job-Monitoring zugreifen

Klicken Sie auf der Dataflow-Monitoring-Oberfläche auf den Jobnamen, um auf seine Monitoring-Diagramme zuzugreifen. Dadurch gelangen Sie zur Seite mit den Jobdetails, die Folgendes enthält:

  • Jobgrafik: die visuelle Darstellung Ihrer Pipeline
  • Jobmesswerte: Messwerte zur Ausführung des Jobs
  • Bereich Jobinfo: beschreibende Informationen zu Ihrer Pipeline
  • Joblogs: vom Dataflow-Dienst auf Jobebene generierte Logs
  • Workerlogs: vom Dataflow-Dienst auf Worker-Ebene generierte Logs
  • Fehlerberichte zu Jobs: Diagramme, die Aufschluss darüber geben, wo Fehler auf der ausgewählten Zeitachse aufgetreten sind sowie die Anzahl aller protokollierten Fehler
  • Zeitauswahl: Tool, mit dem Sie die Zeitspanne der Messwerte anpassen können.

Auf der Seite mit den Jobdetails können Sie die Jobansicht über die Tabs Jobgrafik und Jobmesswerte wechseln.

Ansicht der Monitoring-UI von Dataflow mit ausgewähltem Tab für die Jobgrafik In diesem Modus können Sie Ihre Pipelinegrafik, Jobinformationen, Joblogs, Workerlogs, Fehlerberichte zu Jobs und das Zeitauswahl-Tool aufrufen.

Ansicht der Monitoring-Benutzeroberfläche von Dataflow mit ausgewähltem Tab für Jobmesswerte
In diesem Modus können Sie Diagramme zu Jobmesswerten, Jobinformationen, Joblogs, Workerlogs, Fehlerberichte zu Jobs und das Zeitauswahl-Tool aufrufen.

Wenn Sie zur Legacy-Version der Seite Jobdetails zurückkehren möchten, klicken Sie oben auf der Seite auf Zurück zur alten Jobseite.

Vollbildmodus

Klicken Sie zum Aufrufen eines Messwertdiagramms im Vollbildmodus auf .

Zeitauswahl-Tool verwenden

Sie können die Zeitspanne der Messwerte mit dem Tool zur Zeitauswahl anpassen. Sie können eine vordefinierte Dauer oder ein benutzerdefiniertes Zeitintervall für die Auswertung des Jobs auswählen.

Mit dem Zeitauswahl-Tool können Sie einen Zeitraum in Stunden- und Tagesschritten oder einen benutzerdefinierten Bereich auswählen.

Bei Streaming- oder In-Flight-Batch-Jobs gibt die Standardanzeige der Diagramme die Messwerte der letzten sechs Stunden für den entsprechenden Job wieder. Bei angehaltenen oder fertigen Streamingjobs gibt die Standardanzeige der Diagramme die gesamte Laufzeit der Jobdauer wieder.

Messwerte pro Schritt und Worker

Sie können Diagramme für die folgenden Messwerte aufrufen:

  • Datenaktualität (nur Streamingpipelines)
  • Systemlatenz (nur Streamingpipelines)
  • Autoscaling
  • Durchsatz
  • CPU-Auslastung
  • Logzähler für Worker-Fehler
  • Eingabe- und Ausgabemesswerte

Klicken Sie für den Zugriff auf zusätzliche Informationen in diesen Diagrammen auf die Ein-/Aus-Schaltfläche für die Legende, um auf „Diagrammlegende einblenden“ umzuschalten.

Die Ein-/Aus-Schaltfläche für die Legende befindet sich neben der Schaltfläche „Benachrichtigungsrichtlinie erstellen“.

Durchsatz

Der Durchsatz ist das Datenvolumen, das zu einem bestimmten Zeitpunkt verarbeitet wird. Dieser Messwert pro Schritt wird als Anzahl der Elemente pro Sekunde angezeigt. Wenn Sie diesen Messwert in Byte pro Sekunde sehen möchten, klicken Sie auf Durchsatz (Elemente/Sek.)  > Durchsatz (Byte/Sek.).

Datenvisualisierung, die den Durchsatz von vier Schritten in einer Pipeline zeigt.

CPU-Auslastung

Die CPU-Auslastung ist die genutzte CPU-Kapazität, geteilt durch die CPU-Kapazität, die für die Verarbeitung verfügbar ist. Dieser Messwert pro Worker wird als Prozentsatz angezeigt.

Datenvisualisierung, die die CPU-Auslastung in einem Dataflow-Worker zeigt.

Eingabe- und Ausgabemesswerte

Eingabemesswerte und Ausgabemesswerte werden angezeigt, wenn Ihr Dataflow-Streamingjob Einträge über Pub/Sub gelesen oder geschrieben hat.

Die folgenden drei Diagramme werden sowohl im Bereich Eingabemesswerte als auch im Bereich Ausgabemesswerte angezeigt.

Eine Reihe von Diagrammen, die die Eingabe- und Ausgabemesswerte für einen Dataflow-Streamingjob zeigen

Anfragen pro Sekunde

„Anfragen pro Sekunde“ ist die Rate von API-Anfragen der Quelle oder Senke zum Lesen oder Schreiben von Daten im Zeitverlauf. Wenn diese Rate im Vergleich zum erwarteten Verhalten auf null fällt oder für längere Zeit erheblich sinkt, ist die Pipeline unter Umständen für das Ausführen bestimmter Vorgänge blockiert (oder es sind keine zu lesenden Daten vorhanden) und Sie sollten Schritte mit einem hohen Systemwasserzeichen prüfen. Daneben sollten Sie die Worker-Logs auf Fehler oder Hinweise prüfen, die auf eine langsame Verarbeitung schließen lassen.

Ein Diagramm mit der Anzahl von API-Anfragen der Quelle oder Senke zum Lesen oder Schreiben von Daten im Zeitverlauf

Antwortfehler pro Sekunde nach Fehlertyp

„Antwortfehler pro Sekunde nach Fehlertyp“ ist die Rate fehlgeschlagener API-Anfragen von der Quelle oder Senke zum Lesen oder Schreiben von Daten im Zeitverlauf. Wenn Fehler häufig und wiederholt auftreten, können diese API-Anfragen Verzögerungen bei der Verarbeitung verursachen und sollten untersucht werden. Informationen zur Behebung dieser Probleme finden Sie in der allgemeinen Dokumentation zu E/A-Fehlercodes und allen von der Quelle oder Senke verwendeten Dokumentationen zu spezifischen Fehlercodes, z. B. den Pub/Sub-Fehlercodes.

Ein Diagramm mit der Rate fehlgeschlagener API-Anfragen der Quelle oder Senke zum Lesen oder Schreiben von Daten im Zeitverlauf

Anfragenlatenz

Die Anfragenlatenz ist die Länge der Antwortzeiten für verschiedene Perzentile. Das 95. Perzentil gibt beispielsweise an, dass 95 % der Anfragen weniger als die angezeigte Zeit in Anspruch nehmen. Wenn die Antwortzeit für das 99. Perzentil bei einer bestimmten Eingabe oder Ausgabe relativ lang ist, kann dies auf ein Heißlaufproblem hindeuten. Dieses Problem tritt auf, wenn viele Elemente auf eine Art gelesen oder geschrieben werden, die dazu führt, dass der Dienst eine Ressource überlastet. Ein Beispiel dafür finden Sie unter Leistung in Cloud Bigtable verstehen.

Ein Diagramm mit der Länge der Antwortzeiten für das 50., 95. und 99. Perzentil.

Metrics Explorer verwenden

Die folgenden Dataflow-E/A-Messwerte können in Metrics Explorer aufgerufen werden:

  • job/pubsub/write_count: Pub/Sub-Veröffentlichungsanfragen von PubsubIO.Write in Dataflow-Jobs
  • job/pubsub/read_count: Pub/Sub-Pull-Anfragen von Pubsub.IO.Read in Dataflow-Jobs
  • job/pubsub/write_latencies: Latenzen bei Pub/Sub-Veröffentlichungsanfragen von PubsubIO.Write in Dataflow-Jobs.
  • job/pubsub/read_latencies: Latenzen bei Pub/Sub-Pull-Anfragen von Pubsub.IO.Read in Dataflow-Jobs.

Die vollständige Liste der Dataflow-Messwerte finden Sie in der Dokumentation zu Google Cloud-Messwerten.

Cloud Monitoring-Benachrichtigungen erstellen

Dataflow ist vollständig in Cloud Monitoring eingebunden, sodass Sie Benachrichtigungen erstellen können, wenn Ihr Job einen benutzerdefinierten Grenzwert überschreitet.

Eine Anleitung zum Erstellen dieser Benachrichtigungen finden Sie auf der Seite Cloud Monitoring für Dataflow-Pipelines verwenden.

Pipeline ansehen

Wenn Sie einen bestimmten Dataflow-Job auswählen, zeigt die Monitoring-Oberfläche detaillierte Informationen zur Pipeline in diesem Job an. Dazu gehören eine grafische Darstellung der Pipeline während ihrer Ausführung in Dataflow sowie eine Jobübersicht, das Joblog und detaillierte Informationen zu jedem Schritt in der Pipeline.

Die Dataflow-Monitoring-Oberfläche liefert eine grafische Darstellung Ihrer Pipeline: die Ausführungsgrafik. Darin wird jede Transformation in der Pipeline als Feld dargestellt. Jedes Feld enthält den Transformationsnamen und Informationen zum Jobstatus, darunter:

  • Running (Aktiv): Der Schritt wird gerade ausgeführt.
  • Queued (In der Warteschlange): Der Schritt in einem FlexRS-Job wurde in die Warteschlange gestellt.
  • Succeeded (Erfolgreich): Der Schritt wurde erfolgreich abgeschlossen.
  • Stopped (Angehalten): Der Schritt wurde angehalten, weil der Job angehalten wurde.
  • Unknown (Unbekannt): In diesem Schritt konnte der Status nicht gemeldet werden.
  • Failed (Fehlgeschlagen): Der Schritt konnte nicht abgeschlossen werden.

Einfache Ausführungsgrafik

Pipelinecode:

Java: SDK 2.x


  // 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()))
         .to(options.getOutput()));

Python


(
    p
    # Read the lines of the input text.
    | 'ReadLines' >> beam.io.ReadFromText(options.input)
    # Count the words.
    | CountWords()
    # Write the formatted word counts to output.
    | 'WriteCounts' >> beam.io.WriteToText(options.output))

Java: SDK 1.x

Ausführungsgrafik:

Ausführungsgrafik für eine WordCount-Pipeline, wie sie in der Monitoring-Oberfläche von Cloud Dataflow angezeigt wird

Abbildung 3: Der Pipelinecode für eine WordCount-Pipeline neben der daraus resultierenden Ausführungsgrafik in der Dataflow-Überwachungsoberfläche.

Zusammengesetzte Transformationen

In der Ausführungsgrafik lassen sich zusammengesetzte Transformationen – solche, die mehrere verschachtelte Untertransformationen enthalten – maximieren. Diese Transformationen sind in der Grafik mit einem Pfeil markiert. Klicken Sie auf den Pfeil, um die Transformation zu maximieren und die darin enthaltenen Untertransformationen anzeigen zu lassen.

Pipelinecode:

Java: SDK 2.x


  // 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;
    }
  }

Hinweis: FormatCounts im Bild rechts ist für dieses SDK ohne Bedeutung.

Python


# The CountWords Composite Transform inside the WordCount pipeline.
class CountWords(beam.PTransform):
  def expand(self, 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()))

Java: SDK 1.x

Ausführungsgrafik:

Die Ausführungsgrafik für eine WordCount-Pipeline mit erweiterter CountWords-Transformation, um die darin enthaltenen Untertransformationen zu zeigen

Abbildung 3: Der Pipelinecode für die Teilschritte der CountWords-Transformation neben der erweiterten Ausführungsgrafik der gesamten Pipeline.

Transformationsnamen

Dataflow hat verschiedene Möglichkeiten, den Transformationsnamen zu ermitteln, der in der Ausführungsgrafik angezeigt wird:

Java: SDK 2.x

  • Dataflow kann den Namen verwenden, den Sie beim Anwenden der Transformation zuweisen. Das erste Argument, das Sie an die Methode apply geben, ist Ihr Transformationsname.
  • Dataflow kann den Transformationsnamen ableiten – entweder vom Klassennamen, wenn Sie eine benutzerdefinierte Transformation erstellt haben, oder vom Namen des Funktionsobjekts DoFn, wenn Sie eine Kerntransformation wie ParDo verwenden.

Python

  • Dataflow kann den Namen verwenden, den Sie beim Anwenden der Transformation zuweisen. Durch das Angeben des Arguments label der Transformation können Sie den Transformationsnamen angeben.
  • Dataflow kann den Transformationsnamen ableiten – entweder vom Klassennamen, wenn Sie eine benutzerdefinierte Transformation erstellt haben, oder vom Namen des Funktionsobjekts DoFn, wenn Sie eine Kerntransformation wie ParDo verwenden.

Java: SDK 1.x

Messwerte verstehen

Echtzeit

Wenn Sie auf einen Schritt klicken, wird der Messwert Wall time (Echtzeit) angezeigt. Die Echtzeit gibt die ungefähre Zeit an, die in allen Threads in allen Workern für die folgenden Aktionen aufgewendet wurde:

  • Schritt initialisieren
  • Daten verarbeiten
  • Daten nach dem Zufallsprinzip verteilen
  • Schritt beenden

Bei zusammengesetzten Schritten zeigt die Echtzeit die Summe der für die einzelnen Schritte aufgewendeten Zeit an. Mit diesem Wert können Sie Schritte ermitteln, die mehr Zeit benötigen, und so feststellen, welcher Teil Ihrer Pipeline mehr Zeit in Anspruch nimmt, als er sollte.

Sie können sehen, wie lange es dauert, einen Schritt in Ihrer Pipeline auszuführen.
Abbildung 4: Der Messwert für Wall time (Echtzeit) gibt an, ob Ihre Pipeline effizient ausgeführt wird.

Im Blog Understanding timing in Dataflow pipelines (Informationen zum Timing in Dataflow-Pipelines) finden Sie ein Beispiel, in dem anhand des Messwerts Wall Time (Echtzeit), früher Total Execution Time (Gesamtausführungszeit), ermittelt wird, warum die Ausführung einer Pipeline mehr Zeit als erwartet in Anspruch nimmt.

Messwerte zu Nebeneingaben

Messwerte zu Nebeneingaben zeigen an, wie sich die Zugriffsmuster und -algorithmen Ihrer Nebeneingaben auf die Leistung der Pipeline auswirken. Wenn Ihre Pipeline eine Nebeneingabe verwendet, schreibt Dataflow die Sammlung in eine nichtflüchtige Ebene, z. B. auf eine Festplatte, und wandelt die Leseergebnisse aus dieser nichtflüchtigen Sammlung um. Diese Lese- und Schreibvorgänge beeinflussen die Ausführungszeit Ihres Jobs.

Die Monitoring-Oberfläche von Dataflow zeigt Messwerte zu Nebeneingaben an, wenn Sie eine Transformation auswählen, die eine Sammlung von Nebeneingaben erstellt oder verwendet. Sie können sich die Messwerte auf dem Tab Schritt im Bereich Messwerte zu Nebeneingaben ansehen.

Transformationen, die eine Nebeneingabe erstellen

Wenn die ausgewählte Transformation eine Sammlung von Nebeneingaben erstellt, werden im Bereich Messwerte zu Nebeneingaben der Name der Sammlung und die folgenden Messwerte angezeigt.

  • Zeit zum Schreiben: Die Ausführungszeit für das Schreiben der Sammlung von Nebeneingaben.
  • Geschriebene Byte: Gesamtzahl der Byte, die in die Sammlung der Nebeneingaben geschrieben wurden.
  • Zeit und Byte zum Lesen von Nebeneingaben: Eine Tabelle mit zusätzlichen Messwerten für alle Transformationen, die auf die Sammlung der Nebeneingaben zugreifen. Sie werden als Nutzer von Nebeneingaben bezeichnet.

Unter Zeit und Byte zum Lesen von Nebeneingaben werden für jeden Nutzer der Nebeneingaben folgende Informationen angezeigt:

  • Nutzer der Nebeneingabe: Transformationsname des Nutzers der Nebeneingabe
  • Zeit zum Lesen: Zeit, die für das Lesen der Nebeneingabesammlung benötigt wurde.
  • Gelesene Byte: Anzahl der Byte, die dieser Nutzer aus der Nebeneingabesammlung gelesen hat

Wenn Ihre Pipeline eine zusammengesetzte Transformation enthält, die eine Nebeneingabe erzeugt, erweitern Sie die zusammengesetzte Transformation, bis Sie die spezifische Subtransformation sehen, von der die Nebeneingabe erzeugt wird. Wählen Sie dann diese Subtransformation aus, um den Abschnitt Messwerte zu Nebeneingaben zu sehen.

Abbildung 5 zeigt Messwerte zu Nebeneingaben für eine Transformation, die eine Sammlung von Nebeneingaben erstellt.

Sie können die Subtransformation auswählen, um deren Messwerte zu Nebeneingaben auf dem Tab
Abbildung 5: Die Ausführungsgrafik enthält eine erweiterte zusammengesetzte Transformation (MakeMapView). Die Subtransformation, die die Nebeneingabe erstellt (CreateDataflowView), ist ausgewählt und die Messwerte zu Nebeneingaben werden auf dem Tab Schritt angezeigt.

Transformationen, die eine oder mehrere Nebeneingaben nutzen

Wenn die ausgewählte Transformation eine oder mehrere Nebeneingaben nutzt, wird im Bereich Messwerte zu Nebeneingaben die Tabelle Zeit und Byte zum Lesen von Nebeneingaben angezeigt. Diese Tabelle enthält für jede Nebeneingabesammlung folgende Informationen:

  • Nebeneingabesammlung: Name der Nebeneingabesammlung
  • Zeit zum Lesen: Zum Lesen dieser Nebeneingabesammlung benötigte Zeit
  • Gelesene Byte: Anzahl der Byte, die die Transformation aus dieser Nebeneingabesammlung gelesen hat

Wenn Ihre Pipeline eine zusammengesetzte Transformation enthält, die eine Nebeneingabe liest, erweitern Sie die zusammengesetzte Transformation, bis Sie die bestimmte Subtransformation sehen, die die Nebeneingabe liest. Wählen Sie dann diese Subtransformation aus, um den Abschnitt Messwerte zu Nebeneingaben zu sehen.

Abbildung 6 zeigt Messwerte zu Nebeneingaben für eine Transformation, die aus einer Sammlung von Nebeneingaben liest.

Sie können die Transformation auswählen, um deren Messwerte zu Nebeneingaben auf dem Tab
Abbildung 6: Die Transformation JoinBothCollections liest aus einer Sammlung von Nebeneingaben. JoinBothCollections ist in der Ausführungsgrafik markiert und die Messwerte zu Nebeneingaben werden auf dem Tab Schritt angezeigt.

Leistungsprobleme bei Nebeneingaben identifizieren

Ein häufig auftretendes Leistungsproblem bei Nebeneingaben wird durch Wiederholung verursacht. Wenn die Nebeneingabesammlung PCollection zu groß ist, können die Worker nicht die gesamte Sammlung im Cache speichern. Das bedeutet, die Worker müssen mehrmals aus der nichtflüchtigen Nebeneingabesammlung lesen.

In Abbildung 7 zeigen die Messwerte der Nebeneingaben, dass die Gesamtzahl der Byte, die aus der Sammlung von Nebeneingaben gelesen wurden, viel höher ist als die Größe der Sammlung selbst (insgesamt geschriebene Byte).

Sie können die Transformation auswählen, um deren Messwerte zu Nebeneingaben auf dem Tab
Abbildung 7: Ein Beispiel für eine Wiederholung. Die Nebeneingabesammlung ist 563 MB groß und die Summe der Byte, die von den auf die Sammlung zugreifenden Transformationen gelesen werden, beträgt fast 12 GB.

Um die Leistung dieser Pipeline zu verbessern, müssen Sie den Algorithmus neu gestalten, um zu vermeiden, dass die Nebeneingabedaten iteriert oder wiederholt abgerufen werden. In diesem Fall erstellt die Pipeline das kartesische Produkt zweier Sammlungen. Der Algorithmus durchläuft die gesamte Nebeneingabesammlung für jedes Element der Hauptsammlung. Sie können das Zugriffsmuster der Pipeline verbessern, indem Sie mehrere Elemente der Hauptsammlung gruppieren. Diese Änderung verringert die Häufigkeit, mit der Worker das Lesen der Nebeneingabesammlung wiederholen müssen.

Ein weiteres Leistungsproblem kann auftreten, wenn Ihre Pipeline einen Join vornimmt. Dabei wird ein ParDo auf eine oder mehrere große Nebeneingaben angewendet. In diesem Fall können die Worker einen hohen prozentualen Anteil der Ausführungszeit für die Joins zum Lesen der Eingabesammlungen benötigen.

Abbildung 8 zeigt Beispielmesswerte für Nebeneingaben, die dieses Problem verdeutlichen:

Sie können die Transformation auswählen, um deren Messwerte zu Nebeneingaben auf dem Tab
Abbildung 8: Die Transformation JoinBothCollections hat eine Ausführungszeit von 18 Minuten und 31 Sekunden. Worker verbringen den Großteil der Ausführungszeit (10 Min. und 3 Sek.) mit dem Lesen der 10 GB großen Sammlung von Nebeneingaben.

Um die Leistung dieser Pipeline zu verbessern, können Sie anstelle von Nebeneingaben CoGroupByKey verwenden.

Systemlatenz und Datenaktualität

Im Fenster Job summary (Jobübersicht) werden Grafiken angezeigt, die die Messwerte für Systemlatenz und Datenaktualität für die letzten sechs Stunden darstellen. Die Daten werden alle 60 Sekunden abgerufen. Nach dem Abruf werden bis zu 180 Sekunden keine Daten angezeigt.

Systemlatenz

Die Systemlatenz ist die aktuelle maximale Dauer, die ein Datenelement verarbeitet wurde oder auf die Verarbeitung wartet. Dieser Messwert gibt an, wie viele Sekunden ein Element innerhalb einer bestimmten Quelle in der Pipeline wartet. Die maximale Dauer wird nach der Verarbeitung angepasst. Weitere Hinweise:

  • Wenn es mehrere Quellen und Senken gibt, ist Systemlatenz die längste Zeitdauer, die ein Element innerhalb einer Quelle wartet, bevor es in alle Senken geschrieben wird.
  • Wenn eine Quelle keinen Wert dafür angibt, wie lange ein Element innerhalb einer Quelle wartet, und das Element keine Metadaten dafür hat, seine Ereigniszeit zu definieren, wird die Systemlatenz ab dem Zeitpunkt berechnet, zu dem die Pipeline das Element empfangen hat.

Datenaktualität

Datenaktualität ist die Zeit zwischen der Echtzeit und dem Ausgabewasserzeichen. Jeder Schritt Ihrer Pipeline hat ein Ausgabedaten-Wasserzeichen. Das Ausgabedaten-Wasserzeichen T gibt an, dass bei der Berechnung alle Elemente mit einer Ereigniszeit vor T verarbeitet wurden. Das Ausgabedaten-Wasserzeichen ist oben durch das früheste Eingabedaten-Wasserzeichen aller vorherigen Berechnungen begrenzt. Wenn irgendwelche Eingabedaten noch nicht verarbeitet wurden, könnte das Ausgabewasserzeichen zurückgehalten werden, was sich auf die Datenaktualität auswirkt.

Wenn Sie unter den Grafiken auf den Link Warnungen erstellen klicken, wird im Cloud Monitoring-Dashboard die Seite Neue Benachrichtigungsrichtlinie erstellen angezeigt.

Hier werden Diagramme mit Messwerten für Systemlatenz und Datenaktualität angezeigt.
Abbildung 9: Hier werden Diagramme mit Messwerten für Systemlatenz und Datenaktualität angezeigt.

Autoscaling

Im Fenster Job summary (Jobübersicht) können Sie Informationen über Ihren Autoscaling-Job ansehen. Der Dataflow-Dienst wählt automatisch die zum Ausführen des Autoscaling-Jobs erforderliche Anzahl von Worker-Instanzen aus. Dieser Wert kann sich je nach Anforderungen des Jobs im Zeitablauf ändern.

Die Zahl der von Ihrer Autoscaling-Pipeline genutzten Worker-Instanzen sowie andere Informationen sehen Sie auf dem Tab

Sie können den Verlauf der Autoscaling-Änderungen durch Klicken auf den Link Weiteren Verlauf anzeigen aufrufen. Dadurch wird ein Fenster mit Informationen über den Worker-Verlauf der Pipeline geöffnet.

Sie können den Verlauf der Autoscaling-Änderungen durch Klicken auf den Link

Hinweis: Sie können Autoscaling-Details zu Streaming-Pipelines anzeigen lassen, die ab dem 12. Dezember 2016 ausgeführt oder aktualisiert wurden. Falls Ihre Pipeline vor dem 12. Dezember ausgeführt oder zuletzt aktualisiert wurde, müssen Sie zuerst Ihre Pipeline aktualisieren, bevor Sie Autoscaling-Details abrufen können.

Fehlerberichte

In der Benutzeroberfläche von Error Reporting können die Fehler zusammengefasst dargestellt werden, die in Ihren Pipelines generiert wurden.

Der Fehlerbericht enthält:

  • Eine Liste von Fehlern mit Fehlermeldungen
  • Die Häufigkeit, mit der jeder Fehler aufgetreten ist
  • Ein Histogramm, das angibt, wann der jeweilige Fehler aufgetreten ist
  • Den Zeitpunkt, zu dem der Fehler zuletzt aufgetreten ist

Zum Aufrufen des Fehlerberichts für Ihre Pipeline klicken Sie auf das Logs-Menü über der Pipelinegrafik und dann auf den Tab Stacktraces unter der Pipelinegrafik. Auf der Dataflow-Monitoring-Oberfläche sehen Sie eine Zusammenfassung der protokollierten Fehler und die Fehlerhäufigkeit.

In den Steuerfeldern Logzähler für Worker-Fehler sehen Sie die Fehlerquote der einzelnen Worker zum jeweiligen Zeitpunkt.

Zusammenfassung aller protokollierten Fehler und der Fehlerhäufigkeit

Für weitere Informationen zu den Fehlern klicken Sie eine Fehlerzusammenfassung an. Sie werden dann zur Benutzeroberfläche von Error Reporting weitergeleitet.

Weitere Informationen zu den Fehlern finden Sie in der Benutzeroberfläche von Error Reporting.

Die Benutzeroberfläche von Error Reporting bietet zusätzliche Funktionen. Weitere Informationen zu den von Pipelines erzeugten Fehlern finden Sie unter Fehler aufrufen.