Como criar perfis de aplicativos em execução fora do Google Cloud

Esta página explica como criar perfis de aplicativos em execução fora do Google Cloud.

Nesse cenário, o aplicativo e o agente do Cloud Profiler são executados fora do Google Cloud, mas você usa a interface do Cloud Profiler para analisar os dados de criação de perfil.

Usar a interface do Profiler para analisar dados de criação de perfil requer um projeto do Google Cloud. O agente de criação de perfil executado em um local externo precisa ser capaz de enviar os perfis de volta para análise. Para ativar esse processo, é preciso:

  1. criar um projeto do Google Cloud e ative a API;
  2. conseguir credenciais para o agente usar quando fizer o upload de perfis;
  3. configurar o agente para usar as credenciais e o ID do projeto do Google Cloud.

Criar um projeto do Google Cloud

No Console do Cloud, na página do seletor de projetos, clique em Criar para começar a criar um novo projeto do Cloud.

Acesse a página do seletor de projetos

Ativar a API do Profiler

Na página do Console do Cloud do novo projeto, acesse a APIs e serviços:

  1. Acesse o painel de APIs e serviços:

    Acessar APIs e serviços

  2. Clique no botão Adicionar APIs e serviços.

    Adicionar APIs e serviços

  3. Pesquise por API Profiler.

  4. Nos resultados da pesquisa, selecione API Cloud Profiler.

  5. Se a mensagem API ativada for exibida, significa que a API já está ativada. Caso contrário, clique no botão Ativar.

Conseguir credenciais para o agente

Há duas maneiras de conseguir credenciais para o agente usar:

  • Deixar o agente usar uma conta de serviço com autenticação de chave privada.
  • Deixar o agente usar o Application Default Credentials (ADC).

Como usar contas de serviço

Para que o agente use uma conta de serviço com autenticação de chave privada, é preciso:

  1. criar uma conta de serviço. Por exemplo, use o SDK do Cloud:

    gcloud iam service-accounts create [MY-SVC-ACCT-ID] --display-name "my service account"
    

    Para mais informações, consulte Como criar uma conta de serviço.

  2. conceder à conta de serviço o papel roles/cloudprofiler.agent para que ela possa gravar dados de criação de perfil. Por exemplo, use o SDK do Cloud:

     gcloud projects add-iam-policy-binding [GCP-PROJECT-ID] \
         --member serviceAccount:[MY-SVC-ACCT-ID]@[GCP-PROJECT-ID].iam.gserviceaccount.com \
         --role roles/cloudprofiler.agent
    

    Consulte Como conceder papéis às contas de serviço para mais informações.

  3. Crie uma chave JSON para a conta de serviço. Por exemplo, use o SDK do Cloud:

     gcloud iam service-accounts keys create \
         ~/key.json \
         --iam-account [MY-SVC-ACCT-ID]@[GCP-PROJECT-ID].iam.gserviceaccount.com
    

    Consulte Como criar chaves de conta de serviço para mais informações.

  4. No computador em que o agente de criação de perfil será executado, faça o seguinte:

    1. Coloque uma cópia do arquivo que contém a chave JSON que você acabou de criar.
    2. Defina a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS como o nome totalmente qualificado do arquivo que contém a chave JSON. Essa variável precisa estar visível para o processo que executa o agente de criação de perfil. Portanto, se você usa um script ou Dockerfile para executar o processo, inclua a variável de ambiente neles.

Como usar o Application Default Credentials

Para que o agente use o Application Default Credentials, consiga as credenciais de acesso do usuário por meio de um fluxo da Web. Depois, coloque-as no local designado para a biblioteca do ADC. Essas credenciais atuam como um proxy de uma conta de serviço.

Para usar o Application Default Credentials, execute o seguinte comando do SDK do Cloud:

 gcloud auth application-default login

e siga as etapas mencionadas nele.

Como vincular o agente a um projeto do Google Cloud

O agente de criação de perfil precisa ser configurado para especificar o ID do projeto do Google Cloud. Assim, ele pode fazer o upload de perfis. O mecanismo desse processo depende da linguagem.

Go

Especifique um parâmetro adicional, ProjectID, no objeto profiler.Config descrito em Como criar perfis de aplicativos Go:

 profiler.Config{ProjectID: "[GCP_PROJECT_ID]", ...}

Java

Especifique uma sinalização complementar de configuração do agente Java, cprof_project_id, na invocação correspondente:

 -cprof_project_id=[GCP_PROJECT_ID]

Quando seu aplicativo não consegue acessar o servidor de metadados do Compute Engine, são exibidas mensagens semelhantes a esta:

     Error making HTTP request for 169.254.169.254:80/computeMetadata/v1/instance/zone
Para interromper essas mensagens, adicione -cprof_zone_name=[VALUE] às sinalizações de configuração do agente e reinicie o aplicativo. Para esse cenário, substitua [VALUE] por uma string descritiva, como “teste”.

Node.js

Especifique um parâmetro complementar, projectID, no objeto serviceContext descrito em Como criar perfis de aplicativos Node.js:

projectId: '[GCP_PROJECT_ID]',
serviceContext: {
  ...
}

Python

Especifique um parâmetro complementar, project_id, na chamada de método start descrita em Como criar perfis de aplicativos Python:

googlecloudprofiler.start(..., project_id='[GCP_PROJECT_ID]')

A seguir

Saiba mais sobre o gráfico e os controles do Profiler em Como usar a interface do Cloud Profiler. Para ver informações mais avançadas, acesse: