Crea avvisi basati sulle metriche

Puoi creare un avviso di Monitoring che ti avvisa quando una metrica di un cluster o di un job Managed Service for Apache Spark supera una soglia specificata.

Crea un avviso

  1. Apri la pagina Avvisi nella console Google Cloud .

  2. Fai clic su + Crea policy per aprire la pagina Crea policy di avviso.

    1. Fai clic su Seleziona metrica.
    2. Nella casella di immissione "Filtra in base al nome della risorsa o della metrica", digita "dataproc" per elencare le metriche di Managed Service for Apache Spark. Naviga nella gerarchia delle metriche di Cloud Managed Service for Apache Spark per selezionare una metrica di cluster, job, batch o sessione.
    3. Fai clic su Applica.
    4. Fai clic su Avanti per aprire il riquadro Configura trigger di avviso.
    5. Imposta un valore di soglia per attivare l'avviso.
    6. Fai clic su Avanti per aprire il riquadro Configura le notifiche e finalizza l'avviso.
    7. Imposta i canali di notifica, la documentazione e il nome della policy di avviso.
    8. Fai clic su Avanti per esaminare la policy di avviso.
    9. Fai clic su Crea policy per creare l'avviso.

Avvisi di esempio

Questa sezione descrive un avviso di esempio per un job inviato a Managed Service for Apache Spark e un avviso per un job eseguito come applicazione YARN.

Avviso di job Managed Service for Apache Spark a lunga esecuzione

Managed Service for Apache Spark genera la metrica dataproc.googleapis.com/job/state, che monitora la durata di un job in stati diversi. Questa metrica si trova in Metrics Explorer della console Google Cloud nella risorsa Job di Cloud Managed Service for Apache Spark (cloud_dataproc_job). Puoi utilizzare questa metrica per configurare un avviso che ti avvisa quando lo stato del job RUNNING supera una soglia di durata (limite massimo della soglia : 7 giorni). Per configurare un avviso per un job che dovrebbe essere eseguito per più di 7 giorni, consulta Avviso per applicazione YARN con esecuzione prolungata.

Configurazione degli avvisi sulla durata dei job

Questo esempio utilizza il linguaggio di query Prometheus (PromQL) per creare una policy di avviso. Per saperne di più, consulta Crea policy di avviso basate su PromQL (console).

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

Per attivare questo avviso quando un job è in esecuzione da più di 30 minuti, nella scheda Configura trigger, imposta Intervallo di valutazione su 30 minuti.

Puoi modificare la query filtrando in base a job_id per applicarla a un job specifico:

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

Avviso relativo a un'applicazione YARN a lunga esecuzione

L'esempio precedente mostra un avviso che viene attivato quando un job Managed Service for Apache Spark viene eseguito per un periodo di tempo superiore a una durata specificata, ma si applica solo ai job inviati al servizio Managed Service for Apache Spark utilizzando la console Google Cloud , Google Cloud CLI o tramite chiamate dirette all'API Managed Service for Apache Spark jobs. Puoi anche utilizzare le metriche OSS per configurare avvisi simili che monitorano il tempo di esecuzione delle applicazioni YARN.

Innanzitutto, un po' di contesto. YARN emette metriche sul tempo di esecuzione in più bucket. Per impostazione predefinita, YARN mantiene 60, 300 e 1440 minuti come soglie dei bucket ed emette 4 metriche, running_0, running_60, running_300 e running_1440:

  • running_0 registra il numero di job con un tempo di esecuzione compreso tra 0 e 60 minuti.

  • running_60 registra il numero di job con un tempo di esecuzione compreso tra 60 e 300 minuti.

  • running_300 registra il numero di job con un runtime compreso tra 300 e 1440 minuti.

  • running_1440 registra il numero di job con un runtime superiore a 1440 minuti.

Ad esempio, un job in esecuzione per 72 minuti verrà registrato in running_60, ma non in running_0.

Queste soglie predefinite dei bucket possono essere modificate passando nuovi valori alla proprietà del cluster yarn:yarn.resourcemanager.metrics.runtime.buckets durante la creazione del cluster Managed Service for Apache Spark. Quando definisci le soglie dei bucket personalizzati, devi anche definire gli override delle metriche. Ad esempio, per specificare soglie dei bucket di 30, 60 e 90 minuti, il comando gcloud dataproc clusters create deve includere i seguenti flag:

  • soglie dei bucket: ‑‑properties=yarn:yarn.resourcemanager.metrics.runtime.buckets=30,60,90

  • override delle metriche: ‑‑metric-overrides=yarn:ResourceManager:QueueMetrics:running_0, yarn:ResourceManager:QueueMetrics:running_30,yarn:ResourceManager:QueueMetrics:running_60, yarn:ResourceManager:QueueMetrics:running_90

Comando di esempio per la creazione del cluster

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

Queste metriche sono elencate in Metrics Explorer della console Google Cloud nella risorsa Istanza VM (gce_instance).

Configurazione degli avvisi per le applicazioni YARN

  1. Crea un cluster con i bucket e le metriche richiesti abilitati.

  2. Crea una policy di avviso che si attiva quando il numero di applicazioni in un bucket di metriche YARN supera una soglia specificata.

    • Se vuoi, aggiungi un filtro per attivare un avviso sui cluster che corrispondono a un pattern.

    • Configura la soglia per l'attivazione dell'avviso.

Avviso di job Managed Service for Apache Spark non riuscito

Puoi anche utilizzare la metrica dataproc.googleapis.com/job/state (consulta Avviso per job Managed Service for Apache Spark a lunga esecuzione) per ricevere un avviso quando un job Managed Service for Apache Spark non va a buon fine.

Configurazione degli avvisi di job non riuscita

Questo esempio utilizza il linguaggio di query Prometheus (PromQL) per creare una policy di avviso. Per saperne di più, consulta Crea policy di avviso basate su PromQL (console).

PromQL di avviso
sum by (job_id, state) ({
  "__name__"="dataproc.googleapis.com/job/state",
  "monitored_resource"="cloud_dataproc_job",
  "state"="ERROR"
}) != 0
Configurazione del trigger di avviso

Nell'esempio seguente, l'avviso viene attivato quando un job Managed Service for Apache Spark non va a buon fine nel tuo progetto.

Puoi modificare la query filtrando in base a job_id per applicarla a un job specifico:

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

Avviso di deviazione della capacità del cluster

Managed Service for Apache Spark genera la metrica dataproc.googleapis.com/cluster/capacity_deviation, che segnala la differenza tra il numero di nodi previsto nel cluster e il numero di nodi YARN attivi. Puoi trovare questa metrica in Esplora metriche della consoleGoogle Cloud nella risorsa Cluster Cloud Managed Service for Apache Spark. Puoi utilizzare questa metrica per creare un avviso che ti informa quando la capacità del cluster devia dalla capacità prevista per un periodo di tempo superiore a una soglia specificata.

Le seguenti operazioni possono causare un reporting temporaneo di un numero inferiore di nodi del cluster nella metrica capacity_deviation. Per evitare avvisi di falsi positivi, imposta la soglia di avviso della metrica in modo da tenere conto di queste operazioni:

  • Creazione e aggiornamenti dei cluster: la metrica capacity_deviation non viene emessa durante le operazioni di creazione o aggiornamento dei cluster.

  • Azioni di inizializzazione del cluster: le azioni di inizializzazione vengono eseguite dopo il provisioning di un nodo.

  • Aggiornamenti dei worker secondari: i worker secondari vengono aggiunti in modo asincrono, al termine dell'operazione di aggiornamento.

Configurazione degli avvisi di deviazione della capacità

Questo esempio utilizza il linguaggio di query Prometheus (PromQL) per creare una policy di avviso. Per saperne di più, consulta Crea policy di avviso basate su PromQL (console).

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

Nel prossimo esempio, l'avviso viene attivato quando la deviazione della capacità del cluster è diversa da zero per più di 30 minuti.

Visualizza avvisi

Quando un avviso viene attivato da una condizione di soglia metrica, Monitoring crea un incidente e un evento corrispondente. Puoi visualizzare gli incidenti dalla pagina Avvisi di Monitoring nella console Google Cloud .

Se nella policy di avviso hai definito un meccanismo di notifica, ad esempio una notifica via email o notifica SMS, Monitoring invia una notifica dell'incidente.

Passaggi successivi