Detalhes da execução

O Dataflow fornece uma guia de Detalhes da execução na interface de usuário de monitoramento baseada na Web. Essa ferramenta pode ajudar a otimizar o desempenho dos jobs e diagnosticar por que o job está lento ou travado. Este documento é destinado a qualquer usuário do Dataflow que precise inspecionar os detalhes de execução dos jobs do Dataflow.

Esta página fornece um resumo de alto nível do recurso de detalhes de execução e o layout da interface do usuário. Para detalhes de solução de problemas, leia Como usar a guia detalhes da execução.

Terminologia

Para usar os detalhes de execução de forma eficaz, você precisa entender como os seguintes conceitos principais se aplicam aos jobs do Dataflow:

Terminologia do Dataflow

  • Otimização de fusão: o processo de mesclar várias etapas ou transformações do Dataflow. Isso otimiza os pipelines enviados pelo usuário. Para mais informações, leia Otimização de fusão.
  • Estágios: a unidade de etapas fundidas nos pipelines do Dataflow.
  • Último estágio: o nó final nos pipelines do Dataflow. Um pipeline pode ter vários nós finais.

Terminologia de lote

  • Caminhos críticos: a sequência de estágios de um pipeline que contribuíram para o ambiente de execução geral do job. Por exemplo, essa sequência exclui os seguintes estágios:
    • Ramificações do pipeline finalizado antes do job de modo geral.
    • Entradas que não atrasaram o processamento downstream.
  • Workers: instâncias de VM do Compute Engine que executam um job do Dataflow.
  • Itens de trabalho: as unidades de trabalho que correspondem a um pacote selecionado pelo Dataflow.

Terminologia de streaming

Quando usar os detalhes de execução

Veja a seguir cenários comuns para usar detalhes de execução ao executar jobs do Dataflow:

  • O pipeline está parado, e você quer resolver o problema.
  • O pipeline está lento e você quer segmentar a otimização dele.
  • Nada precisa ser corrigido, mas você quer ver os detalhes da execução do pipeline para entender o job.

Ativar detalhes da execução

A visualização Fluxo de trabalho do cenário é ativada automaticamente para todos os jobs de lote e de streaming. Os jobs em lote e de streaming também têm uma visualização de Progresso do estágio, e os jobs em lote têm uma visualização de progresso do worker adicional.

Esse recurso não gera outros usos de CPU, rede etc. para suas VMs. Os detalhes da execução são coletados pelo sistema de monitoramento de back-end do Dataflow, que não afeta o desempenho do job.

Depois de iniciar o job, é possível visualizar a guia Detalhes da execução usando a IU de monitoramento do Dataflow. Para mais informações, leia Como acessar a interface de monitoramento do Dataflow.

Usar a guia "Detalhes da execução"

A guia Detalhes da execução inclui quatro visualizações: Progresso da etapa, Painel lateral (em Progresso da etapa), Fluxo de trabalho de estágio e Progresso de workers. Nesta seção, mostramos cada visualização e fornecemos exemplos de jobs do Dataflow bem-sucedidos e mal-sucedidos.

Progresso do estágio para jobs em lote

A visualização Progresso do estágio dos jobs em lote mostra os estágios da execução do job, organizados pelos horários de início e de término. O período é representado por uma barra. Por exemplo, você pode identificar visualmente os estágios mais longos de um pipeline encontrando a barra mais longa.

Abaixo de cada uma das barras, você encontra um minigráfico que mostra o progresso do estágio ao longo do tempo. Para destacar os estágios que contribuíram para o ambiente de execução geral do job, clique no botão Caminho crítico. Além disso, você pode usar o menu suspenso "Filtrar fases" para selecionar apenas aquelas que lhe interessam.

Um exemplo da visualização de progresso do cenário para jobs em lote que mostra uma visualização do período de seis estágios de execução diferentes.

Progresso do estágio para jobs de streaming

A visualização Progresso do estágio dos jobs de streaming pode ser dividida em duas seções. A metade superior da visualização mostra um gráfico que representa a atualização de dados para cada estágio de execução do job. Passe o cursor sobre o gráfico para ver o valor da atualização de dados no momento mais específico. A metade inferior da visualização mostra os estágios da execução do job, organizados em uma ordem topológica. Os estágios sem descendentes são exibidos na parte superior, e os descendentes são listados abaixo. Essa visualização facilita a identificação de estágios de um pipeline que levam mais tempo do que o esperado. As barras são dimensionadas de acordo com a atualização de dados mais longa de todo o domínio.

Os jobs de streaming são executados até serem cancelados, drenados ou atualizados. É possível usar o seletor de tempo acima do gráfico para definir o escopo do domínio para um intervalo mais útil. Além disso, você pode usar o menu suspenso "Filtrar fases" para selecionar apenas aquelas que lhe interessam.

A visualização Progresso do estágio facilita a identificação do momento em que o job de streaming está lento ou travado de duas maneiras diferentes:

  1. O gráfico "Atualização de dados por etapas" inclui detecção de anomalias, que exibirá automaticamente janelas de tempo quando a atualização de dados parecer não íntegra. O gráfico destacará a possibilidade de travamento quando a atualização de dados exceder o 99o percentil da janela de tempo selecionada. Da mesma forma, o gráfico destacará "lentidão em potencial" quando a atualização de dados exceder o 95o percentil.
  2. Os gargalos podem ser detectados passando o cursor sobre um gráfico que parece anormal. Quando o cursor é passado sobre barras mais longas, isso indica que as fases estão mais lentas. Outra opção é clicar no eixo x do gráfico para exibir os dados naquele momento. Uma abordagem comum para encontrar o cenário que causa a inatividade/lenta é encontrar o estágio mais upstream (superior) ou o mais downstream (mais baixo), causando o aumento da atualização de dados. Essa abordagem não é adequada para todos os cenários, e pode ser necessário depurar mais detalhes para identificar a causa exata.

Um exemplo de visualização de progresso do cenário para jobs de streaming, que mostra uma visualização do período de um estágio de execução e uma possível anomalia de lentidão.

Painel de informações sobre o palco

O painel Informações do estágio exibe uma lista de etapas associadas a um estágio, classificadas por tempo decorrido decrescente. O painel é aberto no lado direito da tela. Para abrir o painel, passe o cursor sobre uma das barras na visualização Progresso do cenário e clique em Ver detalhes.

Exemplo do painel de informações do cenário

Fluxo de trabalho do estágio

O Fluxo de trabalho do estágio mostra os estágios de execução do job, representados como um gráfico de fluxo de trabalho. Para mostrar apenas os estágios que contribuíram diretamente para o ambiente de execução geral do job, clique no botão Caminho crítico.

Um exemplo da visualização do fluxo de trabalho do estágio, mostrando a hierarquia dos diferentes
estágios de execução de um job.

Progresso do worker

Para jobs em lote, o Progresso do worker mostra os workers de um estágio específico. Esta visualização não está disponível para jobs de streaming.

Cada barra é mapeada para um item de trabalho programado para um worker. Um gráfico sparkline que rastreia a utilização da CPU em um worker está localizado abaixo de cada worker, facilitando a detecção de problemas de subutilização.

Devido à densidade desta visualização, é necessário filtrar esta visualização pré-selecionando um estágio. Primeiro, identifique um estágio na visualização Progresso do estágio. Passe o cursor sobre esse estágio e clique em Ver workers para entrar na visualização Progresso do worker.

Exemplo da visualização de progresso do worker. Os workers têm barras e minigráficos
que correspondem à programação do item de trabalho e à utilização da CPU.

A seguir