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.
- Wählen Sie im Bereich „Nach Ressourcen- oder Messwertname filtern“ Eingabefeld Geben Sie „Dataproc“ ein um Dataproc-Messwerte aufzulisten. Navigieren Sie durch die Hierarchie der Cloud Dataproc-Messwerte, um einen Cluster, Job, Batch oder Sitzungsmesswerts.
- Klicken Sie auf Anwenden.
- Klicken Sie auf Weiter, um den Bereich Trigger für Benachrichtigungen konfigurieren zu öffnen.
- Legen Sie einen Grenzwert fest, um die Benachrichtigung auszulösen.
- Klicken Sie auf Weiter, um das Fenster Benachrichtigungen konfigurieren und Benachrichtigung fertigstellen zu öffnen. .
- Legen Sie Benachrichtigungskanäle, die 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 und eine Benachrichtigung für einen Job, der als YARN ausgeführt wird .
Benachrichtigung über einen lange laufenden Dataproc-Job
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.

Benachrichtigung für die Jobdauer einrichten
In diesem Beispiel wird Monitoring Query Language (MQL) verwendet, um Erstellen Sie eine Benachrichtigungsrichtlinie (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 ausgeführt wird länger als 30 Minuten.

Sie können die Abfrage ändern, indem Sie nach resource.job_id
filtern, um sie anzuwenden
für einen bestimmten Job:
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
Das vorherige Beispiel zeigt eine Benachrichtigung, die ausgelöst wird, wenn ein Dataproc-Job länger ausgeführt wird.
als eine angegebene Dauer überschreiten. Dies gilt aber nur für Jobs, die an Dataproc gesendet wurden.
über die Google Cloud Console, die Google Cloud CLI oder direkte Aufrufe der
Dataproc jobs
API Sie können auch OSS-Messwerte verwenden, um ähnliche Benachrichtigungen einzurichten, die die Laufzeit von YARN-Anwendungen überwachen.
Zunächst ein paar Hintergrundinformationen. YARN gibt Laufzeitmesswerte in mehreren Buckets aus.
Standardmäßig behält YARN 60, 300 und 1.440 Minuten als Bucket-Grenzwerte bei.
Es werden vier Messwerte ausgegeben: 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.running_60
zeichnet die Anzahl der Jobs mit einer Laufzeit zwischen 60 und 300 Minuten auf.running_300
zeichnet die Anzahl der Jobs mit einer Laufzeit zwischen 300 und 1.440 Minuten auf.running_1440
gibt die Anzahl der Jobs mit einer Laufzeit von mehr als 1.440 Minuten an.
Ein Job, der 72 Minuten lang ausgeführt wird, wird beispielsweise in running_60
aufgezeichnet, aber nicht in running_0
.
Sie können diese Standard-Bucket-Schwellenwerte ändern, indem Sie neue Werte an die
yarn:yarn.resourcemanager.metrics.runtime.buckets
Clusterattribut
während der Erstellung des Dataproc-Clusters. Wenn Sie Schwellenwerte
für benutzerdefinierte Buckets festlegen,
müssen Sie auch Messwertüberschreibungen definieren. Um z. B. Bucket-Schwellenwerte festzulegen,
von 30, 60 und 90 Minuten ist der Befehl gcloud dataproc clusters create
sollte folgende Flags enthalten:
Bucket-Grenzwerte:
‑‑properties=yarn:yarn.resourcemanager.metrics.runtime.buckets=30,60,90
Messwertüberschreibungen:
‑‑metric-overrides=yarn:ResourceManager:QueueMetrics:running_0, yarn:ResourceManager:QueueMetrics:running_30,yarn:ResourceManager:QueueMetrics:running_60, yarn:ResourceManager:QueueMetrics:running_90
Beispielbefehl zur Clustererstellung
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 werden im Metrics Explorer der Google Cloud Console aufgelistet in der Ressource VM-Instanz (gce_instance)

Benachrichtigungen für die YARN-Anwendung einrichten
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 Schwellenwert überschreiten.
Fügen Sie optional einen Filter hinzu, um Benachrichtigungen zu Clustern zu erhalten, die einem Muster entsprechen.
Konfigurieren Sie den Grenzwert für das Auslösen der Benachrichtigung.
Benachrichtigung zu fehlgeschlagenem 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 von Stellenbenachrichtigungen fehlgeschlagen
In diesem Beispiel wird Monitoring Query Language (MQL) verwendet, um Erstellen Sie eine Benachrichtigungsrichtlinie (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 Triggers für Benachrichtigungen
Im folgenden Beispiel wird die Benachrichtigung ausgelöst, wenn 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 zur Clusterkapazitätsabweichung
Dataproc gibt dataproc.googleapis.com/cluster/capacity_deviation
aus
der die Differenz zwischen der erwarteten Knotenanzahl im
Cluster und die Anzahl der aktiven YARN-Knoten. Sie finden diesen Messwert in der
Metrics Explorer in der Google Cloud Console unter der
Cloud Dataproc-Cluster
. Anhand dieses Messwerts können Sie
eine Benachrichtigung erstellen,
Clusterkapazität weicht länger als angegeben von der erwarteten Kapazität ab
Grenzwertdauer.

Die folgenden Vorgänge können zu einer vorübergehenden Unterberichterstattung von Clusterknoten führen
im Messwert capacity_deviation
. Um Fehlalarme zu vermeiden,
Grenzwert für Messwertbenachrichtigungen festlegen, um diese Vorgänge zu berücksichtigen:
Clustererstellung und -aktualisierungen: Der Messwert
capacity_deviation
ist nicht die bei Cluster-Erstellungs- oder -Aktualisierungsvorgängen ausgegeben werden.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 der Benachrichtigung zur Kapazitätsabweichung
In diesem Beispiel wird Monitoring Query Language (MQL) verwendet, um Erstellen Sie eine Benachrichtigungsrichtlinie.
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 Clusterkapazitätsabweichung länger als 30 Minuten ungleich 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.