Dataproc-Messwertbenachrichtigungen erstellen

Sie können eine Monitoring-Benachrichtigung erstellen, Ein Dataproc-Cluster- oder Jobmesswert überschreitet einen angegebenen Grenzwert.

Schritte zum Erstellen einer Benachrichtigung

So erstellen Sie eine Benachrichtigung:

  1. Öffnen Sie den Bereich Benachrichtigungen. in der Google Cloud Console.

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

    1. Klicken Sie auf Messwert auswählen.
    2. 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.
    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 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 prü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 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 der nachverfolgt wird, wie lange sich ein Job in verschiedenen Bundesstaaten befindet. Dieser Messwert wurde gefunden im Metrics Explorer der Google Cloud Console unter dem Cloud Dataproc-Job (cloud_dataproc_job) bereitgestellt. Mit diesem Messwert können Sie eine Benachrichtigung einrichten, die Sie informiert, wenn der Job Der Status „RUNNING“ überschreitet einen Grenzwert für die Dauer.

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 über eine lange laufende YARN-Anwendung

Im vorherigen Beispiel wird eine Benachrichtigung ausgelöst, wenn ein Dataproc-Job länger als eine bestimmte Dauer 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 wurden. 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 verwendet YARN die Bucket-Grenzwerte 60, 300 und 1440 Minuten und gibt vier Messwerte aus: running_0, running_60, running_300 und running_1440:

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

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

Diese Standard-Bucket-Schwellenwerte können geändert werden, indem 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. 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-Schwellenwerte: ‑‑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

  1. Cluster mit den erforderlichen Buckets und aktivierten Messwerten erstellen

  2. 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 Dataproc-Jobbenachrichtigung mit langer Ausführungszeit) um Sie zu benachrichtigen, wenn ein Dataproc-Job fehlschlägt.

Fehler beim Einrichten der Jobbenachrichtigung

In diesem Beispiel wird Monitoring Query Language (MQL) verwendet, um Erstellen Sie eine Benachrichtigungsrichtlinie (siehe MQL-Benachrichtigungsrichtlinien erstellen) (Console).

Benachrichtigungs-MQL
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 Dataproc Job in Ihrem Projekt fehlschlägt.

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 == '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 dazu führen, dass Clusterknoten im Messwert capacity_deviation vorübergehend nicht erfasst werden. 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 bei der Erstellung oder Aktualisierung von Clustern ausgegeben werden.

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

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

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 Sie in der Benachrichtigungsrichtlinie einen Benachrichtigungsmechanismus wie E-Mail- oder SMS-Benachrichtigungen definiert haben, Monitoring sendet eine Benachrichtigung über den Vorfall.

Weitere Informationen