Messwertbenachrichtigungen erstellen

Sie können eine Monitoring-Benachrichtigung erstellen, um informiert zu werden, wenn ein Messwert für einen Managed Service for Apache Spark-Cluster oder -Job 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 Messwertnamen filtern“ „dataproc“ ein, um die Messwerte von Managed Service for Apache Spark aufzulisten. Navigieren Sie durch die Hierarchie der Cloud Managed Service for Apache Spark-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 Managed Service for Apache Spark gesendet wurde, sowie eine Benachrichtigung für einen Job, der als YARN-Anwendung ausgeführt wird.

Benachrichtigung für einen lange laufenden Managed Service for Apache Spark-Job

Managed Service for Apache Spark gibt den Messwert dataproc.googleapis.com/job/state aus, mit dem erfasst wird, wie lange sich ein Job in verschiedenen Status befindet. Dieser Messwert befindet sich im Google Cloud Messwert-Metrics Explorer unter der Ressource Cloud Managed Service for Apache Spark-Job (cloud_dataproc_job). Sie können diesen Messwert verwenden, um eine Benachrichtigung einzurichten, die Sie informiert, wenn der Status RUNNING des Jobs 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 Query Language (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 Managed Service for Apache Spark-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 Managed Service for Apache Spark jobs API an den Managed Service for Apache Spark 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 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 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 während der Erstellung des Managed Service for Apache Spark-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, müssen die folgenden Flags im Befehl gcloud dataproc clusters create enthalten sein:

  • 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 Google Cloud Messwert-Metrics Explorer derConsole 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 Managed Service for Apache Spark-Jobs

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

Stellenbenachrichtigung für fehlgeschlagene Jobs einrichten

In diesem Beispiel wird die Prometheus Query Language (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 Managed Service for Apache Spark-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

Managed Service for Apache Spark 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 im Google Cloud Messwert-Explorer derConsole unter der Ressource „Cloud Managed Service for Apache Spark-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 Query Language (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.

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

Nächste Schritte