Dataproc-Messwertbenachrichtigungen erstellen

Sie können eine Monitoring-Benachrichtigung erstellen, damit Sie informiert werden, wenn ein Messwert eines Dataproc-Clusters oder eines Dataproc-Jobs einen bestimmten Grenzwert überschreitet.

Schritte zum Erstellen einer Benachrichtigung

So erstellen Sie eine Benachrichtigung:

  1. Öffnen Sie in der Google Cloud Console die Seite Benachrichtigungen.

  2. Klicken Sie auf + Richtlinie erstellen, um die Seite Benachrichtigungsrichtlinie erstellen zu öffnen.

    1. Klicken Sie auf Messwert auswählen.
    2. Geben Sie im Eingabefeld "Nach Ressourcen- oder Messwertname filtern" "dataproc" ein, um Dataproc-Messwerte aufzulisten. Gehen Sie durch die Hierarchie von Cloud Dataproc-Messwerten, um einen Cluster-, Job-, Batch- oder Sitzungsmesswert auszuwählen.
    3. Klicken Sie auf Anwenden.
    4. Klicken Sie auf Weiter, um den Bereich Trigger für Benachrichtigungen konfigurieren zu öffnen.
    5. Legen Sie einen Grenzwert zum Auslösen der Benachrichtigung fest.
    6. Klicken Sie auf Weiter, um den Bereich Benachrichtigungen konfigurieren und Benachrichtigung abschließen zu öffnen.
    7. Legen Sie die Benachrichtigungskanäle, die Dokumentation und den Namen der Benachrichtigungsrichtlinie fest.
    8. Klicken Sie auf Weiter, um die Benachrichtigungsrichtlinie zu prüfen.
    9. Klicken Sie auf Richtlinie erstellen, um die Benachrichtigung zu erstellen.

Beispielbenachrichtigungen

In diesem Abschnitt werden eine Beispielbenachrichtigung für einen an den Dataproc-Dienst gesendeten Job und eine Benachrichtigung für einen Job beschrieben, der als YARN-Anwendung ausgeführt wird.

Benachrichtigung zu lang andauerndem Dataproc-Job

Dataproc gibt den Messwert dataproc.googleapis.com/job/state aus, mit dem verfolgt wird, wie lange sich ein Job in verschiedenen Status befindet. Sie finden diesen Messwert in der Google Cloud Console im Metrics Explorer unter der Ressource Cloud Dataproc Job (cloud_dataproc_job). Mit diesem Messwert können Sie eine Benachrichtigung einrichten, die Sie benachrichtigt, wenn der Status RUNNING des Jobs einen Grenzwert für die Dauer überschreitet.

Benachrichtigung für Jobdauer einrichten

In diesem Beispiel wird die Monitoring Query Language (MQL) verwendet, um eine Benachrichtigungsrichtlinie zu erstellen (siehe MQL-Benachrichtigungsrichtlinien erstellen (Konsole)).

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

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 andauernder YARN-Anwendung

Das vorherige Beispiel zeigt eine Benachrichtigung, die ausgelöst wird, wenn ein Dataproc-Job länger als eine angegebene Dauer ausgeführt wird. Sie gilt jedoch nur für Jobs, die über die Google Cloud Console, die Google Cloud CLI oder direkte Aufrufe an die Dataproc API jobs an den Dataproc-Dienst gesendet werden. Sie können OSS-Messwerte auch verwenden, um ähnliche Benachrichtigungen einzurichten, die die Laufzeit von YARN-Anwendungen überwachen.

Zunächst ein paar Hintergrundinformationen. YARN sendet Laufzeitmesswerte in mehreren Buckets. Standardmäßig behält YARN 60, 300 und 1.440 Minuten als Bucket-Schwellenwerte bei und gibt 4 Messwerte aus, running_0, running_60, running_300 und running_1440:

  • running_0 erfasst die Anzahl der Jobs mit einer Laufzeit zwischen 0 und 60 Minuten.

  • running_60 erfasst die Anzahl der Jobs mit einer Laufzeit zwischen 60 und 300 Minuten.

  • running_300 erfasst die Anzahl der Jobs mit einer Laufzeit zwischen 300 und 1.440 Minuten.

  • running_1440 erfasst die Anzahl der Jobs mit einer Laufzeit von mehr als 1.440 Minuten.

Ein Job, der 72 Minuten lang ausgeführt wird, wird beispielsweise in running_60, aber nicht in running_0 aufgezeichnet.

Diese Standard-Bucket-Schwellenwerte können geändert werden, indem beim Erstellen des Dataproc-Clusters neue Werte an das Clusterattribut yarn:yarn.resourcemanager.metrics.runtime.buckets übergeben werden. Beim Definieren von Grenzwerten für benutzerdefinierte Buckets müssen Sie auch Messwertüberschreibungen definieren. Wenn Sie beispielsweise Bucket-Schwellenwerte von 30, 60 und 90 Minuten angeben möchten, sollte der Befehl gcloud dataproc clusters create die folgenden Flags enthalten:

  • Bucket-Schwellenwerte: ‑‑properties=yarn:yarn.resourcemanager.metrics.runtime.buckets=30,60,90

  • metrics overrides: ‑‑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 werden im Metrics Explorer der Google Cloud Console unter der Ressource VM-Instanz (gce_instance) aufgeführt.

Einrichtung von YARN-Anwendungsbenachrichtigungen

  1. Cluster mit aktivierten erforderlichen Buckets und Messwerten erstellen

  2. Erstellen Sie eine Benachrichtigungsrichtlinie, die ausgelöst wird, wenn die Anzahl der Anwendungen in einem YARN-Messwert-Bucket einen bestimmten Schwellenwert überschreitet.

    • Fügen Sie optional einen Filter hinzu, um Benachrichtigungen über Cluster zu erhalten, die einem Muster entsprechen.

    • Konfigurieren Sie den Schwellenwert zum Auslösen der Benachrichtigung.

Benachrichtigung zu fehlgeschlagenem Dataproc-Job

Sie können auch den Messwert dataproc.googleapis.com/job/state (siehe Benachrichtigung zu einem Dataproc-Job mit langer Ausführungszeit) verwenden, um benachrichtigt zu werden, wenn ein Dataproc-Job fehlschlägt.

Einrichtung von Jobbenachrichtigung fehlgeschlagen

In diesem Beispiel wird die Monitoring Query Language (MQL) verwendet, um eine Benachrichtigungsrichtlinie zu erstellen (siehe MQL-Benachrichtigungsrichtlinien erstellen (Konsole)).

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 von Benachrichtigungsauslösern

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 über Abweichung der Clusterkapazität

Dataproc gibt den Messwert dataproc.googleapis.com/cluster/capacity_deviation aus, der die Differenz zwischen der erwarteten Anzahl von Knoten im Cluster und der Anzahl der aktiven YARN-Knoten angibt. Sie finden diesen Messwert in der Google Cloud Console im Metrics Explorer unter der Ressource Cloud Dataproc-Cluster. Mit diesem Messwert können Sie eine Benachrichtigung erstellen, die Sie benachrichtigt, wenn die Clusterkapazität länger als einen angegebenen Grenzwert von der erwarteten Kapazität abweicht.

Die folgenden Vorgänge können dazu führen, dass Clusterknoten im Messwert capacity_deviation vorübergehend zu wenig gemeldet werden. Um falsch positive Benachrichtigungen 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 bei Erstellungs- oder Aktualisierungsvorgängen nicht ausgegeben.

  • Cluster-Initialisierungsaktionen:Initialisierungsaktionen werden ausgeführt, nachdem ein Knoten bereitgestellt wurde.

  • Updates für sekundäre Worker:Sekundäre Worker werden asynchron nach Abschluss des Aktualisierungsvorgangs hinzugefügt.

Benachrichtigung zur Kapazitätsabweichung einrichten

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 mehr 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 ansehen.

Wenn Sie in der Benachrichtigungsrichtlinie einen Benachrichtigungsmechanismus definiert haben, z. B. eine E-Mail- oder SMS-Benachrichtigung, sendet Monitoring eine Benachrichtigung über den Vorfall.

Weitere Informationen