Questa pagina mostra come personalizzare la dashboard di monitoraggio del progetto Dataflow aggiungendo un grafico che esegue query sulle metriche di Cloud Monitoring.
La dashboard di monitoraggio del progetto ti consente di monitorare una raccolta di job e di visualizzarne lo stato e il rendimento complessivi. La dashboard contiene un insieme predefinito di grafici utili per la maggior parte dei workload. Personalizzando la dashboard, puoi aggiungere grafici specifici per i requisiti della tua attività.
Scenario di esempio
Per mostrare come personalizzare la dashboard, supponiamo che un'organizzazione voglia monitorare il costo stimato dei primi 25 job nel suo progetto.
Per questo scenario, supponi che i job abbiano le seguenti caratteristiche:
- I job sono tutti job di streaming.
- I job utilizzano il modello di fatturazione basato sui dati elaborati.
- I job salvano i file su Persistent Disk, sia standard (HDD) che SSD.
- I job non utilizzano GPU.
Scegliere le metriche
Per stimare il costo di un job, date le ipotesi elencate nella sezione precedente, sono necessarie le seguenti metriche:
Risorsa | Metrica pertinente |
---|---|
CPU (vCPU all'ora) |
job/total_vcpu_time
|
Memoria (GB all'ora) |
job/total_memory_usage_time
|
Dati elaborati durante lo shuffle (GB) |
job/total_streaming_data_processed
|
Utilizzo del Persistent Disk (GB all'ora, standard e SSD) |
job/total_pd_usage_time
|
Per maggiori informazioni, consulta la sezione Prezzi di Dataflow.
Per scoprire quali risorse sono disponibili in Monitoring, consulta Tipi di risorse monitorate.
Scrivi una query PromQL
Per eseguire query sulle metriche di Cloud Monitoring, utilizza Prometheus Query Language (PromQL). Questa sezione mostra come scrivere una query PromQL per lo scenario costruendola a partire da clausole più piccole. Questa sezione non presuppone alcuna conoscenza pregressa di PromQL. Per ulteriori informazioni, consulta PromQL in Cloud Monitoring.
Mappa i nomi delle metriche alle stringhe PromQL
Per utilizzare le metriche di Monitoring nelle query PromQL, devi mappare il nome della metrica a una stringa PromQL, nel seguente modo:
Nome metrica | Stringa PromQL |
---|---|
job/total_vcpu_time |
dataflow_googleapis_com:job_total_vcpu_time |
job/total_memory_usage_time |
dataflow_googleapis_com:job_total_memory_usage_time |
job/total_streaming_data_processed |
dataflow_googleapis_com:job_total_streaming_data_processed
|
job/total_pd_usage_time |
dataflow_googleapis_com:job_total_pd_usage_time |
Per ulteriori informazioni, consulta la pagina Mapping delle metriche di Cloud Monitoring a PromQL.
Crea la query
Per ottenere il costo stimato, calcola i prezzi di ogni componente in base al valore più recente di ogni metrica. Le metriche vengono campionate ogni 60 secondi, quindi, per ottenere il valore più recente, utilizza una funzione di finestra di 1 minuto e prendi il valore massimo all'interno di ogni finestra.
Per ottenere il costo stimato della CPU, converti prima
job/total_vcpu_time
da secondi a ore. Moltiplica per il prezzo della CPU per vCPU all'ora.# ((vCPU time)[Bucket 1m] / Seconds per hour * vCPU Price) max_over_time(dataflow_googleapis_com:job_total_vcpu_time[1m]) / 3600 * CPU_PRICE
Questa formula fornisce il costo stimato della CPU per tutti i job nel progetto. Per ottenere il costo stimato della CPU per job, utilizza l'operatore di aggregazione
sum
e raggruppa per ID job.sum( max_over_time(dataflow_googleapis_com:job_total_vcpu_time[1m]) / 3600 * CPU_PRICE ) by (job_id)
Per ottenere il costo stimato della memoria, converti
job/total_memory_usage_time
da secondi a ore. Moltiplica per il prezzo della memoria per GB all'ora e raggruppa per ID job.#((Memory time)[Bucket 1m] / Seconds per hour) * Memory Price sum( max_over_time(dataflow_googleapis_com:job_total_memory_usage_time[1m]) / 3600 * MEMORY_PRICE ) by (job_id)
Per ottenere il costo stimato dello shuffle, converti
job/total_streaming_data_processed
da byte a GB. Moltiplica per il prezzo dei dati elaborati durante lo shuffle per GB e raggruppa per ID job.# Shuffle Billing. Reported once every 60 seconds, measured in bytes. # Formula: (Shuffle Data)[Bucket 1m] / (Bytes in GB) * (Shuffle Price) sum( max_over_time( dataflow_googleapis_com:job_total_streaming_data_processed[1m] ) / 1000000000 * SHUFFLE_PRICE ) by (job_id)
Per ottenere il costo stimato dell'utilizzo del Persistent Disk, esegui l'indicizzazione sull'etichetta
storage_type
per separare per tipo di disco (standard o SSD). Converti ogni valore da GB-secondi a GB-ore e raggruppalo per ID job.# Formula: ((Standard PD time)[Bucket 1m] / Seconds per hour) * Standard PD price sum( max_over_time( dataflow_googleapis_com:job_total_pd_usage_time{storage_type="HDD"}[1m] ) / 3600 * STANDARD_PD_PRICE ) by (job_id) # Formula: ((SSD PD time)[Bucket 1m] / Seconds per hour) * SSD PD price sum( max_over_time( dataflow_googleapis_com:job_total_pd_usage_time{storage_type="SSD"}[1m] ) / 3600 * SSD_PD_PRICE ) by (job_id)
La somma dei valori precedenti fornisce il costo stimato per job. Per ottenere i primi 25 job, utilizza un filtro Top K:
topk(25, # Sum the individual values. )
Scrivere la query completa
Di seguito è riportata la query completa:
topk(25,
sum(
max_over_time(
dataflow_googleapis_com:job_total_vcpu_time[1m]) / 3600 * CPU_PRICE
)
by (job_id) +
sum(
max_over_time(
dataflow_googleapis_com:job_total_memory_usage_time[1m]) / 3600 * MEMORY_PRICE
)
by (job_id) +
sum(
max_over_time(
dataflow_googleapis_com:job_total_streaming_data_processed[1m]) / 1000000000 * SHUFFLE_PRICE
)
by (job_id) +
sum(
max_over_time(
dataflow_googleapis_com:job_total_pd_usage_time{storage_type="HDD"}[1m]) / 3600 * STANDARD_PD_PRICE
)
by (job_id) +
sum(
max_over_time(
dataflow_googleapis_com:job_total_pd_usage_time{storage_type="SSD"}[1m]) / 3600 * SSD_PD_PRICE
)
by (job_id)
)
Sostituisci le seguenti variabili con i valori della pagina dei prezzi di Dataflow per la tua regione.
- CPU_PRICE: prezzo della CPU, per vCPU all'ora
- MEMORY_PRICE: prezzo della memoria, per GB/ora
- SHUFFLE_PRICE: prezzo di Shuffle, per GB
- STANDARD_PD_PRICE: prezzo del disco permanente standard, per GB all'ora
- SSD_PD_PRICE: prezzo del disco permanente SSD, per GB/ora
Modificare la dashboard
Se non hai creato in precedenza una dashboard personalizzata per Dataflow in questo progetto, creane una nel seguente modo:
Nella console Google Cloud , vai alla pagina Dataflow > Monitoraggio.
Nel menu a discesa Predefinito, fai clic su Personalizza dashboard.
(Facoltativo) Inserisci un nome per la dashboard nella casella Nome visualizzazione personalizzata.
Se in precedenza hai creato una dashboard personalizzata, segui questi passaggi per modificarla:
Nella console Google Cloud , vai alla pagina Dataflow > Monitoraggio.
Nel menu a discesa Predefinito, seleziona la dashboard personalizzata.
Fai clic su
Modifica dashboard.
Aggiungere un grafico delle metriche
Per aggiungere un grafico delle metriche alla dashboard:
- Fai clic su Aggiungi widget.
- Nel riquadro Aggiungi widget, seleziona Metrica.
- Nella casella Titolo widget, inserisci un titolo per il grafico, ad esempio
Estimated cost (top 25)
. - Fai clic su PromQL.
- Incolla la query PromQL mostrata in precedenza.
- Fai clic su Esegui query.
- Fai clic su Applica.
- (Facoltativo) Trascina il grafico per posizionarlo nella dashboard.
Passaggi successivi
- Aggiungi una linea di riferimento per vedere quando una metrica supera una soglia predefinita.
- Scopri PromQL.
- Scopri di più sulle dashboard.