Sie können eine Monitoring-Benachrichtigung erstellen, um informiert zu werden, wenn ein Dataproc-Cluster oder Jobmesswert einen bestimmten Grenzwert überschreitet.
Schritte zum Erstellen einer Benachrichtigung
So erstellen Sie eine Benachrichtigung:
Öffnen Sie in der Google Cloud Console die Seite Benachrichtigungen.
Klicken Sie auf + Richtlinie erstellen, um die Seite Benachrichtigungsrichtlinie erstellen zu öffnen.
- Klicken Sie auf Messwert auswählen.
- Geben Sie in das Eingabefeld „Nach Ressourcen- oder Messwertnamen filtern“ den Begriff „dataproc“ ein, um Dataproc-Messwerte aufzulisten. Durchsuchen Sie die Hierarchie der Cloud Dataproc-Messwerte, um einen Cluster-, Job-, Batch- oder Sitzungsmesswert auszuwählen.
- Klicken Sie auf Anwenden.
- Klicken Sie auf Weiter, um den Bereich Benachrichtigungstrigger konfigurieren zu öffnen.
- Legen Sie einen Grenzwert fest, um die Benachrichtigung auszulösen.
- Klicken Sie auf Weiter, um den Bereich Benachrichtigungen konfigurieren und Benachrichtigung abschließen zu öffnen.
- Legen Sie Benachrichtigungskanäle, Dokumentation und den Namen der Benachrichtigungsrichtlinie fest.
- Klicken Sie auf Weiter, um die Benachrichtigungsrichtlinie aufzurufen.
- Klicken Sie auf Richtlinie erstellen, um die Benachrichtigung zu erstellen.
Beispielbenachrichtigungen
In diesem Abschnitt wird eine Beispielbenachrichtigung für einen Job beschrieben, der an den Dataproc-Dienst gesendet wurde, und eine Benachrichtigung für einen Job, der als YARN-Anwendung ausgeführt wird.
Benachrichtigung zu lang laufenden Dataproc-Jobs
Dataproc gibt den Messwert dataproc.googleapis.com/job/state
aus, mit dem erfasst wird, wie lange sich ein Job in verschiedenen Status befunden hat. Dieser Messwert ist im Metrics Explorer der Google Cloud Console unter der Ressource Cloud Dataproc-Job (cloud_dataproc_job) zu finden.
Sie können mit diesem Messwert eine Benachrichtigung einrichten, die Sie informiert, wenn der Status RUNNING
des Jobs einen bestimmten Zeitraum überschreitet.
Benachrichtigungen zur Jobdauer einrichten
In diesem Beispiel wird die Monitoring Query Language (MQL) verwendet, um eine Benachrichtigungsrichtlinie zu erstellen (siehe MQL-Benachrichtigungsrichtlinien erstellen (Console)).
fetch cloud_dataproc_job
| metric 'dataproc.googleapis.com/job/state'
| filter metric.state == 'RUNNING'
| group_by [resource.job_id, metric.state], 1m
| condition val() == true()
Im folgenden Beispiel wird die Benachrichtigung ausgelöst, wenn ein Job länger als 30 Minuten ausgeführt wird.
Sie können die Abfrage ändern, indem Sie nach resource.job_id
filtern, um sie auf einen bestimmten Job anzuwenden:
fetch cloud_dataproc_job
| metric 'dataproc.googleapis.com/job/state'
| filter (resource.job_id == '1234567890') && (metric.state == 'RUNNING')
| group_by [resource.job_id, metric.state], 1m
| condition val() == true()
Benachrichtigung zu lang laufenden YARN-Anwendungen
Im vorherigen Beispiel wird eine Benachrichtigung ausgelöst, wenn ein Dataproc-Job länger als eine bestimmte Dauer ausgeführt wird. Sie gilt jedoch nur für Jobs, die über die Google Cloud Console, die Google Cloud CLI oder durch direkte Aufrufe der Dataproc jobs
API an den Dataproc-Dienst gesendet werden. Sie können auch OSS-Messwerte verwenden, um ähnliche Benachrichtigungen einzurichten, die die Laufzeit von YARN-Anwendungen überwachen.
Zuerst ein paar Hintergrundinformationen. YARN gibt Messwerte zur Laufzeit in mehrere Buckets aus.
Standardmäßig verwendet YARN die Bucket-Grenzwerte 60, 300 und 1440 Minuten und gibt vier Messwerte aus: running_0
, running_60
, running_300
und running_1440
:
running_0
gibt die Anzahl der Jobs mit einer Laufzeit zwischen 0 und 60 Minuten an.Mit
running_60
wird die Anzahl der Jobs mit einer Laufzeit zwischen 60 und 300 Minuten erfasst.Mit
running_300
wird die Anzahl der Jobs mit einer Laufzeit zwischen 300 und 1.440 Minuten erfasst.running_1440
gibt die Anzahl der Jobs mit einer Laufzeit von mehr als 1.440 Minuten an.
Ein Job, der beispielsweise 72 Minuten lang ausgeführt wird, wird in running_60
, aber nicht in running_0
aufgezeichnet.
Diese Standard-Bucket-Grenzwerte können geändert werden, indem Sie beim Erstellen eines Dataproc-Clusters neue Werte an das yarn:yarn.resourcemanager.metrics.runtime.buckets
Cluster-Attribut übergeben. Wenn Sie Grenzwerte für benutzerdefinierte Bucket-Kategorien festlegen, müssen Sie auch Messwertüberschreibungen definieren. Wenn Sie beispielsweise Bucket-Grenzwerte von 30, 60 und 90 Minuten angeben möchten, sollte der gcloud dataproc clusters create
-Befehl die folgenden Flags enthalten:
Bucket-Grenzwerte:
‑‑properties=yarn:yarn.resourcemanager.metrics.runtime.buckets=30,60,90
Überschreibungen von Messwerten:
‑‑metric-overrides=yarn:ResourceManager:QueueMetrics:running_0, yarn:ResourceManager:QueueMetrics:running_30,yarn:ResourceManager:QueueMetrics:running_60, yarn:ResourceManager:QueueMetrics:running_90
Beispiel für einen Befehl zum Erstellen eines Clusters
gcloud dataproc clusters create test-cluster \ --properties ^#^yarn:yarn.resourcemanager.metrics.runtime.buckets=30,60,90 \ --metric-sources=yarn \ --metric-overrides=yarn:ResourceManager:QueueMetrics:running_0,yarn:ResourceManager:QueueMetrics:running_30,yarn:ResourceManager:QueueMetrics:running_60,yarn:ResourceManager:QueueMetrics:running_90
Diese Messwerte sind im Metrics Explorer der Google Cloud Console unter der Ressource VM-Instanz (gce_instance) aufgeführt.
Einrichtung von Benachrichtigungen für YARN-Anwendungen
Erstellen Sie einen Cluster mit aktivierten erforderlichen Buckets und Messwerten.
Erstellen Sie eine Benachrichtigungsrichtlinie, die ausgelöst wird, wenn die Anzahl der Anwendungen in einem YARN-Messwert-Bucket einen bestimmten Grenzwert überschreitet.
Optional können Sie einen Filter hinzufügen, um Benachrichtigungen zu Clustern zu erhalten, die einem Muster entsprechen.
Konfigurieren Sie den Grenzwert für das Auslösen der Benachrichtigung.
Benachrichtigung zu einem fehlgeschlagenen Dataproc-Job
Sie können auch den Messwert dataproc.googleapis.com/job/state
verwenden (siehe Benachrichtigung bei langlaufendem Dataproc-Job), um benachrichtigt zu werden, wenn ein Dataproc-Job fehlschlägt.
Einrichtung der Stellenbenachrichtigung fehlgeschlagen
In diesem Beispiel wird die Monitoring Query Language (MQL) verwendet, um eine Benachrichtigungsrichtlinie zu erstellen (siehe MQL-Benachrichtigungsrichtlinien erstellen (Console)).
MQL für Benachrichtigungen
fetch cloud_dataproc_job
| metric 'dataproc.googleapis.com/job/state'
| filter metric.state == 'ERROR'
| group_by [resource.job_id, metric.state], 1m
| condition val() == true()
Konfiguration des Benachrichtigungstriggers
Im folgenden Beispiel wird die Benachrichtigung ausgelöst, wenn ein Dataproc-Job in Ihrem Projekt fehlschlägt.
Sie können die Abfrage ändern, indem Sie nach resource.job_id
filtern, um sie auf einen bestimmten Job anzuwenden:
fetch cloud_dataproc_job
| metric 'dataproc.googleapis.com/job/state'
| filter (resource.job_id == '1234567890') && (metric.state == 'ERROR')
| group_by [resource.job_id, metric.state], 1m
| condition val() == true()
Benachrichtigung zu Abweichungen bei der Clusterkapazität
Dataproc gibt den Messwert dataproc.googleapis.com/cluster/capacity_deviation
aus, der die Differenz zwischen der erwarteten Knotenanzahl im Cluster und der Anzahl der aktiven YARN-Knoten angibt. Sie finden diesen Messwert im Metrics Explorer der Google Cloud Console unter der Ressource Cloud Dataproc-Cluster. Sie können diesen Messwert verwenden, um eine Benachrichtigung zu erstellen, die Sie informiert, wenn die Clusterkapazität länger als eine bestimmte Schwellendauer von der erwarteten Kapazität abweicht.
Die folgenden Vorgänge können dazu führen, dass Clusterknoten im Messwert capacity_deviation
vorübergehend nicht erfasst werden. Um Fehlalarme zu vermeiden, legen Sie den Grenzwert für Messwertbenachrichtigungen so fest, dass diese Vorgänge berücksichtigt werden:
Clustererstellung und ‑aktualisierung:Der Messwert
capacity_deviation
wird nicht bei der Erstellung oder Aktualisierung von Clustern erfasst.Cluster-Initialisierungsaktionen:Diese Aktionen werden ausgeführt, nachdem ein Knoten bereitgestellt wurde.
Aktualisierungen sekundärer Worker: Sekundäre Worker werden asynchron hinzugefügt, nachdem der Aktualisierungsvorgang abgeschlossen ist.
Einrichtung von Benachrichtigungen zu Kapazitätsabweichungen
In diesem Beispiel wird die Monitoring Query Language (MQL) verwendet, um eine Benachrichtigungsrichtlinie zu erstellen.
fetch cloud_dataproc_cluster
| metric 'dataproc.googleapis.com/cluster/capacity_deviation'
| every 1m
| condition val() <> 0 '1'
Im nächsten Beispiel wird die Benachrichtigung ausgelöst, wenn die Abweichung der Clusterkapazität länger als 30 Minuten nicht null ist.
Benachrichtigungen ansehen
Wenn eine Benachrichtigung durch eine Messwertschwellenbedingung ausgelöst wird, erstellt Monitoring einen Vorfall sowie ein entsprechendes Ereignis. Sie können Vorfälle auf der Seite Monitoring-Benachrichtigungen in der Google Cloud Console aufrufen.
Wenn in der Benachrichtigungsrichtlinie eine Benachrichtigungsmethode wie E-Mail oder SMS definiert wurde, wird von Monitoring außerdem eine Benachrichtigung zu dem Vorfall gesendet.
Weitere Informationen
- Weitere Informationen finden Sie unter Einführung in Benachrichtigungen.