Como criar perfis de aplicativos em execução fora do Google Cloud
Esta página descreve 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 Google Cloud projeto. 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:
- Criar um Google Cloud projeto e ativar a API.
- conseguir credenciais para o agente usar quando fizer o upload de perfis;
- configurar o agente para usar as credenciais e o ID do Google Cloud projeto.
Crie um projeto do Google Cloud
No Google Cloud console, na página do seletor de projetos, clique em Criar projeto para começar a criar um novo Google Cloud projeto.
Funções necessárias para criar um projeto
Para criar um projeto, é necessário ter o papel de criador de projetos
(roles/resourcemanager.projectCreator), que contém
a permissão resourcemanager.projects.create. Saiba como conceder
papéis.
Ativar a API Profiler
-
Ative a API Cloud Profiler.
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter o papel do IAM de administrador de uso do serviço (
roles/serviceusage.serviceUsageAdmin), que contém a permissãoserviceusage.services.enable. Saiba como conceder papéis. Se a mensagem API ativada for exibida, quer dizer 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:
Crie uma conta de serviço. Por exemplo, usando a Google Cloud CLI:
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.
conceder à conta de serviço o papel roles/cloudprofiler.agent para que ela possa gravar dados de criação de perfil. Por exemplo, usando a Google Cloud CLI:
gcloud projects add-iam-policy-binding GCP_PROJECT_ID \ --member serviceAccount:MY_SVC_ACCT_ID@GCP_PROJECT_ID.iam.gserviceaccount.com \ --role roles/cloudprofiler.agentConsulte Como conceder papéis às contas de serviço para mais informações.
Crie uma chave JSON para a conta de serviço. Por exemplo, usando a Google Cloud CLI:
gcloud iam service-accounts keys create \ ~/key.json \ --iam-account MY_SVC_ACCT_ID@GCP_PROJECT_ID.iam.gserviceaccount.comConsulte Como criar chaves de conta de serviço para mais informações.
No computador em que o agente de criação de perfil será executado, faça o seguinte:
- Coloque uma cópia do arquivo que contém a chave JSON que você acabou de criar.
- Defina a variável de ambiente
GOOGLE_APPLICATION_CREDENTIALScomo 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 as credenciais padrão do aplicativo, execute o seguinte comando da Google Cloud CLI:
gcloud auth application-default login
e siga as etapas mencionadas nele.
Como vincular o agente a um Google Cloud projeto
O agente de criação de perfil precisa ser configurado para especificar o ID de seu Google Cloud projeto para que ele possa fazer 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
-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
- Selecionar os perfis a serem analisados
- Interagir com o gráfico de chama
- Filtrar o gráfico de chama
- Focar o gráfico de chama
- Comparar perfis