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“ „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, um die Benachrichtigung auszulösen.
    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 überprüfen.
    9. 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, sowie eine Benachrichtigung für einen Job, der als YARN Anwendung ausgeführt wird.

Benachrichtigung für lange laufende Dataproc-Jobs

Dataproc gibt den dataproc.googleapis.com/job/state Messwert aus, der erfasst, wie lange sich ein Job in verschiedenen Status befindet. Dieser Messwert befindet sich im Google Cloud Messwert-Explorer derConsole unter der Ressource Cloud Dataproc-Job (cloud_dataproc_job). Mit diesem Messwert können Sie eine Benachrichtigung einrichten, die Sie informiert, wenn der Status des Jobs RUNNING einen Grenzwert für die Dauer überschreitet (maximaler Grenzwert : 7 Tage). Informationen zum Einrichten einer Benachrichtigung für einen Job, der voraussichtlich länger als 7 Tage ausgeführt wird, finden Sie unter Benachrichtigung für lange laufende YARN-Anwendungen.

Benachrichtigung für die Jobdauer einrichten

In diesem Beispiel wird die Prometheus-Abfragesprache (PromQL) verwendet, um eine Benachrichtigungsrichtlinie zu erstellen. Weitere Informationen finden Sie unter PromQL-basierte Benachrichtigungsrichtlinien erstellen (Console).

sum by (job_id, state) ({
  "__name__"="dataproc.googleapis.com/job/state",
  "monitored_resource"="cloud_dataproc_job",
  "state"="RUNNING"
}) != 0

Wenn diese Benachrichtigung ausgelöst werden soll, wenn ein Job länger als 30 Minuten ausgeführt wird, legen Sie auf dem Tab Trigger konfigurieren das Auswertungsintervall auf 30 Minuten fest.

Sie können die Abfrage ändern, indem Sie nach der job_id filtern, um sie auf einen bestimmten Job anzuwenden:

sum by (job_id) ({
  "__name__"="dataproc.googleapis.com/job/state",
  "monitored_resource"="cloud_dataproc_job",
  "state"="RUNNING",
  "job_id"="1234567890"
}) != 0

Benachrichtigung für lange laufende YARN-Anwendungen

Das vorherige Beispiel zeigt eine Benachrichtigung, die ausgelöst wird, wenn ein Dataproc-Job länger als eine bestimmte Zeit 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, mit denen die Laufzeit von YARN-Anwendungen überwacht wird.

Zuerst einige Hintergrundinformationen. YARN gibt Laufzeitmesswerte in mehrere Buckets aus. Standardmäßig verwendet YARN 60, 300 und 1440 Minuten als Bucket-Grenzwerte 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 1440 Minuten.

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

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

Diese Standard-Bucket-Grenzwerte können geändert werden, indem Sie beim Erstellen des Dataproc-Clusters neue Werte an die yarn:yarn.resourcemanager.metrics.runtime.buckets Clustereigenschaft ü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, muss 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 werden im Messwert-Explorer der Google Cloud Console unter der Ressource VM-Instanz (gce_instance) aufgeführt.

Benachrichtigung für YARN-Anwendungen einrichten

  1. Erstellen Sie einen Cluster mit den erforderlichen Buckets und aktivierten Messwerten.

  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 zum Auslösen der Benachrichtigung.

Benachrichtigung für fehlgeschlagene Dataproc-Jobs

Sie können auch den Messwert dataproc.googleapis.com/job/state(siehe Benachrichtigung für lange laufende Dataproc-Jobs) verwenden, um benachrichtigt zu werden, wenn ein Dataproc-Job fehlschlägt.

Benachrichtigung für fehlgeschlagene Jobs einrichten

In diesem Beispiel wird die Prometheus-Abfragesprache (PromQL) verwendet, um eine Benachrichtigungsrichtlinie zu erstellen. Weitere Informationen finden Sie unter PromQL-basierte Benachrichtigungsrichtlinien erstellen (Console).

PromQL-Benachrichtigung
sum by (job_id, state) ({
  "__name__"="dataproc.googleapis.com/job/state",
  "monitored_resource"="cloud_dataproc_job",
  "state"="ERROR"
}) != 0
Benachrichtigungstrigger konfigurieren

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 der job_id filtern, um sie auf einen bestimmten Job anzuwenden:

sum by (job_id) ({
  "__name__"="dataproc.googleapis.com/job/state",
  "monitored_resource"="cloud_dataproc_job",
  "state"="ERROR",
  "job_id"="1234567890"
}) != 0

Benachrichtigung für Abweichungen bei der Clusterkapazität

Dataproc gibt den dataproc.googleapis.com/cluster/capacity_deviation Messwert aus, der die Differenz zwischen der erwarteten Anzahl von Knoten im Cluster und der aktiven Anzahl von YARN-Knoten angibt. Sie finden diesen Messwert im Google Cloud Messwert-Explorer derConsole 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 bestimmte Zeit vom erwarteten Wert abweicht.

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

  • Clustererstellung und -aktualisierungen:Der Messwert capacity_deviation wird während der Erstellung oder Aktualisierung des Clusters 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 für Abweichungen bei der Kapazität einrichten

In diesem Beispiel wird die Prometheus-Abfragesprache (PromQL) verwendet, um eine Benachrichtigungsrichtlinie zu erstellen. Weitere Informationen finden Sie unter PromQL-basierte Benachrichtigungsrichtlinien erstellen (Console).

{
  "__name__"="dataproc.googleapis.com/cluster/capacity_deviation",
  "monitored_resource"="cloud_dataproc_cluster"
} != 0

Im nächsten Beispiel wird die Benachrichtigung ausgelöst, wenn die Abweichung der Clusterkapazität länger als 30 Minuten ungleich null ist.

Hinweise 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 eine Benachrichtigung zu dem Vorfall gesendet.

Nächste Schritte