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:
- criar um projeto do Google Cloud e ative 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 projeto do Google Cloud.
Criar um projeto do Google Cloud
In the Google Cloud console, on the project selector page, click Create project to begin creating a new Google Cloud project.
Ativar a API Profiler
-
Enable the required API.
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.agent
Consulte 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.com
Consulte 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_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 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 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
-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
- Como focar o gráfico de chama
- Comparar perfis