Criação de perfis de aplicações em execução fora Google Cloud
Esta página descreve como criar perfis de aplicações executadas fora do Google Cloud.
Neste cenário, a sua aplicação e o agente do Cloud Profiler são executados Google Cloudexternamente, mas usa a interface do Cloud Profiler para analisar os dados de criação de perfis.
A utilização da interface do Profiler para analisar dados de criação de perfis requer um Google Cloud projeto. O agente de criação de perfis em execução noutro local tem de poder enviar os perfis de volta para análise. Para ativar esta opção, tem de:
- Crie um Google Cloud projeto e ative a API.
- Obter credenciais para o agente de criação de perfis usar ao carregar perfis.
- Configure o agente para usar as credenciais e o ID do Google Cloud projeto.
Crie um Google Cloud projeto
In the Google Cloud console, on the project selector page, click Create project to begin creating a new Google Cloud project.
Roles required to create a project
To create a project, you need the Project Creator
(roles/resourcemanager.projectCreator
), which contains
the resourcemanager.projects.create
permission. Learn how to grant
roles.
Ative a API Profiler
-
Enable the required API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. Se for apresentada a mensagem API ativada, significa que a API já está ativada. Caso contrário, clique no botão Ativar.
Obtenha credenciais para o agente
Existem duas formas de obter credenciais para o agente usar:
- Permitir que o agente use uma conta de serviço com autenticação de chave privada
- Permitir que o agente use as credenciais padrão da aplicação (ADC).
Usar contas de serviço
Para permitir que o agente use uma conta de serviço com autenticação de chave privada, tem de:
Crie uma conta de serviço. Por exemplo, através da Google Cloud CLI:
gcloud iam service-accounts create MY_SVC_ACCT_ID --display-name "my service account"
Consulte o artigo Criar uma conta de serviço para mais informações.
Conceda à conta de serviço a função roles/cloudprofiler.agent para que possa escrever dados de criação de perfis. Por exemplo, usar 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 o artigo Conceder funções a contas de serviço para mais informações.
Crie uma chave JSON para a conta de serviço. Por exemplo, usar 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 o artigo Criar chaves de contas de serviço para mais informações.
Na máquina onde o agente de criação de perfis vai ser executado:
- Coloque uma cópia do ficheiro que contém a chave JSON que acabou de criar.
- Defina a variável de ambiente
GOOGLE_APPLICATION_CREDENTIALS
para o nome totalmente qualificado do ficheiro que contém a chave JSON. Esta variável de ambiente tem de estar visível para o processo que executa o agente de criação de perfis. Por isso, se usar um script ou um Dockerfile para executar o processo, inclua a variável de ambiente aí.
Usar credenciais padrão da aplicação
Para permitir que o agente use as credenciais padrão da aplicação, obtenha credenciais de acesso do utilizador através de um fluxo Web e coloque-as onde a biblioteca de credenciais padrão da aplicação as espera. Estas credenciais atuam como um proxy para uma conta de serviço.
Para usar as Credenciais padrão da aplicação, execute o seguinte comando da CLI Google Cloud:
gcloud auth application-default login
e siga os passos que este comando lhe indica.
Associar o agente a um Google Cloud projeto
O agente de criação de perfis tem de ser configurado para especificar o ID do seu projeto, para que possa carregar perfis. Google Cloud O mecanismo para o fazer depende do idioma.
Ir
Especifique um parâmetro adicional, ProjectID
, no objeto profiler.Config
descrito no artigo Criar perfis de aplicações Go:
profiler.Config{ProjectID: "GCP_PROJECT_ID", ...}
Java
Especifique uma flag de configuração do agente Java adicional,
cprof_project_id
, na invocação Java:
-cprof_project_id=GCP_PROJECT_ID
Quando a sua aplicação não consegue aceder ao servidor de metadados do Compute Engine, são apresentadas mensagens semelhantes às seguintes:
Error making HTTP request for 169.254.169.254:80/computeMetadata/v1/instance/zone
-cprof_zone_name=VALUE
às flags de configuração do agente e reinicie a aplicação. Para este cenário,
substitua VALUE
por uma string descritiva, como "teste".Node.js
Especifique um parâmetro adicional, projectID
, no objeto serviceContext
descrito em Criar perfis de aplicações Node.js:
projectId: 'GCP_PROJECT_ID',
serviceContext: {
...
}
Python
Especifique um parâmetro adicional, project_id
, na chamada do método start
descrita no artigo Criar perfis de aplicações Python:
googlecloudprofiler.start(..., project_id='GCP_PROJECT_ID')
O que se segue?
- Selecione os perfis a analisar
- Interaja com o gráfico de rastreio em pilhas sobrepostas
- Filtre o gráfico de rastreio em pilhas sobrepostas
- Foque o gráfico de rastreio em pilhas sobrepostas
- Compare perfis