Na interface de monitoramento do Dataflow, o painel Informações da etapa mostra informações sobre etapas individuais em um job. Uma etapa representa uma única transformação no pipeline. As transformações compostas contêm subetapas.
O painel Informações da etapa mostra as seguintes informações:
- Métricas da etapa.
- Informações sobre as coleções de entrada e saída da etapa.
- Quais estágios correspondem a essa etapa.
- Métricas de entrada secundária
Use o painel Informações da etapa para entender o desempenho do job em cada etapa e encontrar etapas que podem ser otimizadas.
Conferir informações da etapa
Para conferir informações da etapa, siga estas etapas:
No Google Cloud console, acesse a página Dataflow > Jobs.
Selecione um job.
Clique na guia Gráfico do job para conferir o gráfico. O gráfico do job representa cada etapa no pipeline como uma caixa.
Clique em uma etapa. As informações sobre a etapa aparecem no painel Informações da etapa.
Para conferir as subetapas de uma transformação composta, clique na seta Expandir nó.
Métricas da etapa
O painel Informações da etapa mostra as seguintes métricas para a etapa.
Marca d'água e atraso do sistema
A marca d'água do sistema é o carimbo de data/hora mais recente para o qual todos os horários de eventos foram totalmente processados. O atraso da marca d'água do sistema é o tempo máximo que um item de dados aguardou o processamento.
Marca d'água e atraso dos dados
A marca d'água dos dados é o carimbo de data/hora que marca o tempo estimado de conclusão da entrada de dados para essa etapa. O atraso da marca d'água dos dados é a diferença entre o horário do evento de entrada mais recente e a marca d'água dos dados.
Tempo decorrido
O tempo decorrido é o tempo total aproximado gasto por todas as linhas de execução em todos os workers nas ações a seguir:
- Inicialização da etapa
- Processamento dos dados
- Embaralhamento dos dados
- Finalização da etapa
Para etapas compostas, o tempo decorrido é igual à soma do tempo gasto nas etapas do componente.
O tempo decorrido pode ajudar a identificar etapas lentas e diagnosticar qual parte do pipeline está demorando mais tempo do que o necessário.
Status do gargalo
Se o Dataflow detectar um gargalo, um alerta será mostrado, juntamente com a causa, se conhecida. Para mais informações, consulte Solução de problemas de gargalos.
Latência máxima da operação
A latência máxima da operação é o tempo máximo gasto nessa etapa para processar mensagens recebidas ou expirações de janelas. Essa métrica é medida de forma agregada em etapas combinadas em um único estágio. Portanto, o valor representa todo o estágio.
Paralelismo de chaves
O paralelismo de chaves é o número aproximado de chaves em uso para o processamento de dados nessa etapa.
Informações de janela
Para etapas de agregação em pipelines de streaming, o painel Informações da etapa mostra informações de janela derivadas da estratégia de janela da transformação ParDo do pipeline. Exemplo:
- Função de janela:
org.apache.beam.sdk.transforms.windowing.SlidingWindows - Período da janela:
30 sec - Tamanho da janela:
5 min - Deslocamento de início da janela:
0 ms - Modo de acúmulo de janela:
DISCARDING - Fator de amplificação de gravação de janela:
10
Os campos de janela a seguir fornecem um contexto importante para o desempenho de streaming e o volume de dados:
- Modo de acúmulo de janela:indica se o estado da janela é mantido em acionamentos de gatilho. Para mais informações, consulte Modos de acúmulo de janela na documentação do Apache Beam.
- Fator de amplificação de gravação de janela:o número médio de janelas a que cada elemento de entrada é atribuído, calculado como
Window Size / Window Period. Por exemplo, um tamanho de janela de 5 minutos (300 sec) com um período de slide de 30 segundos (30 sec) atribui cada elemento a 10 janelas sobrepostas (300 / 30 = 10), resultando em um fator de amplificação de gravação de10. Um fator de amplificação maior que1multiplica o volume de elementos downstream, o tráfego de embaralhamento e o armazenamento de estado.
Coleções de entrada/saída
O painel Informações da etapa mostra as seguintes informações sobre cada uma das coleções de entrada e saída na etapa:
Gráfico de capacidade de processamento. Esse gráfico mostra a capacidade de processamento da coleção. É possível conferir o gráfico como elementos por segundo ou como bytes por segundo. Para mais informações sobre essa métrica, consulte Capacidade de processamento.
Contagem de elementos adicionados à coleção.
Tamanho estimado da coleção, em bytes.
Estágios otimizados
Um estágio representa uma única unidade de trabalho realizada pelo Dataflow. Quando você seleciona uma etapa no gráfico do job, o painel Informações da etapa mostra os nomes dos estágios que executam essa etapa, juntamente com o status atual, como em execução, interrompido ou concluído.
Para conferir mais informações sobre os estágios no job, use a guia Detalhes da execução.
Métricas de entrada secundária
Uma entrada secundária é uma entrada adicional que uma transformação pode acessar cada vez que processa um elemento. Se uma transformação criar ou consumir uma entrada secundária, o painel Informações secundárias mostrará as métricas da coleção de entrada secundária.
Se uma transformação composta criar ou consumir uma entrada secundária, expanda a transformação composta até que a subtransformação específica que cria ou consome a entrada secundária esteja visível. Selecione essa subtransformação para conferir as métricas de entrada secundária.
Transformações que criam uma entrada secundária
Se uma transformação criar uma coleção de entrada secundária, a seção Métricas de entrada secundária mostrará o nome da coleção, juntamente com as seguintes métricas:
- Tempo gasto na gravação:o tempo gasto gravando a coleção de entrada secundária.
- Bytes gravados: o número total de bytes gravados na coleção de entrada secundária.
- Tempo de leitura da entrada secundária e bytes lidos: uma tabela que contém outras métricas para todas as transformações que consomem a coleção de entradas secundárias, chamadas de consumidores de entrada secundária.
A tabela Tempo de leitura da entrada secundária e bytes lidos exibe as seguintes informações para cada consumidor de entrada secundária:
- Consumidor de entrada secundária: o nome da transformação do consumidor de entrada secundária.
- Tempo gasto lendo: o tempo que esse consumidor gastou lendo a coleção de entrada secundária.
- Bytes lidos:o número de bytes que esse consumidor leu da coleção de entrada secundária.
A imagem a seguir mostra as métricas de entrada secundária de uma transformação que cria uma coleção de entrada secundária:

O gráfico do job tem uma transformação composta expandida (MakeMapView). A subtransformação que cria a entrada secundária (CreateDataflowView) é selecionada, e as métricas de entrada secundária podem ser conferidas no painel Informações da etapa.
Transformações que consomem entradas secundárias
Se uma transformação consumir uma ou mais entradas secundárias, a seção Métricas de entrada secundária mostrará a tabela Tempo de leitura da entrada secundária e bytes lidos. Nesta tabela, as seguintes informações para cada coleção de entrada secundária são exibidas:
- Coleção de entrada secundária:o nome da coleção de entrada secundária.
- Tempo gasto na leitura: o tempo que a transformação gastou lendo a coleção de entrada secundária.
- Bytes lidos:o número de bytes que a transformação leu da coleção de entrada secundária.
A imagem a seguir mostra as métricas de entrada secundária de uma transformação que lê uma coleção de entrada secundária.

A transformação JoinBothCollections faz leituras em uma coleção de entradas secundárias.
JoinBothCollections é selecionada no gráfico do job, e as métricas de entrada secundária podem ser conferidas no painel Informações da etapa.
Identificar problemas de desempenho em entradas secundárias
As entradas secundárias podem afetar o desempenho do pipeline. Quando o pipeline usa uma entrada secundária, o Dataflow grava a coleção em uma camada permanente (como um disco) e as transformações são lidas nessa coleção permanente. Essas leituras e gravações afetam o tempo de execução do job.
A reiteração é um problema comum de desempenho da entrada secundária. Se a entrada secundária PCollection for muito grande, os workers não poderão armazenar em cache a coleção inteira na memória.
Como resultado, os workers leem repetidamente a coleção de entrada secundária permanente.
Na imagem a seguir, as métricas de entrada secundária mostram que o total de bytes lidos da coleção de entrada secundária é muito maior que o tamanho da coleção, que é mostrado como o total de bytes gravados. A coleção de entradas secundárias é de 563 MB e a soma dos bytes lidos por transformações de consumo é de quase 12 GB.

Para melhorar o desempenho desse pipeline, recrie o algoritmo para evitar iterar ou refazer os dados de entrada secundária. Neste exemplo, o pipeline cria o produto cartesiano de duas coleções. O algoritmo itera toda a coleção de entrada secundária para cada elemento da coleção principal. Você pode melhorar o padrão de acesso do pipeline ao agrupar vários elementos da coleção principal. Essa alteração reduz o número de vezes que os workers releem a coleção de entrada secundária.
Outro problema comum de desempenho pode ocorrer se o pipeline executar uma mesclagem aplicando uma ParDo com uma ou mais entradas secundárias grandes. Nesse caso, os workers dedicam uma grande porcentagem do tempo de processamento para a operação de junção que leem as coleções de entrada secundárias.
A imagem a seguir mostra as métricas de entrada secundária para esse problema:

A transformação JoinBothCollections tem um tempo de processamento total de mais de 18 minutos. Os workers passam a maior parte do tempo de processamento (10 minutos) lendo a coleção de entrada secundária de 10 GB. Para melhorar o desempenho desse
pipeline, use
CoGroupByKey
em vez de entradas secundárias.