Como criar perfis de pipelines do Dataflow com o Cloud Profiler

O Cloud Profiler é um criador de perfil estatístico de baixa sobrecarga que coleta continuamente informações sobre o uso da CPU e a alocação de memória dos seus aplicativos de produção. A integração do Dataflow com o Cloud Profiler ajuda você a identificar as partes do código do pipeline que consomem mais recursos.

Antes de começar

Entenda os conceitos do Cloud Profiler e conheça a interface do criador de perfil.

A API Cloud Profiler para seu projeto será ativada automaticamente quando você acessar a página do Profiler pela primeira vez. Verifique se o projeto tem cota suficiente.

Ativar o Cloud Profiler para pipelines do Dataflow

O Cloud Profiler está disponível para pipelines do Dataflow escritos no SDK do Apache Beam para Java e Python, versão 2.33.0 ou posterior. Ele pode ser ativado no horário de início do pipeline. A sobrecarga amortizada da CPU e da memória precisa ser inferior a 1% para os pipelines.

Java

Para ativar a criação de perfil da CPU, inicie o pipeline com a opção --dataflowServiceOptions=enable_google_cloud_profiler.

Para ativar a criação de perfil de heap, inicie o pipeline com as opções --dataflowServiceOptions=enable_google_cloud_profiler e --dataflowServiceOptions=enable_google_cloud_heap_sampling. A criação de perfil por heap requer o Java 11 ou posterior.

Python

Seu pipeline Python precisa ser executado com o Dataflow Runner v2 para usar o Cloud Profiler.

Para ativar a criação de perfil da CPU, inicie o pipeline com a opção --dataflow_service_options=enable_google_cloud_profiler. A criação de perfil por heap ainda não é compatível com Python.

Se você implantar seus pipelines por meio de modelos do Dataflow, poderá ativar o Cloud Profiler especificando as sinalizações enable_google_cloud_profiler e enable_google_cloud_heap_sampling como experimentos adicionais.

Console

Se você usa um modelo fornecido pelo Google, é possível especificar as sinalizações no campo Experimentos adicionais na página Criar job do Dataflow. da página de modelo.

gcloud

Se você usar a ferramenta de linha de comando gcloud para executar modelos: gcloud dataflow jobs run ou gcloud dataflow flex-template run, Dependendo do tipo de modelo, é possível especificar as sinalizações por meio da opção --additional-experiments.

API

Se você usar a API REST para executar modelos, especifique as sinalizações pelo campo additionalExperiments do ambiente de execução, ou seja, RuntimeEnvironment ou FlexTemplateRuntimeEnvironment, dependendo do tipo de modelo.

Ver os dados de criação de perfil

Se o Cloud Profiler estiver ativado, um link para a página do Profiler será mostrado na página do job.

link da página do criador de perfil

Também é possível visitar a página do Profiler para encontrar os dados de criação de perfil do pipeline do Dataflow, em que Serviço é o nome do job e versão é o ID do job. de dados.

página do criador de perfil

Solução de problemas

Há algumas causas comuns que podem impedir que o pipeline gere dados de criação de perfil, mesmo quando você ativa o Cloud Profiler.

  • O pipeline usa uma versão mais antiga do SDK do Apache Beam. É possível visualizar a versão do SDK do Apache Beam do seu pipeline por meio da página do job. Você precisa da versão 2.33.0 ou posterior para usar o Cloud Profiler. Se o job for criado com base em modelos do Dataflow, verifique se os modelos estão usando as versões compatíveis do SDK.

  • Seu projeto está quase sem cota do Cloud Profiler. Veja o uso da cota na página de cotas do seu projeto. O serviço do Cloud Profiler rejeitará os dados de criação de perfil se você tiver atingido a cota.

O agente do Cloud Profiler é instalado durante a inicialização do worker no Dataflow. As mensagens de registro geradas pelo Cloud Profiler estão disponíveis nos tipos de registro dataflow.googleapis.com/worker-startup.

registro do criador de perfil