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-Benachrichtigungsfunktionen auch verwenden, um sich über verschiedene Bedingungen benachrichtigen zu lassen, z. B. eine lange Streaming-Systemverzögerung oder fehlgeschlagene Jobs.

Hinweis

Befolgen Sie eine der Kurzanleitungen, um Ihr Dataflow-Projekt einzurichten sowie Ihre Pipeline aufzubauen und auszuführen.

Benutzerdefinierte Messwerte

Alle Messwerte, die Sie in Ihrer Apache Beam-Pipeline definieren, werden von Dataflow an Monitoring als benutzerdefinierte Messwerte gemeldet. Es gibt drei Arten von Apache Beam-Pipeline-Messwerten: Counter, Distribution und Gauge. Dataflow meldet derzeit nur Counter und Distribution-Berichte 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. Alle benutzerdefinierten Dataflow-Messwerte werden als double-Datentyp exportiert, um Konflikte zu vermeiden. Sie werden in Monitoring als dataflow.googleapis.com/job/user_counter mit metric_name: metric-name und ptransform: ptransform-name als Labels angezeigt. Sie unterliegen der Einschränkung der Kardinalität beim Monitoring.

Um Abwärtskompatibilität zu gewährleisten, meldet Dataflow dem Monitoring auch benutzerdefinierte Messwerte als custom.googleapis.com/dataflow/metric-name. Pro Projekt, das als custom.googleapis.com/dataflow/metric-name veröffentlicht wird, sind maximal 100 benutzerdefinierte Dataflow-Messwerte zulässig.

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

Messwerte kennenlernen

Sie können Dataflow-Messwerte mit Monitoring erforschen. Anhand der Schritte in diesem Abschnitt lernen Sie die verschiedenen Standardmesswerte kennen, die für Ihre Apache Beam-Pipelines zur Verfügung stehen.

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

    Zu Monitoring

  2. Klicken Sie im linken Navigationsbereich auf Metrics Explorer.

  3. Wählen Sie im Feld Ressourcentyp und Messwert suchen den Ressourcetyp dataflow_job aus. Wählen Sie dataflow_job-Ressource im Metrics-Explorer aus.

  4. Wählen Sie aus der angezeigten Liste einen Messwert, den Sie für einen Ihrer Jobs beobachten möchten.


    Messwerte auswählen

Benachrichtigungsrichtlinien und Dashboards erstellen

Monitoring bietet Ihnen nicht nur Zugriff auf Dataflow-bezogene Messwerte, sondern auch die Erstellung von Benachrichtigungsrichtlinien und Dashboards, sodass Sie Zeitreihen von Messwerten grafisch darstellen und sich benachrichtigen lassen können, wenn diese Messwerte bestimmte Werte erreichen.

Ressourcengruppen erstellen

Sie können Ressourcengruppen erstellen, die mehrere Apache Beam-Pipelines enthalten, sodass Sie problemlos Warnmeldungen festlegen und Dashboards erstellen können.

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

    Zu Monitoring

  2. Wählen Sie im Menü Gruppen die Option Gruppe erstellen aus.

  3. 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.

  4. 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 sich benachrichtigen lassen, wenn ein bestimmter Messwert einen bestimmten Grenzwert überschreitet, z. B. wenn die Systemverzögerung einer Streaming-Pipeline über einen vordefinierten Wert steigt.

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

    Zu Monitoring

  2. Klicken Sie im Menü Benachrichtigung auf Richtlinie erstellen.

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

    1. Wählen Sie Bedingung hinzufügen aus.
    2. Nun müssen Sie im Feld Ressourcentyp und Messwert finden dataflow_job eingeben und auswählen.
    3. Wählen Sie im Feld Ressourcentyp und Messwert finden Systemverzögerung aus.
  4. Nachdem Sie eine Benachrichtigung erstellt haben, können Sie die Ereignisse in Bezug auf Dataflow prüfen. Dazu wählen Sie Alle Ereignisse ansehen im Abschnitt Ereignisse 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.

Eigenes benutzerdefiniertes Monitoring-Dashboard erstellen

Sie können Monitoring-Dashboards mit den wichtigsten Dataflow-Diagrammen erstellen.

  1. Rufen Sie die Google Cloud Console auf und wählen Sie Monitoring aus:

    Zu Monitoring

  2. Wählen Sie Dashboards > Dashboard erstellen aus.

  3. Klicken Sie auf Diagramm hinzufügen.

  4. Im Fenster Diagramm hinzufügen wählen Sie dataflow_job und den Messwert aus, den Sie darstellen möchten.

  5. Im Feld Filter wählen Sie eine Gruppe aus, die Apache Beam-Pipelines enthält.

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

Worker-VM-Messwerte vom Monitoring-Agent empfangen

Wenn Sie Messwerte zu nichtflüchtigem Speicher, CPU, Netzwerken und Prozessen von den VM-Instanzen Ihrer Dataflow-Worker beobachten möchten, können Sie den Monitoring-Agent aktivieren, wenn Sie Ihre Pipeline ausführen. 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 Controller-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.

Weitere Informationen

Weitere Informationen finden Sie hier: