Dataproc-Messwertbenachrichtigungen erstellen

Sie können eine Monitoring-Benachrichtigung erstellen, die Sie informiert, wenn ein Dataproc-Cluster oder Jobmesswert einen bestimmten Grenzwert überschreitet.

Benachrichtigung erstellen

  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“ den Wert „dataproc“ ein, um Dataproc-Messwerte aufzulisten. Navigieren Sie durch die Hierarchie der Cloud Dataproc-Messwerte, um einen Cluster-, Job-, Batch- oder Sitzungsmesswert auszuwählen.
    3. Klicken Sie auf Übernehmen.
    4. Klicken Sie auf Weiter, um den Bereich Benachrichtigungstrigger konfigurieren zu öffnen.
    5. Legen Sie einen Grenzwert fest, der die Benachrichtigung auslösen soll.
    6. Klicken Sie auf Weiter, um den Bereich Benachrichtigungen konfigurieren und Benachrichtigung abschließen zu öffnen.
    7. Legen Sie Benachrichtigungskanäle, 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 Beispielbenachrichtigungen für einen Job beschrieben, der an den Dataproc-Dienst gesendet wurde, und für einen Job, der als YARN-Anwendung ausgeführt wird.

Benachrichtigung zu lange laufenden Dataproc-Jobs

Dataproc gibt den Messwert dataproc.googleapis.com/job/state aus, der angibt, wie lange sich ein Job in verschiedenen Status befunden hat. Dieser Messwert ist im Metrics Explorer der Google Cloud -Konsole unter der Ressource Cloud Dataproc-Job (cloud_dataproc_job) zu finden. Sie können diesen Messwert verwenden, um eine Benachrichtigung einzurichten, die Sie benachrichtigt, wenn der Status RUNNING des Jobs einen Zeitüberschreitungsgrenzwert überschreitet.

Benachrichtigung 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()

Warnung zu lang andauernden YARN-Anwendungen

Im vorherigen Beispiel wird eine Benachrichtigung angezeigt, 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 -Konsole, 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, mit denen die Laufzeit von YARN-Anwendungen überwacht wird.

Zuerst einige Hintergrundinformationen. YARN gibt Laufzeitmesswerte in mehreren Buckets aus. Standardmäßig verwendet YARN 60, 300 und 1.440 Minuten als Bucket-Grenzwerte und gibt vier 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-Grenzwerte können geändert werden, indem Sie beim Erstellen des Dataproc-Clusters neue Werte für das yarn:yarn.resourcemanager.metrics.runtime.buckets-Clusterattribut übergeben. Wenn Sie benutzerdefinierte Bucket-Grenzwerte definieren, 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

  • 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 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 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 Grenzwert überschreitet.

    • Optional können Sie einen Filter hinzufügen, um Benachrichtigungen für Cluster zu erhalten, die einem Muster entsprechen.

    • Konfigurieren Sie den Grenzwert für das Auslösen der Benachrichtigung.

Benachrichtigung über fehlgeschlagenen Dataproc-Job

Sie können auch den Messwert dataproc.googleapis.com/job/state verwenden (siehe Benachrichtigung für lang andauernde Dataproc-Jobs), um sich benachrichtigen zu lassen, wenn ein Dataproc-Job fehlschlägt.

Fehler beim Einrichten von Stellenbenachrichtigungen

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 bei 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 aktiven Anzahl von YARN-Knoten angibt. Sie finden diesen Messwert imGoogle Cloud Console Metrics Explorer unter der Ressource Cloud Dataproc-Cluster. Mit diesem Messwert können Sie eine Benachrichtigung erstellen, die Sie informiert, wenn die Clusterkapazität länger als eine angegebene Schwellenwertdauer von der erwarteten Kapazität abweicht.

Die folgenden Vorgänge können zu einer vorübergehenden Untererfassung von Clusternknoten im Messwert capacity_deviation führen. Um falsch-positive Benachrichtigungen zu vermeiden, legen Sie den Schwellenwert für Messwertbenachrichtigungen so fest, dass diese Vorgänge berücksichtigt werden:

  • Clustererstellung und ‑aktualisierungen:Der Messwert capacity_deviation wird während der Clustererstellung oder ‑aktualisierung nicht ausgegeben.

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

  • Aktualisierungen sekundärer Worker:Sekundäre Worker werden asynchron hinzugefügt, nachdem der Aktualisierungsvorgang abgeschlossen ist.

Benachrichtigung bei 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 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 aufrufen.

Wenn in der Benachrichtigungsrichtlinie eine Benachrichtigungsmethode wie E-Mail oder SMS definiert wurde, wird von Monitoring eine Benachrichtigung zu dem Vorfall gesendet.

Nächste Schritte