Creare avvisi sulle metriche Dataproc

Puoi creare un avviso di Monitoring che ti avvisa quando una metrica del job o del cluster Dataproc supera una soglia specificata.

Crea un avviso

  1. Apri la pagina Avvisi nella Google Cloud console.

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

    1. Fai clic su Seleziona metrica.
    2. Nella casella di input "Filtra in base al nome della risorsa o della metrica", digita "dataproc" per elencare le metriche Dataproc. Esplora la gerarchia delle metriche Job Cloud Dataproc 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 l'attivatore di avvisi.
    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 al servizio Dataproc e un avviso per un job eseguito come applicazione YARN.

Avviso di job Dataproc a lunga esecuzione

Dataproc emette la metrica dataproc.googleapis.com/job/state, che tiene traccia del tempo in cui un job è rimasto in stati diversi. Questa metrica si trova in Google Cloud Esplora metriche della console nella risorsa Job Cloud Dataproc (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 di soglia massimo : 7 giorni). Per configurare un avviso per un job che dovrebbe essere eseguito per più di 7 giorni, consulta Avviso di applicazione YARN a lunga esecuzione.

Configurazione dell'avviso di durata del job

Questo esempio utilizza il Prometheus Query Language (PromQL) per creare una policy di avviso. Per saperne di più, consulta Creare 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 l'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 di applicazione YARN a lunga esecuzione

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

Innanzitutto, alcune informazioni di base. YARN emette metriche del 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 tempo di esecuzione compreso tra 300 e 1440 minuti.

  • running_1440 registra il numero di job con un tempo di esecuzione 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 dei bucket predefinite possono essere modificate passando nuovi valori alla yarn:yarn.resourcemanager.metrics.runtime.buckets proprietà del cluster durante la creazione del cluster Dataproc. Quando definisci soglie dei bucket personalizzate, devi anche definire le sostituzioni delle metriche. Ad esempio, per specificare soglie dei bucket di 30, 60 e 90 minuti, il gcloud dataproc clusters create comando deve includere i seguenti flag:

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

  • Sostituzioni 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 creazione del cluster di esempio

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 Esplora metriche della console nella risorsa Istanza VM (gce_instance). Google Cloud

Configurazione dell'avviso di applicazione YARN

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

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

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

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

Avviso di job Dataproc non riuscito

Puoi anche utilizzare la metroc dataproc.googleapis.com/job/statea (vedi Avviso di job Dataproc a lunga esecuzione) per ricevere un avviso quando un job Dataproc non riesce.

Configurazione dell'avviso di job non riuscito

Questo esempio utilizza il Prometheus Query Language (PromQL) per creare una policy di avviso. Per saperne di più, consulta Creare 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 dell'attivatore di avvisi

Nell'esempio seguente, l'avviso si attiva quando un job Dataproc non riesce 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

Dataproc emette la dataproc.googleapis.com/cluster/capacity_deviation metrica, che indica 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 console nella risorsa Cluster Cloud Dataproc.Google Cloud Puoi utilizzare questa metrica per creare un avviso che ti avvisa quando la capacità del cluster si discosta dalla capacità prevista per una durata superiore a una soglia specificata.

Le seguenti operazioni possono causare una sottostima temporanea dei nodi del cluster nella capacity_deviation metrica. Per evitare avvisi di falsi positivi, imposta la soglia di avviso della metrica in modo da tenere conto di queste operazioni:

  • Creazione e aggiornamenti del cluster: la metrica capacity_deviation non viene emessa durante le operazioni di creazione o aggiornamento del 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 dell'avviso di deviazione della capacità

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

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

Nell'esempio seguente, l'avviso si attiva quando la deviazione della capacità del cluster è diversa da zero per più di 30 minuti.

Visualizza avvisi

Quando una condizione di soglia metrica attiva un avviso, Monitoring crea un incidente e un evento corrispondente. Puoi visualizzare gli incident0}i dalla pagina degli avvisi di Monitoring nella console. Google Cloud

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

Passaggi successivi