Criação de perfis de aplicações Java
Esta página descreve como modificar a sua aplicação Java para capturar dados de criação de perfis e enviar esses dados para o seu projeto do Google Cloud. Google CloudPara ver informações gerais acerca da criação de perfis, consulte o artigo Conceitos de criação de perfis.
Tipos de perfis para Java:
- Tempo da CPU
- Heap (requer o Java 11 ou o ambiente padrão do App Engine, desativado por predefinição)
- Tempo total (não disponível para o ambiente padrão do App Engine Java 8)
Versões do idioma Java compatíveis:
- JVMs baseadas em HotSpot (incluindo o Oracle JDK e algumas compilações do OpenJDK) para Java 8, 11 ou posterior.
Versões do agente de criação de perfis suportadas:
- A versão mais recente do agente é suportada. Em geral, as versões com mais de um ano não são suportadas. Recomendamos que use a versão do agente lançada mais recentemente.
Sistemas operativos compatíveis:
- Linux. A criação de perfis de aplicações Java é suportada para kernels Linux cuja biblioteca C padrão é implementada com
glibcou commusl. Para ver informações de configuração específicas dos kernels do Linux Alpine, consulte o artigo Execução no Linux Alpine.
Ambientes suportados:
- Compute Engine
- Google Kubernetes Engine (GKE)
- Ambiente flexível do App Engine
- Ambiente padrão do App Engine (requer a versão 1.9.64 ou posterior do SDK do App Engine)
- Dataproc (para mais informações, consulte o artigo Configurar o Cloud Profiler para tarefas do Dataproc Spark e Hadoop)
- Fora de Google Cloud (Para obter informações sobre os requisitos de configuração adicionais, consulte a secção Criação de perfis de aplicações em execução fora de Google Cloud.)
Ativar a API Profiler
Antes de usar o agente de criação de perfis, certifique-se de que a API Profiler subjacente está ativada. Pode verificar o estado da API e ativá-la, se necessário, através da CLI do Google Cloud ou da Google Cloud consola:
CLI gcloud
Se ainda não instalou a CLI do Google Cloud na sua estação de trabalho, consulte a documentação da CLI do Google Cloud.
Execute o seguinte comando:
gcloud services enable cloudprofiler.googleapis.com
Para mais informações, consulte
gcloud services.
Google Cloud consola
-
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.enablepermission. 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.
Conceda a função do IAM à conta de serviço
Se estiver a implementar a sua aplicação em Google Cloud recursos e se estiver a usar a conta de serviço predefinida e não tiver modificado as concessões de funções para essa conta de serviço, pode ignorar esta secção.
Se realizar qualquer uma das seguintes ações, tem de conceder à conta de serviço a função do IAM de agente do Cloud Profiler (roles/cloudprofiler.agent):
- Está a usar a conta de serviço predefinida, mas modificou as concessões de funções.
- Está a usar uma conta de serviço criada pelo utilizador.
- Está a usar a identidade da carga de trabalho. Conceda a função de agente do Cloud Profiler à conta de serviço do Kubernetes.
Pode conceder uma função de IAM a uma conta de serviço através da
Google Cloud consola ou da CLI do Google Cloud. Por exemplo, pode usar o comando
gcloud projects add-iam-policy-binding:
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
Antes de usar o comando anterior, substitua o seguinte:
- GCP_PROJECT_ID: o ID do projeto.
- MY_SVC_ACCT_ID: o nome da sua conta de serviço.
Para ver informações detalhadas, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Instalar o agente do Profiler
Compute Engine
Crie um diretório de instalação, por exemplo,
/opt/cprof, para o agente do Profiler:sudo mkdir -p /opt/cprofTransfira o arquivo do agente do repositório e extraia-o para o diretório de instalação:
storage.googleapis.comwget -q -O- https://storage.googleapis.com/cloud-profiler/java/latest/profiler_java_agent.tar.gz \ | sudo tar xzv -C /opt/cprof
GKE
Modifique o Dockerfile para criar um diretório de instalação para o agente do Profiler, transfira o arquivo do agente e, em seguida, extraia o arquivo para o diretório de instalação.
Linux (biblioteca C baseada em glibc):
Use o seguinte comando de instalação:
RUN mkdir -p /opt/cprof && \
wget -q -O- https://storage.googleapis.com/cloud-profiler/java/latest/profiler_java_agent.tar.gz \
| tar xzv -C /opt/cprofLinux Alpine (biblioteca C baseada no musl):
Use o seguinte comando de instalação:
wget -q -O- https://storage.googleapis.com/cloud-profiler/java/latest/profiler_java_agent_alpine.tar.gz \ | tar xzv -C /opt/cprof
Ambiente flexível
Quando usa a imagem base do tempo de execução do Java 8 da Google ou a imagem base do tempo de execução do Java 9 / Jetty 9, o agente do Profiler está pré-instalado, pelo que não tem de realizar passos adicionais para instalar o agente.
Para todas as outras imagens base, tem de instalar o agente. Por exemplo, o seguinte Dockerfile contém as instruções para usar a imagem openjdk:11-slim, instalar o agente do Profiler e define os parâmetros predefinidos a usar ao iniciar a aplicação:
FROM openjdk:11-slim
COPY . .
RUN apt-get update \
&& apt-get install wget \
&& rm -rf /var/lib/apt/lists/*
RUN mkdir -p /opt/cprof && \
wget -q -O- https://storage.googleapis.com/cloud-profiler/java/latest/profiler_java_agent.tar.gz \
| tar xzv -C /opt/cprof
CMD ["java", "-agentpath:/opt/cprof/profiler_java_agent.so=OPTION1,OPTION2", "-jar", "PATH_TO_YOUR_JAR_FILE"]
Para usar esta Dockerfile com o ambiente flexível do App Engine, tem de
fazer o seguinte:
- Substitua
OPTION1eOPTION2pelos valores de configuração do agente necessários para a sua aplicação e substituaPATH_TO_YOUR_JAR_FILEpelo caminho para o seu ficheiro JAR. - Coloque o ficheiro