Participe da comunidade do Apache Beam de 18 a 20 de julho no Beam Summit 2022 para saber mais sobre o Beam e compartilhar seus conhecimentos.

Como usar a interface de monitoramento do Dataflow

Ao executar o pipeline usando o serviço gerenciado do Dataflow, use a interface do usuário de monitoramento do Dataflow baseada na Web para visualizar todos os jobs. A interface de monitoramento permite visualizar e interagir com suas tarefas do Dataflow.

É possível acessar a interface de monitoramento do Dataflow usando o console do Google Cloud. A interface de monitoramento mostra:

  • Uma lista de todos os jobs do Dataflow em andamento e já executados nos últimos 30 dias;
  • uma representação gráfica de cada pipeline;
  • detalhes do status, tipo e versão do SDK do job;
  • links para informações sobre os serviços do Google Cloud executando seu pipeline, como o Compute Engine e o Cloud Storage;
  • quaisquer erros ou avisos que ocorrem durante um job.
  • Diagnósticos adicionais para um job.

É possível visualizar os gráficos de monitoramento de jobs na interface de monitoramento do Dataflow. Esses gráficos exibem métricas ao longo da duração de um job de pipeline e incluem as seguintes informações:

  • Visibilidade em nível de etapa para ajudar a identificar quais etapas podem estar causando atraso no pipeline.
  • Informações estatísticas que podem apresentar comportamento anômalo.
  • Métricas de E/S que podem ajudar a identificar os gargalos nas suas fontes e coletas.

Como acessar a interface de monitoramento do Dataflow

Para acessar a interface de monitoramento do Dataflow, siga estas etapas:

  1. Faça login no console do Cloud.
  2. Selecione seu projeto do Google Cloud.
  3. Abra o Menu de navegação.
  4. Em Big Data, clique em Dataflow.

Uma lista de jobs do Dataflow é exibida junto com o status deles. Se você não vir nenhum job, precisará executar um novo. Para saber como executar um job, consulte o guia de início rápido do Dataflow.

Uma lista de jobs do Dataflow nos estados "Em execução", "Com falha" e "Bem-sucedido".
Figura 1: uma lista de jobs do Dataflow no console do Cloud com os status em execução, com falha e concluído.

Um job pode ter os seguintes status:

  • : a interface de monitoramento ainda não recebeu um status do serviço Dataflow.
  • Em execução: o job está em execução.
  • Iniciando...: o job é criado, mas o sistema precisa de tempo para se preparar antes da inicialização.
  • Em fila: um job do FlexRS está na fila ou um job do modelo flexível está sendo iniciado (o que pode levar vários minutos).
  • Cancelando...: o job está sendo cancelado.
  • Cancelado: o job foi cancelado.
  • Drenando...: o job está sendo drenado.
  • Drenado: o job foi drenado.
  • Atualizando...: o job está sendo atualizado.
  • Atualizado: o job está atualizado.
  • Com êxito: o job foi concluído com sucesso.
  • Com falha: o job não foi concluído.

Para mais informações sobre um pipeline, clique no Nome do job.

Como acessar gráficos de monitoramento de jobs

Para acessar os gráficos de monitoramento de um job, clique no job Nome na interface de monitoramento do Dataflow. A página Detalhes do job é exibida com as seguintes informações:

  • Gráfico do job: a representação visual do pipeline
  • Detalhes da execução: ferramenta para otimizar o desempenho do pipeline
  • Métricas do job: métricas sobre a execução do job
  • Painel de informações do Job: informações descritivas sobre seu pipeline
  • Registros do job: registros gerados pelo serviço Dataflow no nível do job
  • Logs do worker: registros gerados pelo serviço do Dataflow no nível do worker
  • Diagnóstico: tabela que mostra onde ocorreram erros ao longo do cronograma escolhido e possíveis recomendações para o pipeline
  • Seletor de tempo: ferramenta que permite ajustar o período de suas métricas

Na página Detalhes do job, é possível alternar a visualização de jobs com as métricas Gráfico do job, Detalhes da execução e Métricas do job..

Visualização da interface de monitoramento do Dataflow com a guia "Gráfico do Job" selecionada. Neste modo,
é possível visualizar o gráfico do pipeline, as informações e registros do Job, os registros do worker, diagnósticos
e a ferramenta de seleção de tempo.

Visualização da interface de monitoramento do Dataflow com a guia "Métricas do Job" selecionada.
Neste modo, é possível visualizar os gráficos de métricas do Job, as informações e os registros do Job, os registros do worker, diagnósticos
e a ferramenta de seleção de horário.

Como criar alertas do Cloud Monitoring

O Dataflow é totalmente integrado ao Cloud Monitoring, o que permite criar alertas para quando seu job exceder um limite definido pelo usuário. Para criar um alerta do Cloud Monitoring a partir de um gráfico de métricas, clique em Criar política de alertas.

O link **Criar política de alertas** permite criar um alerta de um gráfico de métricas.

Para instruções sobre como criar esses alertas, leia a página Como usar o Cloud Monitoring para pipelines do Dataflow. Se não for possível ver os gráficos de monitoramento ou criar alertas, talvez sejam necessárias outras permissões do Monitoring.

Modo tela cheia

Para visualizar um gráfico de métricas em tela cheia, clique em .

Como usar a ferramenta de seleção de horário

É possível ajustar o período das métricas com a ferramenta de seleção de horário. É possível selecionar uma duração predefinida ou um intervalo de tempo personalizado para analisar seu job.

A ferramenta de seleção de horário permite que você selecione um intervalo de tempo usando incrementos de hora e dias ou um período personalizado.

Para jobs em lote de streaming ou durante a veiculação, a exibição padrão dos gráficos mostra as seis horas anteriores de métricas desse job. Para jobs de fluxo interrompido ou concluídos, a exibição padrão dos gráficos mostra todo o ambiente de execução da duração do job.

Métricas da etapa e do worker

É possível visualizar os gráficos na guia Job metrics da IU do Dataflow. Cada métrica é organizada nos seguintes painéis:

Métricas de visão geral

Métricas de streaming (somente pipelines de streaming)

Métricas de entrada

Métricas de saída

Para acessar mais informações nesses gráficos, clique no botão de alternância para "Expandir legenda de gráfico".

O botão para ativar as legendas está localizado próximo ao botão
"Criar política de alertas".

Alguns desses gráficos são específicos apenas para pipelines de streaming. Uma lista de cenários em que essas métricas podem ser úteis para depuração pode ser encontrada na seção Como usar as métricas de monitoramento do Dataflow.

Escalonamento automático

O serviço Dataflow escolhe automaticamente o número de instâncias de worker obrigatórias na execução do job de escalonamento automático. O número de instâncias de worker pode mudar com o tempo de acordo com os requisitos do job.

Uma visualização de dados que mostra o número de workers em um pipeline.

Para ver o histórico das alterações de escalonamento automático, clique no botão Mais histórico. Uma tabela com informações sobre o histórico de worker do pipeline é exibida.

Tabela mostrando o histórico de worker do pipeline.

Capacidade

A capacidade é o volume de dados processados a qualquer momento. Essa métrica por etapa é exibida como o número de elementos por segundo. Para visualizar essa métrica em bytes por segundo, role para baixo até o gráfico Capacidade (bytes/segundo).

Uma visualização de dados que mostra a capacidade de quatro etapas em um pipeline.

Contagem do registro de erros do worker

A contagem de registros de erros do worker mostra a taxa de erros observada em todos os workers a qualquer momento.

Um resumo de cada erro registrado e o número de ocorrências.

Uso da CPU

O uso da CPU é a quantidade de CPU usada dividida pela quantidade de CPU disponível para processamento. Essa métrica por worker é exibida como uma porcentagem. O painel inclui estes quatro gráficos:

  • Uso da CPU (todos os workers)
  • Uso da CPU (estatísticas)
  • Uso da CPU (Superior 4)
  • Uso da CPU (Inferior 4)

Uma visualização de dados animada que mostra a utilização da CPU para um worker
do Dataflow.

Atualização de dados (com e sem o Streaming Engine)

A atualização de dados é o tempo em segundos desde a marca-d'água de saída mais recente. Cada etapa do pipeline tem uma marca-d'água de dados de saída. Uma marca-d'água de dados de saída de T indica que todos os elementos com um tempo de evento antes de T foram processados para computação. A marca-d'água de dados de saída é limitada pela primeira marca-d'água de dados de entrada de todas as computações upstream. Se alguns dados de entrada ainda não foram processados, a marca-d'água de saída talvez seja retida, o que afeta a atualização de dados.

Uma visualização de dados que mostra a atualização de dados em um
pipeline de streaming.

Latência do sistema (com e sem Streaming Engine)

A latência do sistema é o número máximo atual de segundos que um item de dados ficou processando ou aguardando processamento. Essa métrica indica quanto tempo um elemento aguarda dentro de qualquer fonte no pipeline. A duração máxima é ajustada após o processamento. Os casos a seguir são considerações extras:

  • Para várias fontes e coletores, a latência do sistema é o tempo máximo que um elemento aguarda dentro de uma fonte antes de ser gravado em todos os coletores.
  • Às vezes, uma fonte não fornece um valor do período de tempo em que um elemento aguarda dentro da fonte. Além disso, o elemento pode não ter metadados para definir o horário do evento. Nesse cenário, a latência do sistema é calculada desde o momento em que o pipeline recebe o elemento pela primeira vez.

Uma visualização de dados animada que mostra a latência do sistema em um
pipeline de streaming.

Bytes do backlog (com e sem o Streaming Engine)

O gráfico Bytes de backlog mostra a quantidade de entradas não processadas conhecidas de um estágio em bytes. Esta métrica compara os bytes restantes a serem consumidos por cada estágio em relação aos estágios upstream. Para que essa métrica seja informada com precisão, cada origem ingerida pelo pipeline precisa ser configurada corretamente. Origens nativas, como o Pub/Sub e o BigQuery, já são compatíveis imediatamente. No entanto, algumas origenspersonalizadas precisam de implementação extra. Para mais detalhes, consulte escalonamento automático para fontes ilimitadas personalizadas.

Uma visualização de dados que mostra o gráfico de bytes de backlog em um
pipeline de streaming.

Paralelismo (somente Streaming Engine)

O gráfico Processamento paralelo mostra o número aproximado de chaves em uso para o processamento de dados de cada estágio. O Dataflow é escalonável com base no paralelismo de um pipeline. No Dataflow, o paralelismo de um pipeline é uma estimativa do número de linhas de execução necessárias para processar os dados com mais eficiência em um determinado momento. O processamento de qualquer chave é serializado para que o número total de chaves em um estágio represente o paralelismo máximo disponível no estágio. As métricas de paralelismo podem ser úteis para encontrar teclas de atalho ou gargalos em pipelines lentos ou travados.

Uma visualização de dados que mostra o gráfico de processamento paralelo em um
pipeline de streaming.

Cópias (somente Streaming Engine)

O gráfico Cópias mostra o número de mensagens processadas por uma fase específica que foram filtradas como cópias. O Dataflow é compatível com muitas origens e coletores que garantem a entrega de at least once. A desvantagem da exibição de at least once é que ela pode resultar em cópias. O Dataflow garante a entrega exactly once, o que significa que as cópias são filtradas automaticamente. Os estágios downstream são salvos do reprocessamento dos mesmos elementos, o que garante que o estado e as saídas não sejam afetados. Para otimizar o pipeline para recursos e desempenho, reduza o número de cópias produzidas em cada estágio.

Uma visualização de dados que mostra o gráfico duplicado em um
pipeline de streaming.

Métricas de entrada e saída

As métricas de entrada e de saída serão exibidas se o job de streaming do Dataflow ler ou gravar registros usando o Pub/Sub.

Todas as métricas de entrada do mesmo tipo são combinadas, e todas as métricas de saída também são combinadas. Por exemplo, todas as métricas do Pub/Sub são agrupadas em uma seção. Cada tipo de métrica é organizado em uma seção separada. Para mudar as métricas exibidas, selecione a seção à esquerda que melhor representa as métricas que você está procurando. As imagens a seguir mostram todas as seções disponíveis.

Exemplo de imagem que mostra as seções de entrada e saída separadas para um job do Dataflow.

Os três gráficos a seguir são exibidos nas seções Métricas de entrada e Métricas de saída.

Uma série de gráficos que mostra métricas de entrada e saída para um job de streaming do Dataflow.

Solicitações por segundo

Solicitações por segundo é a taxa de solicitações de API para ler ou gravar dados pela origem ou coletor ao longo do tempo. Se essa taxa cair para zero ou diminuir significativamente por um período prolongado em relação ao comportamento esperado, o pipeline talvez esteja impedido de executar determinadas operações. Além disso, talvez não haja dados para ler. Nesse caso, analise as etapas do job que tiverem uma marca d'água de sistema alta. Examine também os registros de worker para verificar se há erros ou indicações sobre o processamento lento.

Gráfico que mostra o número de solicitações de API para ler ou gravar dados pela origem ou coletor ao longo do tempo.

Erros de resposta por segundo de acordo com o tipo de erro

A taxa de erros de resposta por segundo por tipo de erro é a taxa de solicitações de API para ler ou gravar dados com falha por origem ou por coletor ao longo do tempo. Se esses erros ocorrerem com frequência, essas solicitações de API podem atrasar o processamento. As solicitações de API com falha precisam ser investigadas. Para ajudar a resolver esses problemas, consulte a documentação do código de erro de E/S e qualquer documentação de código de erro específica usada pela origem ou pelo coletor, como os códigos de erro do Pub/Sub.

Gráfico que mostra a taxa de falhas de solicitação de API para ler ou gravar dados pela origem ou coletor ao longo do tempo.

Como usar o Metrics Explorer

É possível visualizar as seguintes métricas de E/S do Dataflow no Metrics Explorer:

Para acessar a lista completa de métricas do Dataflow, consulte a documentação sobre métricas do Google Cloud.

Alterações futuras nas métricas do Pub/Sub (somente Streaming Engine)

O Streaming Engine usa o Pull síncrono para consumir dados do Pub/Sub. No entanto, a partir de fevereiro de 2022, migraremos para o Pull de streaming para melhorar o desempenho. As métricas e os gráficos existentes de Solicitações por segundo e Erros de resposta por segundo são apropriados apenas para o pull síncrono. Vamos adicioinar uma métrica sobre a integridade das conexões de pull de streaming e quaisquer erros que encerram essas conexões.

A migração não exigirá qualquer envolvimento dos usuários. Durante a migração, um job pode estar usando o pull síncrono por um período de tempo e o pull de streaming por outro período. Portanto, o mesmo job pode mostrar as métricas de pull síncrono por um período de tempo e as métricas de pull de streaming por outro período. Após a conclusão da migração, as métricas de pull síncrono serão removidas da IU.

A migração também afetará as métricas job/pubsub/read_count e job/pubsub/read_latencies no Cloud Monitoring. Esses contadores não serão incrementados enquanto um job estiver usando o pull de streaming.

Os jobs de streaming que não usam o Streaming Engine não serão migrados para o Streaming Pull e não serão afetados por essa alteração. Eles continuarão a exibir as métricas de pull síncrono.

Para mais informações sobre a migração do pull de streaming, acesse a página Streaming com o Pub/Sub.

Se você tiver dúvidas sobre essa alteração, entre em contato com sua equipe de conta.

Como visualizar um pipeline

Quando você seleciona um job específico do Dataflow, a interface de monitoramento mostra informações sobre o pipeline desse job. Essas informações incluem uma representação gráfica do pipeline à medida que ele é executado no serviço Dataflow, um resumo do job, um registro do job e informações sobre cada etapa do pipeline.

A interface de monitoramento do Dataflow fornece uma representação gráfica do pipeline: o gráfico de execução. O gráfico de execução de um pipeline representa cada transformação no pipeline como uma caixa. Cada caixa contém o nome da transformação e as informações sobre o status do job, que incluem o seguinte:

  • Em execução: a etapa está em execução.
  • Em fila: a etapa em que um job do FlexRS entra na fila.
  • Com êxito: a etapa foi concluída com sucesso.
  • Parado: a etapa foi interrompida porque o job parou.
  • Desconhecido: a etapa falhou ao informar o status.
  • Com falha: a etapa não foi concluída.

Gráfico de execução básica

Código do pipeline:

Java


  // Read the lines of the input text.
  p.apply("ReadLines", TextIO.read().from(options.getInputFile()))
     // Count the words.
     .apply(new CountWords())
     // Write the formatted word counts to output.
     .apply("WriteCounts", TextIO.write().to(options.getOutput()));

Python


(
    pipeline
    # Read the lines of the input text.
    | 'ReadLines' >> beam.io.ReadFromText(args.input_file)
    # Count the words.
    | CountWords()
    # Write the formatted word counts to output.
    | 'WriteCounts' >> beam.io.WriteToText(args.output_path))
Gráfico de execução:

O gráfico de execução para um pipeline WordCount conforme mostrado na interface de monitoramento do
              Dataflow.

Figura 2: o código de um pipeline WordCount mostrado com o gráfico de execução resultante na interface de monitoramento do Dataflow.

Transformações compostas

No gráfico de execução, as transformações compostas (aquelas que contêm várias subtransformações aninhadas) são expansíveis. Transformações compostas expansíveis são marcadas com uma seta no gráfico. Clique na seta para expandir a transformação e visualizar as subtransformações internas.

Código do pipeline:

Java


  // The CountWords Composite Transform
  // inside the WordCount pipeline.

  public static class CountWords
    extends PTransform<PCollection<String>, PCollection<String>> {

    @Override
    public PCollection<String> apply(PCollection<String> lines) {

      // Convert lines of text into individual words.
      PCollection<String> words = lines.apply(
        ParDo.of(new ExtractWordsFn()));

      // Count the number of times each word occurs.
      PCollection<KV<String, Long>> wordCounts =
        words.apply(Count.<String>perElement());

      return wordCounts;
    }
  }

Observação: na imagem à direita, FormatCounts não é relevante neste SDK.

Python


# The CountWords Composite Transform inside the WordCount pipeline.
@beam.ptransform_fn
def CountWords(pcoll):
  return (
      pcoll
      # Convert lines of text into individual words.
      | 'ExtractWords' >> beam.ParDo(ExtractWordsFn())
      # Count the number of times each word occurs.
      | beam.combiners.Count.PerElement()
      # Format each word and count into a printable string.
      | 'FormatCounts' >> beam.ParDo(FormatCountsFn()))

Gráfico de execução:

O gráfico de execução de um pipeline WordCount com CountWords expandida para mostrar as transformações dos componentes.

Figura 3: o código do pipeline relativo às subetapas da transformação CountWords, mostradas com o gráfico de execução expandido para todo o pipeline.

Nomes de transformação

O Dataflow tem algumas maneiras diferentes para chegar ao nome da transformação mostrado no gráfico de execução de monitoramento:

Java

  • O Dataflow pode usar um nome já atribuído quando você aplica a transformação. O primeiro argumento fornecido para o método apply é o nome da transformação.
  • O Dataflow pode inferir o nome da transformação, seja do nome da classe, se você criou uma transformação personalizada, ou do nome do objeto de função DoFn, se você estiver usando uma transformação básica, como ParDo.

Python

  • O Dataflow pode usar um nome já atribuído quando você aplica a transformação. Para definir o nome da transformação, especifique o argumento label dela.
  • O Dataflow pode inferir o nome da transformação, seja do nome da classe, se você criou uma transformação personalizada, ou do nome do objeto de função DoFn, se você estiver usando uma transformação básica, como ParDo.

Como interpretar as métricas

Tempo decorrido real

Quando você clica em uma etapa, a métrica de Tempo decorrido é exibida no painel Informações da etapa. Esta métrica fornece o tempo total aproximado gasto por meio de 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 informa a soma do tempo gasto nas etapas do componente. Essa estimativa pode ajudar a identificar etapas lentas e diagnosticar qual parte do pipeline está demorando mais tempo do que o necessário.

É possível ver o tempo que leva para uma etapa ser executada no pipeline.
Figura 4: a métrica Tempo decorrido ajuda a garantir que o pipeline esteja funcionando de maneira eficiente.

Métricas de entrada secundária

As métricas de entrada secundária mostram como os algoritmos e os padrões de acesso de entradas secundárias (em inglês) afetam 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 interface de monitoramento do Dataflow exibe métricas de entrada secundária quando você seleciona uma transformação que cria ou consome uma coleção de entrada secundária. É possível ver as métricas na seção Métricas de entrada secundária do painel Informações da etapa.

Transformações que criam uma entrada secundária

Se a transformação selecionada criar uma coleção de entrada secundária, a seção Métricas de entrada secundária exibirá o nome da coleção, junto 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 este consumidor leu da coleção de entrada secundária.

Se o pipeline tiver uma transformação composta que crie uma entrada secundária, expanda a transformação composta até que a subtransformação específica que cria a entrada secundária esteja visível. Depois, selecione essa subtransformação para visualizar a seção Métricas de entrada secundária.

A Figura 5 mostra as métricas de entrada secundária de uma transformação que cria uma coleção de entrada secundária.

Selecione a subtransformação. Assim, as métricas de entrada secundária estarão
          visíveis no painel lateral de informações da etapa.
Figura 5: o gráfico de execução tem uma transformação composta expandida (MakeMapView). A subtransformação que cria a entrada secundária (CreateDataflowView) está selecionada e as métricas de entrada secundária podem ser visualizadas no painel lateral Informações da etapa.

Transformações que consomem uma ou mais entradas secundárias

Se a transformação selecionada consumir uma ou mais entradas secundárias, a seção Métricas de entrada secundária exibirá 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.

Se o pipeline tiver uma transformação composta que crie uma entrada secundária, expanda a transformação composta até que a subtransformação específica que lê a entrada secundária esteja visível. Depois, selecione essa subtransformação para visualizar a seção Métricas de entrada secundária.

A Figura 6 mostra as métricas de entrada secundária de uma transformação que lê uma coleção de entrada secundária.

Selecione a transformação. Assim, as métricas de entrada secundária estarão
         visíveis no painel lateral de informações da etapa.
Figura 6: a transformação JoinBothCollections faz leituras em uma coleção de entradas secundárias. JoinBothCollections está selecionada no gráfico de execução e as métricas de entrada secundária podem ser visualizadas no painel lateral Informações da etapa.

Como identificar problemas de desempenho de entrada secundária

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 figura 7, 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 (total de bytes gravados).

Selecione a transformação. Assim, as métricas de entrada secundária estarão
         visíveis no painel lateral de informações da etapa.
Figura 7: um exemplo de reiteração. 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 Figura 8 mostra um exemplo de métricas de entrada secundária para esse problema:

Selecione a transformação. Assim, as métricas de entrada secundária estarão
         visíveis no painel lateral de informações da etapa.
Figura 8: a transformação JoinBothCollections tem um tempo de processamento total de 18 minutos e 31 segundos. Os workers passam a maior parte desse tempo (10 minutos e 3 segundos) na leitura da coleção de entrada secundária de 10 GB.

Para melhorar o desempenho desse canal, use CoGroupByKey em vez de entradas secundárias.

Recomendações e diagnósticos

O Dataflow fornece recomendações para melhorar o desempenho do job, reduzir custos e solucionar erros. Esta seção explica como analisar e interpretar as recomendações. Lembre-se de que algumas recomendações podem não ser relevantes para seu caso de uso.

Diagnósticos

A guia Diagnóstico em Registros coleta e exibe determinadas entradas de registro produzidas nos pipelines. Isso inclui mensagens que indicam um provável problema com o pipeline e mensagens de erro com stack traces. As entradas de registros coletadas são eliminadas e combinadas em grupos de erros.

A guia &quot;Diagnóstico&quot; de um job do Dataflow com um grupo de erros de erro de serviço.

O relatório de erros inclui as seguintes informações:

  • uma lista de erros com mensagens de erro;
  • o número de vezes que ocorreu cada erro;
  • um histograma indicando quando ocorreu cada erro;
  • a hora em que o erro ocorreu recentemente.
  • a hora em que o erro ocorreu pela primeira vez.
  • O status do erro.

Para visualizar o relatório de um erro específico, clique na descrição na coluna Erros. Será exibida a página Relatórios de erros. Se o erro for relacionado a um erro no serviço, um link adicional com a documentação de mais etapas será exibido ("Guia de solução de problemas").

A página de detalhes do grupo de erros para um erro de serviço do Dataflow.

Para saber mais sobre a página, consulte Como visualizar erros.

Silenciar um erro

Para desativar o silenciamento de uma mensagem, abra a guia Diagnóstico, clique no erro que você quer silenciar e abra o menu de status da resolução (identificado como: Abrir | Reconhecido | Resolvido | Silenciado) e selecione Silenciado.

Recomendações

A guia Recomendações exibe insights do Dataflow sobre o pipeline. O objetivo desses insights é identificar situações em que possam ser feitas melhorias no custo e no desempenho.

A guia &quot;Recomendações&quot; de um job do Dataflow com recomendações de exemplo.

A coluna Data de atualização indica a última vez que um insight foi observado. As recomendações serão armazenadas por 30 dias a partir da data de atualização.

Acesso programático a recomendações

Para acesso programático a recomendações, use a API Recommender.

Dispensar uma recomendação

É possível dispensar uma recomendação no hub de recomendações do seu projeto.

Para dispensar uma recomendação, clique no menu de navegação no canto superior esquerdo do console do Cloud e selecione Página inicial > Recomendações. No card "Diagnóstico do Dataflow", clique em Ver tudo, selecione a recomendação que você quer dispensar e clique em Dispensar.

A seguir