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. Erstellen Sie Ihre Pipeline und führen Sie sie dann 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
- undDistribution
-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. Aus Gründen der Einfachheit werden alle benutzerdefinierten Dataflow-Messwerte als eine
GAUGE
-Messwertart exportiert. Sie können das Delta für einenGAUGE
-Messwert über ein Zeitfenster hinweg überwachen, wie im folgenden Monitoring Query Language-Beispiel 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 Labelsmetric_name: metric-name
undptransform: 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.
Wählen Sie in der Google Cloud Console Monitoring aus:
Wählen Sie im Navigationsbereich Metrics Explorer aus.
Geben Sie im Bereich Messwert auswählen den Wert
Dataflow Job
in den Filter ein.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.
Wählen Sie in der Google Cloud Console Monitoring aus:
Wählen Sie im Navigationsbereich Groups (Gruppen) aus.
Klicken Sie auf Gruppe erstellen.
Geben Sie einen Namen für Ihre Gruppe ein.
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 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.
Wählen Sie in der Google Cloud Console Monitoring aus:
Wählen Sie im Navigationsbereich die Option Benachrichtigungen aus.
Klicken Sie auf Richtlinie erstellen.
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 dieWindowedWordCount
Apache Beam-Pipelinegruppe festzulegen:- Klicken Sie auf Messwert auswählen.
- Geben Sie im Feld Messwert auswählen den Wert
Dataflow Job
ein. - Wählen Sie für Messwertkategorien die Option Job aus.
- 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:
Wählen Sie in der Google Cloud Console Monitoring aus:
Wählen Sie im Navigationsbereich die Option Dashboards aus.
Klicken Sie auf Dashboard erstellen.
Klicken Sie auf Widget hinzufügen.
Wählen Sie im Fenster Widget hinzufügen unter Daten die Option Messwert aus.
Geben Sie im Bereich Messwert auswählen für Messwert den Wert
Dataflow Job
ein.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: