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.
Wählen Sie in der Google Cloud Console Monitoring aus:
Klicken Sie im linken Navigationsbereich auf
Metrics Explorer.
Wählen Sie im Feld Ressourcentyp und Messwert suchen den Ressourcetyp dataflow_job aus.
Wählen Sie aus der angezeigten Liste einen Messwert, den Sie für einen Ihrer Jobs beobachten möchten.
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.
Wählen Sie in der Google Cloud Console Monitoring aus:
Wählen Sie im Menü Gruppen die Option Gruppe erstellen aus.
Geben Sie Filterkriterien zur Definition der Dataflow-Ressourcen in der Gruppe an. Eines der Filterkriterien kann beispielsweise das Namenspräfix Ihrer Pipelines sein.
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.
Wählen Sie in der Google Cloud Console Monitoring aus:
Klicken Sie im Menü Benachrichtigung auf Richtlinie erstellen.
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 dieWindowedWordCount
Apache Beam-Pipelinegruppe festzulegen:- Wählen Sie Bedingung hinzufügen aus.
- Nun müssen Sie im Feld Ressourcentyp und Messwert finden dataflow_job eingeben und auswählen.
- Wählen Sie im Feld Ressourcentyp und Messwert finden Systemverzögerung aus.
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.
Rufen Sie die Google Cloud Console auf und wählen Sie Monitoring aus:
Wählen Sie Dashboards > Dashboard erstellen aus.
Klicken Sie auf Diagramm hinzufügen.
Im Fenster Diagramm hinzufügen wählen Sie dataflow_job und den Messwert aus, den Sie darstellen möchten.
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: