Metriche del job di Dataflow

Puoi visualizzare i grafici nella scheda Metriche job della pagina Dataflow nella console Google Cloud. Ogni metrica è organizzata nelle seguenti dashboard:

Metriche della panoramica

Metriche relative ai flussi di dati (solo pipeline in modalità flusso)

Metriche risorsa

Metriche di input

Metriche di output

Per ulteriori informazioni sugli scenari in cui puoi utilizzare queste metriche per il debug, consulta Strumenti per il debug in "Risolvere i problemi relativi a job lenti o bloccati".

Assistenza e limitazioni

Quando utilizzi le metriche Dataflow, tieni presente i seguenti dettagli.

  • A volte i dati dei job non sono disponibili a intermittenza. Se mancano dati, vengono visualizzati intervalli vuoti nei grafici di monitoraggio dei job.

  • Alcuni di questi grafici sono specifici delle pipeline in modalità flusso.

  • Per scrivere i dati delle metriche, un account di servizio gestito dall'utente deve avere l'autorizzazione dell'API IAM monitoring.timeSeries.create. Questa autorizzazione è inclusa nel ruolo Worker Dataflow.

  • Il servizio Dataflow segnala il tempo di CPU riservato al termine dei job. Per i job non limitati (flussi di dati), il tempo di CPU riservato viene segnalato solo dopo l'annullamento o l'esito negativo dei job. Di conseguenza, le metriche dei job non includono il tempo di CPU riservato per i job di elaborazione in modalità flusso.

Accedi alle metriche del job

  1. Accedi alla console Google Cloud.
  2. Selezionare il tuo progetto Google Cloud.
  3. Apri il menu di navigazione e seleziona Dataflow.
  4. Nell'elenco dei job, fai clic sul nome del job. Si apre la pagina Dettagli job.
  5. Fai clic sulla scheda Metriche job.

Per accedere a informazioni aggiuntive nei grafici delle metriche del job, fai clic su Esplora i dati.

Usa Cloud Monitoring

Dataflow è completamente integrato con Cloud Monitoring. Utilizza Cloud Monitoring per le attività seguenti:

Per istruzioni sulla creazione di avvisi e sull'uso di Metrics Explorer, consulta Utilizzare Cloud Monitoring per le pipeline Dataflow.

crea avvisi di Cloud Monitoring

Cloud Monitoring consente di creare avvisi quando il job Dataflow supera una soglia definita dall'utente. Per creare un avviso di Cloud Monitoring da un grafico delle metriche, fai clic su Crea criterio di avviso.

Se non riesci a visualizzare i grafici di monitoraggio o a creare avvisi, potresti aver bisogno di ulteriori autorizzazioni di Monitoring.

Visualizza in Esplora metriche

Puoi visualizzare i grafici delle metriche Dataflow in Metrics Explorer, dove puoi creare query e modificare la durata delle metriche.

Per visualizzare i grafici Dataflow in Metrics Explorer, nella visualizzazione Metriche del job apri Altre opzioni del grafico e fai clic su Visualizza in Metrics Explorer.

Quando regoli l'intervallo di tempo delle metriche, puoi selezionare una durata predefinita o un intervallo di tempo personalizzato per analizzare il job.

Per impostazione predefinita, per i job di flusso e i job batch in corso, il display mostra le precedenti sei ore di metriche per quel job. Per i job di streaming arrestati o completati, la visualizzazione predefinita mostra l'intero runtime della durata del job.

Metriche Dataflow I/O

Puoi visualizzare le seguenti metriche di I/O di Dataflow in Metrics Explorer:

Per l'elenco completo delle metriche di Dataflow, consulta la documentazione sulle metriche di Google Cloud.

Metriche relative a fasi e worker

Le seguenti sezioni forniscono dettagli sulle metriche relative a stage e worker disponibili nell'interfaccia di monitoraggio.

Scalabilità automatica

Il servizio Dataflow sceglie automaticamente il numero di istanze worker necessarie per eseguire il job di scalabilità automatica. Il numero di istanze worker può cambiare nel tempo in base ai requisiti del job.

Una visualizzazione di dati che mostra il numero di worker in una pipeline.

Per visualizzare la cronologia delle modifiche alla scalabilità automatica, fai clic sul pulsante Più cronologia. Viene visualizzata una tabella con informazioni sulla cronologia dei worker della pipeline.

Tabella che mostra la cronologia della cronologia dei worker di una pipeline.

Velocità effettiva

La velocità effettiva è il volume di dati elaborati in un qualsiasi momento. Questa metrica per passaggio è visualizzata come il numero di elementi al secondo. Per visualizzare questa metrica in byte al secondo, visualizza il grafico Velocità effettiva (byte/sec) più in basso nella pagina.

Una visualizzazione dati che mostra la velocità effettiva di quattro passaggi
in una pipeline.

Conteggio log errori del worker

Il Conteggio log degli errori dei worker mostra la percentuale di errori osservati in tutti i worker in qualsiasi momento.

Un riepilogo di ogni errore registrato e il numero di volte in cui si è verificato.

Aggiornamento dei dati (con e senza Streaming Engine)

La metrica di aggiornamento dei dati mostra la differenza in secondi tra il timestamp sull'elemento dei dati e l'ora in cui l'evento viene elaborato nella pipeline. L'elemento di dati riceve un timestamp quando si verifica un evento sull'elemento, ad esempio un evento clic su un sito web o un'importazione da parte di Pub/Sub. La filigrana di output indica il tempo di elaborazione dei dati.

In qualsiasi momento, il job di Dataflow elabora più elementi. I punti dati nel grafico dell'aggiornamento dei dati mostrano l'elemento con il ritardo maggiore rispetto all'ora dell'evento. Pertanto, la stessa linea del grafico mostra i dati relativi a più elementi. Ogni punto dati sulla linea visualizza i dati relativi all'elemento più lento in quella fase della pipeline.

Se alcuni dati di input non sono stati ancora elaborati, la filigrana di output potrebbe subire ritardi, con ripercussioni sull'aggiornamento dei dati. Una differenza significativa tra l'ora della filigrana e quella dell'evento potrebbe indicare un'operazione lenta o bloccata.

Per i job di inserimento di flussi aggiornati di recente, le informazioni sullo stato dei job e sulla filigrana potrebbero non essere disponibili. L'operazione di aggiornamento apporta diverse modifiche la cui propagazione all'interfaccia di monitoraggio di Dataflow richiede alcuni minuti. Prova ad aggiornare l'interfaccia di monitoraggio cinque minuti dopo l'aggiornamento del job.

Per ulteriori informazioni, consulta la sezione Filigrane e dati recenti nella documentazione di Apache Beam.

La dashboard include i seguenti due grafici:

  • Aggiornamento dei dati per fase
  • Aggiornamento dei dati

Una visualizzazione dei dati che mostra l'aggiornamento dei dati
in una pipeline in modalità flusso.

Nell'immagine precedente, l'area evidenziata mostra una differenza sostanziale tra l'ora dell'evento e quella della filigrana di output, a indicare un'operazione lenta.

Un elevato aggiornamento dei dati (ad esempio metriche che indicano che i dati sono meno aggiornati) potrebbero essere causati da:

  • Colli di bottiglia delle prestazioni: se la tua pipeline presenta fasi con elevata latenza di sistema o log che indicano trasformazioni bloccate, la pipeline potrebbe presentare problemi di prestazioni che potrebbero aumentare l'aggiornamento dei dati. Segui queste linee guida per la risoluzione dei problemi di pipeline lente e indagare ulteriormente.
  • Colli di bottiglia delle origini dati: se le origini dati hanno backlog crescenti, i timestamp degli eventi degli elementi potrebbero divergere dalla filigrana mentre attendi di essere elaborati. I backlog di grandi dimensioni sono spesso causati da colli di bottiglia delle prestazioni o problemi relativi alle origini dati, che vengono rilevati al meglio monitorando le origini utilizzate dalla pipeline.
    • Nota: le origini non ordinate come Pub/Sub possono produrre filigrane bloccate anche con output ad alta velocità. Questa situazione si verifica perché gli elementi non vengono restituiti in ordine di timestamp e la filigrana si basa sul timestamp minimo non elaborato.
  • Riprova frequenti: se vedi errori che indicano che gli elementi non sono stati elaborati e vengono tentati di nuovo, è possibile che i timestamp meno recenti degli elementi riprovati aumentino l'aggiornamento dei dati. L'elenco di errori comuni di Dataflow può aiutarti a risolvere il problema.

Latenza di sistema (con e senza Streaming Engine)

La latenza di sistema è il numero massimo attuale di secondi in cui un elemento di dati è stato elaborato o in attesa di elaborazione. Questa metrica indica il tempo di attesa di un elemento all'interno di qualsiasi origine della pipeline. La durata massima viene modificata dopo l'elaborazione. Di seguito sono riportate ulteriori considerazioni:

  • Per più origini e sink, la latenza di sistema è la quantità massima di tempo durante il quale un elemento rimane in attesa all'interno di un'origine prima di essere scritto in tutti i sink.
  • A volte, un'origine non fornisce un valore per il periodo di tempo durante il quale un elemento rimane in attesa all'interno dell'origine. Inoltre, l'elemento potrebbe non contenere metadati per definire l'ora dell'evento. In questo scenario, la latenza di sistema viene calcolata dal momento in cui la pipeline riceve per la prima volta l'elemento.

La dashboard include i seguenti due grafici:

  • Latenza di sistema per fase
  • Latenza di sistema

Una visualizzazione dati che mostra la latenza di sistema
in una pipeline in modalità flusso.

Backlog

La dashboard Backlog fornisce informazioni sugli elementi in attesa di essere elaborati. La dashboard include i seguenti due grafici:

  • Secondi di backlog (solo Streaming Engine)
  • Byte di backlog (con e senza Streaming Engine)

Il grafico Secondi di backlog mostra una stima della quantità di tempo in secondi necessaria per utilizzare il backlog attuale se non arrivano nuovi dati e la velocità effettiva non cambia. Il tempo di backlog stimato viene calcolato sia in base alla velocità effettiva sia ai byte di backlog dell'origine di input che devono ancora essere elaborati. Questa metrica viene utilizzata dalla funzionalità di scalabilità automatica dei flussi di dati per determinare quando fare lo scale up o lo scale down.

Una visualizzazione dati che mostra il grafico dei secondi del backlog in una pipeline in modalità flusso.

Il grafico Byte di backlog mostra la quantità in byte di input non elaborati noti per una fase. Questa metrica confronta i byte rimanenti da utilizzare in ogni fase con quelli delle fasi upstream. Per generare report precisi con questa metrica, ogni origine importata dalla pipeline deve essere configurata correttamente. Le origini integrate come Pub/Sub e BigQuery sono già supportate da subito, ma le origini personalizzate richiedono un'implementazione aggiuntiva. Per maggiori dettagli, consulta la sezione sulla scalabilità automatica per origini personalizzate senza limitazioni.

Una visualizzazione dati che mostra il grafico dei byte di backlog in una pipeline in modalità flusso.

Elaborazione (solo Streaming Engine)

Quando esegui una pipeline Apache Beam sul servizio Dataflow, le attività della pipeline vengono eseguite sulle VM worker. La dashboard Elaborazione fornisce informazioni sulla quantità di tempo durante l'elaborazione delle attività sulle VM worker. La dashboard include i seguenti due grafici:

  • Mappa termica delle latenze di elaborazione utente
  • Latenze di elaborazione utente per fase

La mappa termica delle latenze di elaborazione degli utenti mostra le latenze operative massime nelle distribuzioni del 50°, 95° e 99° percentile. Utilizza la mappa termica per verificare se le operazioni long-tail generano un'elevata latenza complessiva del sistema o se influiscono negativamente sull'aggiornamento complessivo dei dati.

Per risolvere un problema di upstream prima che diventi un problema downstream, imposta un criterio di avviso per latenze elevate nel 50° percentile.

Una visualizzazione di dati che mostra il grafico della mappa termica delle latenze di elaborazione degli utenti per una pipeline in modalità flusso.

Il grafico Latenze di elaborazione utente per fase mostra il 99° percentile per tutte le attività elaborate dai worker, suddiviso per fase. Se il codice utente causa un collo di bottiglia, questo grafico mostra la fase che lo contiene. Per eseguire il debug della pipeline, puoi seguire questi passaggi:

  1. Utilizza il grafico per trovare una fase con una latenza insolitamente elevata.

  2. Nella pagina dei dettagli del job, nella scheda Dettagli esecuzione, per Visualizzazione grafico, seleziona Flusso di lavoro della fase. Nel grafico Flusso di lavoro della fase, trova la fase con una latenza insolitamente elevata.

  3. Per trovare le operazioni utente associate, fai clic sul nodo per quella fase nel grafico.

  4. Per ulteriori dettagli, vai a Cloud Profiler e utilizza Cloud Profiler per eseguire il debug dell'analisi dello stack nell'intervallo di tempo corretto. Cerca le operazioni utente che hai identificato nel passaggio precedente.

Una visualizzazione dati che mostra le latenze di elaborazione degli utenti per grafico a fasi di una pipeline in modalità flusso.

Parallelismo (solo Streaming Engine)

Il grafico Elaborazione parallela mostra il numero approssimativo di chiavi in uso per l'elaborazione dei dati per ogni fase. Dataflow scala in base al parallelismo di una pipeline.

Quando Dataflow esegue una pipeline, l'elaborazione viene distribuita tra più macchine virtuali (VM) di Compute Engine, note anche come worker. Il servizio Dataflow carica in contemporanea e distribuisce automaticamente la logica di elaborazione nella pipeline. L'elaborazione per una determinata chiave è serializzata, quindi il numero totale di chiavi per una fase rappresenta il parallelismo massimo disponibile in quella fase.

Le metriche di parallelismo possono essere utili per individuare le chiavi di accesso rapido o i colli di bottiglia per le pipeline lente o bloccate.

Una visualizzazione dati che mostra il grafico di elaborazione parallela
in una pipeline in modalità flusso.

Persistenza (solo Streaming Engine)

La dashboard Persistenza fornisce informazioni sulla frequenza con cui l'archiviazione permanente viene scritta e letta da una determinata fase della pipeline, in byte al secondo. La dashboard include i seguenti due grafici:

  • Scrittura spazio di archiviazione
  • Lettura spazio di archiviazione

Una visualizzazione dati che mostra il grafico di scrittura dello spazio di archiviazione per una pipeline in modalità flusso.

Duplicati (solo Streaming Engine)

Il grafico Duplicati mostra il numero di messaggi elaborati da una determinata fase che sono stati filtrati come duplicati. Dataflow supporta molte origini e sink che garantiscono la distribuzione di at least once. Lo svantaggio della consegna con at least once è che può generare duplicati. Dataflow garantisce la consegna exactly once, il che significa che i duplicati vengono automaticamente esclusi. Le fasi downstream vengono salvate dalla rielaborazione degli stessi elementi, assicurando che lo stato e gli output non vengano modificati. La pipeline può essere ottimizzata in termini di risorse e prestazioni riducendo il numero di duplicati prodotti in ogni fase.

Una visualizzazione dati che mostra il grafico duplicato in una pipeline in modalità flusso.

Timer (solo Streaming Engine)

La dashboard Timer fornisce informazioni sul numero di timer in attesa e sul numero di timer già elaborati in una determinata fase della pipeline. Poiché le finestre si basano sui timer, questa metrica consente di monitorare l'avanzamento delle finestre.

La dashboard include i seguenti due grafici:

  • Timer in attesa per fase
  • Elaborazione dei timer per fase

Questi grafici mostrano la frequenza con cui le finestre sono in attesa o in elaborazione in un determinato momento. Il grafico Timer in attesa per fase indica il numero di finestre che vengono ritardate a causa di colli di bottiglia. Il grafico Timer sull'elaborazione per fase indica il numero di finestre che raccolgono elementi.

Questi grafici mostrano tutti i timer dei job. Se i timer vengono utilizzati altrove nel codice, i timer vengono visualizzati anche in questi grafici.

Una visualizzazione dati che mostra il numero di timer in attesa in una determinata fase.

Una visualizzazione dati che mostra il numero di timer già elaborati in una determinata fase.

Utilizzo CPU

L'utilizzo della CPU è la quantità di CPU utilizzata divisa per la quantità di CPU disponibile per l'elaborazione. Questa metrica per lavoratore viene visualizzata come percentuale. La dashboard include i seguenti quattro grafici:

  • Utilizzo CPU (tutti i worker)
  • Utilizzo della CPU (statistiche)
  • Utilizzo CPU (primi 4)
  • Utilizzo CPU (ultimi 4)

Una visualizzazione animata dei dati che mostra l'utilizzo della CPU per un worker Dataflow.

Utilizzo memoria

L'utilizzo della memoria è la quantità stimata di memoria utilizzata dai worker in byte al secondo. La dashboard include i seguenti due grafici:

  • Utilizzo massimo della memoria worker (byte al secondo stimati)
  • Utilizzo della memoria (byte al secondo stimati)

Il grafico Utilizzo massimo della memoria dei worker fornisce informazioni sui worker che utilizzano più memoria nel job Dataflow in ogni momento. Se, in punti diversi di un job, il worker che utilizza la quantità massima di memoria viene modificata, nella stessa linea del grafico vengono visualizzati i dati di più worker. Ogni punto dati sulla linea visualizza i dati per il worker utilizzando la quantità massima di memoria in quel momento. Il grafico confronta la memoria stimata utilizzata dal worker con il limite di memoria in byte.

Puoi utilizzare questo grafico per risolvere i problemi di esaurimento della memoria. Gli arresti anomali dei worker per esaurimento della memoria non vengono mostrati in questo grafico.

Il grafico Utilizzo memoria mostra una stima della memoria utilizzata da tutti i worker nel job Dataflow rispetto al limite di memoria in byte.

Metriche di input e output

Se il job Dataflow di flussi di dati legge o scrive record utilizzando Pub/Sub, vengono visualizzate le metriche di input e le metriche di output.

Vengono combinate tutte le metriche di input dello stesso tipo, così come tutte le metriche di output. Ad esempio, tutte le metriche Pub/Sub sono raggruppate in un'unica sezione. Ogni tipo di metrica è organizzato in una sezione distinta. Per modificare le metriche visualizzate, seleziona la sezione a sinistra che rappresenta meglio le metriche che stai cercando. Le seguenti immagini mostrano tutte le sezioni disponibili.

Immagine di esempio che mostra le sezioni di input e di output separate per un job Dataflow.

I due grafici seguenti vengono visualizzati in entrambe le sezioni Metriche di input e Metriche di output.

Una serie di grafici che mostrano metriche di input e di output per un job Dataflow.

Richieste al secondo

Le richieste al secondo sono la frequenza di richieste API di lettura o scrittura di dati in base all'origine o al sink nel tempo. Se questo tasso scende a zero o diminuisce in modo significativo per un periodo di tempo prolungato rispetto al comportamento previsto, la pipeline potrebbe non essere in grado di eseguire determinate operazioni. Inoltre, potrebbero non esserci dati da leggere. In questo caso, rivedi i passaggi del job con una filigrana di sistema elevata. Inoltre, esamina i log del worker per individuare errori o indicazioni sulla lentezza dell'elaborazione.

Un grafico che mostra il numero di richieste API per leggere o scrivere dati in base all'origine o al sink nel tempo.

Errori di risposta al secondo per tipo di errore

Gli errori di risposta al secondo per tipo di errore sono la percentuale di richieste API non riuscite per leggere o scrivere dati in base all'origine o al sink nel tempo. Se questi errori si verificano di frequente, le richieste API potrebbero rallentare l'elaborazione. Le richieste API non riuscite devono essere analizzate. Per risolvere questi problemi, consulta la documentazione generale sui codici di errore I/O. Esamina anche l'eventuale documentazione sui codici di errore specifica utilizzata dall'origine o dal sink, ad esempio i codici di errore Pub/Sub.

Un grafico che mostra la percentuale di richieste API non riuscite nel corso del tempo per leggere o scrivere dati in base all'origine o al sink.