Cloud Monitoring für Dataflow-Pipelines verwenden

Cloud Monitoring bietet leistungsstarke Logging- und Diagnosefunktionen. Mit der Einbindung von Dataflow in Monitoring können Sie über die Monitoring-Dashboards auf Dataflow-Jobmesswerte wie Auftragsstatus, Elementanzahl, Systemverzögerung (für Streaming-Aufträge) und Nutzerzähler zugreifen. Sie können Monitoring-Benachrichtigungen verwenden, um Sie über verschiedene Bedingungen zu informieren, z. B. eine lange Streaming-Systemverzögerung oder fehlgeschlagene Jobs.

Hinweise

Folgen Sie der Java-Kurzanleitung, der Python-Kurzanleitung oder der Go-Kurzanleitung, um Ihr Dataflow-Projekt einzurichten. Anschließend erstellen Sie Ihre Pipeline und führen sie aus.

Damit Logs im Metrics Explorer angezeigt werden, muss das Worker-Dienstkonto die Rolle roles/monitoring.metricWriter haben.

Benutzerdefinierte Messwerte

Alle Messwerte, die Sie in Ihrer Apache Beam-Pipeline definieren, werden von Dataflow an Monitoring als benutzerdefinierte Messwerte gemeldet. Apache Beam bietet drei Arten von Pipeline-Messwerten: Counter, Distribution und Gauge.

  • Dataflow meldet Counter- und Distribution-Messwerte an Monitoring.
  • Distribution wird in Form von vier Untermesswerten mit dem Suffix _MAX, _MIN, _MEAN und _COUNT gemeldet.
  • Dataflow unterstützt kein Histogramm aus Distribution Messwerten.
  • Dataflow meldet inkrementelle Updates etwa alle 30 Sekunden an Monitoring.
  • Zur Vermeidung von Konflikten werden alle benutzerdefinierten Dataflow-Messwerte als Datentyp double exportiert.
  • Der Einfachheit halber werden alle benutzerdefinierten Dataflow-Messwerte als GAUGE-Messwertart exportiert. Sie können das Delta über ein Zeitfenster für einen GAUGE-Messwert überwachen, wie im folgenden Beispiel der Monitoring-Abfragesprache gezeigt:

     fetch dataflow_job
     | metric 'dataflow.googleapis.com/job/user_counter'
     | filter (metric.job_id == '[JobID]')
     | delta 1m
     | group_by 1m, [value_user_counter_mean: mean(value.user_counter)]
     | every 1m
     | group_by [metric.ptransform, metric.metric_name],
       [value_user_counter_mean_aggregate: aggregate(value_user_counter_mean)]
    
  • Die benutzerdefinierten Dataflow-Messwerte werden in Monitoring als dataflow.googleapis.com/job/user_counter mit den Labels metric_name: metric-name und ptransform: ptransform-name angezeigt.

  • Um Abwärtskompatibilität zu gewährleisten, meldet Dataflow dem Monitoring auch benutzerdefinierte Messwerte als custom.googleapis.com/dataflow/metric-name.

  • Die benutzerdefinierten Dataflow-Messwerte unterliegen der Einschränkung der Kardinalität beim Monitoring.

  • Jedes Projekt hat ein Limit von 100 benutzerdefinierten Dataflow-Messwerten. Diese Messwerte werden als custom.googleapis.com/dataflow/metric-name veröffentlicht.

Bei benutzerdefinierten Messwerten, die an Monitoring gemeldet werden, fallen Kosten an, die auf dem Cloud Monitoring-Preise basieren.

Metrics Explorer verwenden

Untersuchen Sie Dataflow-Messwerte mit Monitoring. Anhand der Schritte in diesem Abschnitt lernen Sie die Standardmesswerte kennen, die für jede Apache Beam-Pipeline zur Verfügung stehen. Weitere Informationen zur Verwendung von Metrics Explorer finden Sie unter Diagramme mit Metrics Explorer erstellen.

  1. Wählen Sie in der Google Cloud Console Monitoring aus:

    Zu Monitoring

  2. Wählen Sie im Navigationsbereich Metrics Explorer aus.

  3. Geben Sie im Bereich Messwert auswählen den Wert Dataflow Job in den Filter ein.

  4. Wählen Sie aus der angezeigten Liste einen Messwert, der für einen Ihrer Jobs beobachtet werden soll.

Beim Ausführen von Dataflow-Jobs können Sie auch Messwerte für Ihre Quellen und Senken überwachen. Sie können beispielsweise die Messwerte der BigQuery Storage API überwachen. Weitere Informationen finden Sie unter Dashboards, Diagramme und Benachrichtigungen erstellen und der vollständigen Liste der Messwerte aus BigQuery Data Transfer Service.

Benachrichtigungsrichtlinien und Dashboards erstellen

Monitoring bietet Zugriff auf Dataflow-bezogene Messwerte. Erstellen Sie Dashboards, um die Zeitachsen von Diagrammen darzustellen. Außerdem können Sie Benachrichtigungsrichtlinien erstellen, die Sie benachrichtigen, wenn Messwerte bestimmte Werte erreichen.

Ressourcengruppen erstellen

Erstellen Sie Ressourcengruppen, die mehrere Apache Beam-Pipelines enthalten, um das Festlegen von Benachrichtigungen und das Erstellen von Dashboards zu vereinfachen.

  1. Wählen Sie in der Google Cloud Console Monitoring aus:

    Zu Monitoring

  2. Wählen Sie im Navigationsbereich Groups (Gruppen) aus.

  3. Klicken Sie auf Gruppe erstellen.

  4. Geben Sie einen Namen für Ihre Gruppe ein.

  5. Geben Sie Filterkriterien zur Definition der Dataflow-Ressourcen in der Gruppe an. Eines der Filterkriterien kann beispielsweise das Namenspräfix Ihrer Pipelines sein. Gruppe erstellen.

  6. Nachdem die Gruppe erstellt wurde, werden die grundlegenden Messwerte zu den Ressourcen in dieser Gruppe angezeigt.

Benachrichtigungsrichtlinien für Dataflow-Messwerte erstellen

Mit Monitoring können Sie Benachrichtigungen erstellen und Benachrichtigungen erhalten, wenn ein Messwert einen bestimmten Grenzwert überschreitet. Sie können beispielsweise eine Benachrichtigung erhalten, wenn die Systemverzögerung einer Streamingpipeline über einen vordefinierten Wert hinaus ansteigt.

  1. Wählen Sie in der Google Cloud Console Monitoring aus:

    Zu Monitoring

  2. Wählen Sie im Navigationsbereich die Option Benachrichtigungen aus.

  3. Klicken Sie auf Richtlinie erstellen.

  4. Definieren Sie auf der Seite Neue Benachrichtigungsrichtlinie erstellen die Benachrichtigungsbedingungen und Benachrichtigungskanäle.
    Führen Sie die folgenden Schritte aus, um beispielsweise eine Benachrichtigung über die Systemverzögerung für die WindowedWordCount Apache Beam-Pipelinegruppe festzulegen:

    1. Klicken Sie auf Messwert auswählen.
    2. Geben Sie im Feld Messwert auswählen den Wert Dataflow Job ein.
    3. Wählen Sie für Messwertkategorien die Option Job aus.
    4. Wählen Sie für Messwerte die Option Systemverzögerung aus.

    Jedes Mal, wenn eine Benachrichtigung ausgelöst wird, werden ein Vorfall und ein entsprechendes Ereignis erstellt. Wenn Sie in der Benachrichtigung einen Benachrichtigungsmechanismus wie E-Mail oder SMS angegeben haben, erhalten Sie auch eine Benachrichtigung.

Benutzerdefinierte Monitoring-Dashboards erstellen

Sie können Monitoring-Dashboards mit den wichtigsten Dataflow-Diagrammen erstellen. So fügen Sie dem Dashboard ein Diagramm hinzu:

  1. Wählen Sie in der Google Cloud Console Monitoring aus:

    Zu Monitoring

  2. Wählen Sie im Navigationsbereich die Option Dashboards aus.

  3. Klicken Sie auf Dashboard erstellen.

  4. Klicken Sie auf Widget hinzufügen.

  5. Wählen Sie im Fenster Widget hinzufügen unter Daten die Option Messwert aus.

  6. Geben Sie im Bereich Messwert auswählen für Messwert den Wert Dataflow Job ein.

  7. Wählen Sie eine Messwertkategorie und einen Messwert aus.

Sie können dem Dashboard beliebig viele Diagramme hinzufügen.

Worker-VM-Messwerte vom Monitoring-Agent empfangen

Mit Monitoring können Sie Messwerte zu nichtflüchtigem Speicher, CPU, Netzwerken und Prozessen überwachen. Wenn Sie die Pipeline in den Dataflow-Worker-VM-Instanzen ausführen, aktivieren Sie den Monitoring-Agent. Siehe die Liste der verfügbaren Monitoring-Agent-Messwerte.

Wenn Sie den Monitoring-Agent aktivieren möchten, verwenden Sie beim Ausführen Ihrer Pipeline die Option --experiments=enable_stackdriver_agent_metrics. Das Worker-Dienstkonto muss die Rolle roles/monitoring.metricWriter haben.

Wenn Sie den Monitoring-Agent deaktivieren möchten, ohne Ihre Pipeline zu beenden, aktualisieren Sie die Pipeline. Dazu starten Sie einen Ersatzjob ohne den Parameter --experiments=enable_stackdriver_agent_metrics.

Speicher und Aufbewahrung

Informationen zu abgeschlossenen oder abgebrochenen Dataflow-Jobs werden 30 Tage lang gespeichert.

Betriebslogs werden im Log-Bucket _Default gespeichert. Der Name des Logging API-Dienstes lautet dataflow.googleapis.com. Weitere Informationen zu den in Cloud Logging verwendeten überwachten Ressourcentypen und Diensten finden Sie unter Überwachte Ressourcen und Dienste.

Ausführliche Informationen zur Aufbewahrungsdauer der Logeinträge in Logging finden Sie unter Kontingente und Limits: Aufbewahrungsdauer für Logs.

Informationen zum Aufrufen von Betriebslogs finden Sie unter Pipelinelogs überwachen und ansehen.

Nächste Schritte

Weitere Informationen finden Sie hier: