Puoi creare un avviso di Monitoring per ricevere una notifica quando una metrica di cluster o job Dataproc supera una soglia specificata.
Passaggi per creare un avviso
Per creare un avviso:
Apri la pagina Avvisi nella console Google Cloud.
Fai clic su + Crea criterio per aprire la pagina Crea criterio di avviso.
- Fai clic su Seleziona metrica.
- Nella casella di immissione "Filtra in base al nome della risorsa o della metrica", digita "dataproc" per elencare le metriche di Dataproc. Naviga nella gerarchia Metriche Cloud Dataproc per selezionare un cluster, un job, un batch o metrica di sessione.
- Fai clic su Applica.
- Fai clic su Avanti per aprire il riquadro Configura l'attivatore di avviso.
- Imposta un valore di soglia per attivare l'avviso.
- Fai clic su Avanti per aprire il riquadro Configurare le notifiche e finalizzare l'avviso.
- Imposta i canali di notifica, la documentazione e il nome del criterio di avviso.
- Fai clic su Avanti per esaminare il criterio di avviso.
- 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 relativo a job Dataproc di lunga durata
Dataproc emette la metrica dataproc.googleapis.com/job/state
,
che tiene traccia del tempo
di tempo in cui un job è stato in stati diversi. Questa metrica è stata trovata
in Metrics Explorer della console Google Cloud, nel Job Cloud Dataproc
(cloud_dataproc_job).
Puoi utilizzare questa metrica per configurare un avviso che ti avvisi quando
Lo stato RUNNING
supera una soglia di durata.

Configurazione degli avvisi relativi alla durata del job
Questo esempio utilizza il Monitoring Query Language (MQL) per creare un criterio di avviso (consulta Creare 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 per più di 30 minuti.

Puoi modificare la query filtrando in base a resource.job_id
per applicarla
a un lavoro 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 Dataproc viene eseguito più a lungo
della durata specificata, ma si applica solo ai job inviati a Dataproc
tramite la console Google Cloud, Google Cloud CLI o chiamate dirette
API Dataproc jobs
. Puoi anche utilizzare le metriche OSS per configurare avvisi simili che monitorano il tempo di esecuzione delle applicazioni YARN.
Per prima cosa, un po' di contesto. YARN emette metriche relative al tempo di esecuzione in più bucket.
Per impostazione predefinita, YARN mantiene 60, 300 e 1440 minuti come soglie per i bucket
e emette quattro 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 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 yarn:yarn.resourcemanager.metrics.runtime.buckets
proprietà cluster
durante la creazione del cluster Dataproc. Quando definisci le soglie dei bucket personalizzati,
devi anche definire le sostituzioni delle metriche. Ad esempio, per specificare soglie per i bucket di 30, 60 e 90 minuti, il comando gcloud dataproc clusters create
deve includere i seguenti flag:
soglie del 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
Comando di creazione di 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 Metrics Explorer della console Google Cloud nella risorsa Istanza VM (gce_instance).

Configurazione degli avvisi per le applicazioni YARN
Crea un cluster con i bucket e le metriche richiesti abilitati .
Crea un criterio di avviso che si attiva quando il numero di applicazioni in un bucket di metriche YARN superano una soglia specificata.
Se vuoi, aggiungi un filtro per generare un avviso sui cluster che corrispondono a un pattern.
Configura la soglia per l'attivazione dell'avviso.
Avviso relativo a un job Dataproc non riuscito
Puoi anche utilizzare la metrica dataproc.googleapis.com/job/state
(consulta Avviso relativo a job Dataproc a esecuzione prolungata) per ricevere un avviso quando un job Dataproc non va a buon fine.
Configurazione dell'avviso di job non riuscita
Questo esempio utilizza il Monitoring Query Language (MQL) per creare un criterio di avviso (consulta Creare criteri di avviso MQL (console)).
MQL di 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 avvisi
Nell'esempio seguente, l'avviso si attiva quando qualsiasi job Dataproc non va a buon fine nel progetto.

Puoi modificare la query filtrando in base a resource.job_id
per applicarla
a un lavoro 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 di nodi previsto nel
cluster e il numero di nodi YARN attivi. Puoi trovare questa metrica nella
Esplora metriche della console Google Cloud nel
Cluster Cloud Dataproc
risorsa. Puoi utilizzare questa metrica per creare un avviso che ti invii una notifica quando la capacità del cluster si discosta da quella prevista per più di una durata della soglia specificata.

Le seguenti operazioni possono causare un problema temporaneo di reporting dei nodi del cluster
nella metrica capacity_deviation
. Per evitare avvisi di falsi positivi, imposta
la soglia di avviso della metrica per tenere conto di queste operazioni:
Creazione e aggiornamenti dei cluster: la metrica
capacity_deviation
non viene comunicata durante le operazioni di creazione o aggiornamento dei cluster.Azioni di inizializzazione del cluster:vengono eseguite azioni di inizializzazione 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à
In questo esempio viene utilizzato Monitoring Query Language (MQL) per creando un criterio di avviso.
fetch cloud_dataproc_cluster
| metric 'dataproc.googleapis.com/cluster/capacity_deviation'
| every 1m
| condition val() <> 0 '1'
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 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 monitoraggio nella console Google Cloud.
Se hai definito un meccanismo di notifica nel criterio di avviso, ad esempio una notifica via email o SMS, Il monitoraggio invia una notifica dell'incidente.

Passaggi successivi
- Consulta la sezione Introduzione agli avvisi.