Dettagli esecuzione

Dataflow fornisce una scheda Dettagli esecuzione nella sua interfaccia utente di monitoraggio basata su web. Utilizza le informazioni in questa scheda per ottimizzare le prestazioni dei job e diagnosticare il motivo per cui un job potrebbe essere lento o bloccato. Dopo aver avviato il job, puoi visualizzare la scheda Dettagli esecuzione utilizzando l'interfaccia utente di monitoraggio di Dataflow. Per ulteriori informazioni, consulta Accesso all'interfaccia di monitoraggio di Dataflow.

Questa funzionalità non causa un utilizzo aggiuntivo della CPU o della rete per le VM. I dettagli di esecuzione vengono raccolti dal sistema di monitoraggio del backend di Dataflow, che non influisce sulle prestazioni del job.

Questa pagina fornisce un riepilogo generale della funzionalità dei dettagli di esecuzione e del relativo layout dell'interfaccia utente. Per ulteriori informazioni sulla risoluzione dei problemi, consulta Risoluzione dei problemi e debug della pipeline.

Quando utilizzare i dettagli dell'esecuzione

Di seguito sono riportati scenari comuni per l'utilizzo dei dettagli di esecuzione durante l'esecuzione dei job Dataflow:

  • La pipeline è bloccata e vuoi risolvere il problema.
  • La pipeline è lenta e vuoi ottimizzarla.
  • Non è necessario correggere nulla, ma vuoi visualizzare i dettagli di esecuzione della pipeline per comprendere il tuo job.

Terminologia

Per utilizzare i dettagli di esecuzione in modo efficace, è utile capire come i seguenti concetti si applicano ai job Dataflow.

Terminologia di Dataflow

  • Ottimizzazione della fusione: il processo di fusione di più passaggi o trasformazioni di Dataflow. Questo processo ottimizza le pipeline inviate dagli utenti. Per ulteriori informazioni, consulta Ottimizzazione di Fusion.
  • Fasi: l'unità di passaggi fusi nelle pipeline Dataflow.
  • Ultima fase: il nodo finale delle pipeline Dataflow. Una pipeline può avere più nodi finali.

Terminologia batch

  • Percorsi critici: la sequenza di fasi di una pipeline che contribuiscono al runtime complessivo del job. Ad esempio, questa sequenza esclude le seguenti fasi:
    • Branch della pipeline che sono stati completati prima del job complessivo.
    • Input che non hanno ritardato l'elaborazione a valle.
  • Worker: istanze VM di Compute Engine che eseguono un job Dataflow.
  • Attività: le unità di lavoro corrispondenti a un bundle selezionato da Dataflow.

Terminologia relativa allo streaming

  • Aggiornamento dei dati: il periodo di tempo tra il tempo reale e il watermark di output. Per saperne di più, consulta Aggiornamento dei dati.

Utilizzare la scheda Dettagli esecuzione

La scheda Dettagli esecuzione include quattro visualizzazioni: Avanzamento fase, Riquadro informativo sulla fase (all'interno di Avanzamento fase), Flusso di lavoro della fase e Avanzamento del worker.

La visualizzazione Flusso di lavoro delle fasi viene attivata automaticamente per tutti i job batch e streaming. I job batch e in streaming hanno anche la visualizzazione Avanzamento fase, mentre i job batch hanno un'ulteriore visualizzazione Avanzamento dei worker.

Questa sezione illustra ogni visualizzazione e fornisce esempi di job Dataflow riusciti e non riusciti.

Avanzamento della fase per i job batch

La visualizzazione Avanzamento fase per i job batch mostra le fasi di esecuzione del job, ordinate in base all'ora di inizio e di fine. La durata è rappresentata da una barra. Ad esempio, puoi identificare visivamente le fasi di esecuzione più lunghe di una pipeline individuando la barra più lunga.

In corrispondenza di ciascuna barra, uno sparkline mostra l'avanzamento della fase nel tempo. Per evidenziare le fasi che hanno contribuito al runtime complessivo del job, fai clic sul pulsante di attivazione/disattivazione Percorso critico. Inoltre, puoi utilizzare Filtra fasi per selezionare solo le fasi che ti interessano.

Un esempio della visualizzazione avanzamento fase per i job batch, che mostra una visualizzazione della durata di sei diverse fasi di esecuzione.

Avanzamento della fase per i job in modalità flusso

La visualizzazione Avanzamento fase per i job di streaming può essere suddivisa in due sezioni. La prima metà della visualizzazione mostra un grafico che rappresenta l'aggiornamento dei dati per ogni fase di esecuzione del job. Se passi il mouse sopra il grafico, viene visualizzato il valore dell'aggiornamento dei dati in quel preciso istante di tempo.

La seconda metà della visualizzazione mostra le fasi di esecuzione del job, disposte in un ordine topografico. Le fasi senza fasi discendenti vengono mostrate per prime, followed by their descendants. Questa visualizzazione consente di identificare più facilmente le fasi di una pipeline che richiedono più tempo del previsto. Le barre hanno dimensioni relative all'aggiornamento dei dati più lungo per l'intero dominio di tempo.

I job di streaming vengono eseguiti finché non vengono annullati, svuotati o aggiornati.

  • Utilizza il selettore dell'ora mostrato con il grafico per limitare l'ambito del dominio a un intervallo di tempo più utile.
  • Utilizza il menu Filtra fasi per selezionare le fasi che ti interessano.

La visualizzazione Avanzamento fase ti aiuta a identificare quando il job di streaming è lento o bloccato in due modi diversi:

  • Il grafico Aggiornamento dei dati per fasi include il rilevamento delle anomalie, che visualizza automaticamente finestre di tempo in cui l'aggiornamento dei dati sembra non essere corretto. Il grafico evidenzia potenziali blocchi quando l'aggiornamento dei dati supera il 99° percentile per l'intervallo di tempo selezionato. Analogamente, il grafico evidenzia potenziali rallentamenti quando l'aggiornamento dei dati supera il 95° percentile.

  • Rileva i colli di bottiglia passando il mouse sopra un momento nel grafico che mostra risultati imprevisti. Le barre più lunghe indicano fasi più lente. In alternativa, fai clic sull'asse x del grafico per visualizzare i dati in quel momento. Un approccio comune per trovare la fase che causa blocchi o rallentamenti è trovare la fase più a monte (in alto) o più a valle (in basso) che causa un picco di aggiornamento dei dati. Questo approccio non è adatto a tutti gli scenari e potrebbe essere necessario eseguire ulteriori operazioni di debug per individuare la causa esatta.

Un esempio della visualizzazione Aggiornamento fase per i job di streaming, che mostra una visualizzazione della durata di una fase di esecuzione e una possibile anomalia di lentezza.

Riquadro informazioni sulla fase

Il riquadro Informazioni sulla fase mostra un elenco di passaggi associati a una fase unita, classificati in ordine decrescente di tempo totale di esecuzione. Per aprire il riquadro, posiziona il cursore del mouse su una delle barre nella visualizzazione Avanzamento fase e fai clic su Visualizza dettagli.

Un esempio del riquadro delle informazioni sulla fase

Workflow fase

Flusso di lavoro delle fasi mostra le fasi di esecuzione del job, rappresentate da un grafico del flusso di lavoro. Per visualizzare solo le fasi che hanno contribuito direttamente al runtime complessivo del job, fai clic sul pulsante di attivazione/disattivazione Percorso critico.

Un esempio della visualizzazione del flusso di lavoro della fase, che mostra la gerarchia delle diverse fasi di esecuzione di un job.

Avanzamento worker

Per i job batch, Avanzamento worker mostra i worker per una determinata fase. Questa visualizzazione non è disponibile per i job di streaming.

Ogni barra corrisponde a un elemento di lavoro pianificato per un worker. Un grafico sparkline che monitora l'utilizzo della CPU su un worker si trova in corrispondenza di ogni worker, facilitando l'individuazione dei problemi di sottoutilizzo.

A causa della densità di questa visualizzazione, devi filtrare questa vista preselezionando una fase. Innanzitutto, identifica una fase nella visualizzazione Avanzamento fase. Tieni il cursore sopra la fase e fai clic su Visualizza i worker per accedere alla visualizzazione Avanzamento dei worker.

Un esempio della visualizzazione dell'avanzamento del lavoratore. I worker hanno barre e sparkline
che corrispondono alla pianificazione degli elementi di lavoro e all'utilizzo della CPU.

Passaggi successivi