Creazione di avvisi per le metriche Dataproc

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

Passaggi per creare un avviso

Per creare un avviso:

  1. Apri la pagina Avvisi nella console Google Cloud.

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

    1. Fai clic su Seleziona metrica.
    2. Nella casella di immissione "Filtra per nome risorsa o metrica", digita "dataproc" per elencare le metriche Dataproc. Esplora la gerarchia delle metriche di Cloud Dataproc per selezionare una metrica cluster, job, batch o sessione.
    3. Fai clic su Applica.
    4. Fai clic su Avanti per aprire il riquadro Configura attivatore 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 del criterio di avviso.
    8. Fai clic su Avanti per esaminare il criterio di avviso.
    9. Fai clic su Crea criterio 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 per job Dataproc a lunga esecuzione

Dataproc emette la metrica dataproc.googleapis.com/job/state, che monitora da quanto tempo un job è rimasto in stati diversi. Questa metrica si trova in Metrics Explorer della console Google Cloud nella risorsa Job Cloud Dataproc (cloud_dataproc_job). Puoi utilizzare questa metrica per configurare un avviso che ti avvisa quando lo stato RUNNING del job supera una soglia di durata.

Configurazione degli avvisi sulla durata del job

In questo esempio viene utilizzato il Monitoring Query Language (MQL) per creare un criterio di avviso (consulta la sezione Creazione di criteri di avviso MQL (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()

Nell'esempio seguente, l'avviso si attiva quando un job è in esecuzione da più di 30 minuti.

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

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()

Avviso relativo all'applicazione YARN a lunga esecuzione

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

Iniziamo con alcune informazioni. YARN emette metriche di 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 runtime compreso tra 0 e 60 minuti.

  • running_60 registra il numero di job con un runtime 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 dei bucket predefinite possono essere modificate passando nuovi valori alla yarn:yarn.resourcemanager.metrics.runtime.buckets proprietà cluster durante la creazione del cluster Dataproc. Quando definisci soglie personalizzate per i bucket, devi definire anche gli override delle metriche. Ad esempio, per specificare soglie dei bucket pari a 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

  • metrics overrides: ‑‑metric-overrides=yarn:ResourceManager:QueueMetrics:running_0, yarn:ResourceManager:QueueMetrics:running_30,yarn:ResourceManager:QueueMetrics:running_60, yarn:ResourceManager:QueueMetrics:running_90

Esempio di comando per la creazione di 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 nella sezione Metrics Explorer della console Google Cloud, nella risorsa Istanza VM (gce_instance).

Configurazione degli avvisi dell'applicazione YARN

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

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

    • Facoltativamente, aggiungi un filtro per avvisare sui cluster che corrispondono a un pattern.

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

Avviso job Dataproc non riuscito

Puoi anche utilizzare la metrica dataproc.googleapis.com/job/state (consulta la sezione Avviso per job Dataproc di lunga esecuzione) per ricevere un avviso in caso di errore di un job di Dataproc.

Configurazione dell'avviso di nuove offerte non riuscita

In questo esempio viene utilizzato il Monitoring Query Language (MQL) per creare un criterio di avviso (consulta la sezione Creazione di criteri di avviso MQL (console)).

MQL avviso
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()
Configurazione dell'attivatore di avviso

Nell'esempio seguente, l'avviso si attiva quando un job di Dataproc non riesce nel tuo progetto.

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

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()

Avviso di deviazione della capacità del cluster

Dataproc emette la metrica dataproc.googleapis.com/cluster/capacity_deviation, che riporta la differenza tra il numero previsto di nodi nel cluster e il numero di nodi YARN attivi. Puoi trovare questa metrica in Metrics Explorer della console Google Cloud nella risorsa cluster Cloud Dataproc. Puoi utilizzare questa metrica per creare un avviso che ti avvisi quando la capacità del cluster si discosta dalla capacità prevista per un periodo superiore a quello della soglia specificata.

Le seguenti operazioni possono causare una segnalazione temporanea dei nodi del cluster nella metrica capacity_deviation. Per evitare falsi positivi, imposta la soglia di avviso delle metriche per 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, dopo il completamento dell'operazione di aggiornamento.

Configurazione dell'avviso di deviazione della capacità

Questo esempio utilizza il Monitoring Query Language (MQL) per creare un criterio di avviso.

fetch cloud_dataproc_cluster
| metric 'dataproc.googleapis.com/cluster/capacity_deviation'
| every 1m
| condition val() <> 0 '1'

Nell'esempio successivo, 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 della metrica, Monitoring crea un incidente e un evento corrispondente. Puoi visualizzare gli incidenti dalla pagina Avvisi di Monitoring nella console Google Cloud.

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

Passaggi successivi