Profilerstellung für Java-Code

Auf dieser Seite wird beschrieben, wie Sie Ihre Java-Anwendung so ändern, dass Datenprofile erstellt und an Ihr Google Cloud-Projekt gesendet werden können. Allgemeine Informationen zur Profilerstellung finden Sie unter Konzepte der Profilerstellung.

.

Profiltypen für Java:

  • CPU-Zeit
  • Heap (erfordert Java 11 oder die App Engine-Standardumgebung, standardmäßig deaktiviert)
  • Echtzeit (für Java 8 in der App Engine-Standardumgebung nicht verfügbar)

Unterstützte Java-Sprachversionen:

  • HotSpot-basierte JVMs (einschließlich Oracle JDK und einiger OpenJDK-Builds) für Java 8, 11 oder höher.

Unterstützte Profiler-Agent-Versionen:

  • Der neueste Release des Agents wird unterstützt. Im Allgemeinen werden Releases, die älter als ein Jahr sind, nicht unterstützt. Wir empfehlen, die neueste veröffentlichte Version des Agents zu verwenden.

Unterstützte Betriebssysteme:

  • Linux: Die Profilerstellung für Java-Anwendungen wird für Linux-Kernel unterstützt, deren Standard-C-Bibliothek mit glibc oder mit musl implementiert wurde. Konfigurationsinformationen zu Linux Alpine-Kernels finden Sie unter Mit Linux Alpine ausführen.

Unterstützte Umgebungen:

Profiler API aktivieren

Sorgen Sie vor Verwendung des Profiler-Agents dafür, dass die zugrunde liegende Profiler API aktiviert ist. Sie können den Status der API prüfen und sie bei Bedarf über die Google Cloud CLI oder die Google Cloud -Konsole aktivieren:

gcloud-CLI

  1. Wenn Sie die Google Cloud-Befehlszeile noch nicht auf Ihrer Workstation installiert haben, lesen Sie die Dokumentation zur Google Cloud-Befehlszeile.

  2. Führen Sie dazu diesen Befehl aus:

    gcloud services enable cloudprofiler.googleapis.com
    

Weitere Informationen finden Sie unter gcloud services.

Google Cloud Console

  1. Aktivieren Sie die Cloud Profiler API.

    Rollen, die zum Aktivieren von APIs erforderlich sind

    Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin), die die Berechtigung serviceusage.services.enable enthält. Weitere Informationen zum Zuweisen von Rollen

    API aktivieren

  2. Wenn API aktiviert angezeigt wird, ist die API bereits aktiviert. Falls nicht, klicken Sie auf den Button Aktivieren.

Dienstkonto eine IAM-Rolle zuweisen

Wenn Sie Ihre Anwendung auf Google Cloud -Ressourcen bereitstellen und das Standarddienstkonto verwenden und die Rollenzuweisungen für dieses Dienstkonto nicht geändert haben, können Sie diesen Abschnitt überspringen.

Wenn Sie eine der folgenden Aktionen ausführen, müssen Sie dem Dienstkonto die IAM-Rolle Cloud Profiler-Agent (roles/cloudprofiler.agent) zuweisen:

  1. Sie verwenden das Standarddienstkonto, haben aber die Rollenzuweisungen geändert.
  2. Sie verwenden ein vom Nutzer erstelltes Dienstkonto.
  3. Wenn Sie Workload Identity verwenden, weisen Sie dem Kubernetes-Dienstkonto die Rolle „Cloud Profiler-Agent“ zu.

Sie können einem Dienstkonto eine IAM-Rolle über dieGoogle Cloud -Console oder die Google Cloud CLI zuweisen. Sie können beispielsweise den Befehl gcloud projects add-iam-policy-binding verwenden:

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

Ersetzen Sie vor dem Ausführen des vorherigen Befehls Folgendes:

  • GCP_PROJECT_ID: Ihre Projekt-ID.
  • MY_SVC_ACCT_ID: Name Ihres Dienstkontos.

Weitere Informationen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Profiler-Agent installieren

Compute Engine

  1. Erstellen Sie ein Installationsverzeichnis für den Profiler-Agent, z. B. /opt/cprof:

     sudo mkdir -p /opt/cprof

  2. Laden Sie das Agent-Archiv aus dem Repository storage.googleapis.com herunter und extrahieren Sie es in das Installationsverzeichnis:

    wget -q -O- https://storage.googleapis.com/cloud-profiler/java/latest/profiler_java_agent.tar.gz \
    | sudo tar xzv -C /opt/cprof

GKE

Ändern Sie das Dockerfile, um ein Installationsverzeichnis für den Profiler-Agent zu erstellen. Laden Sie dann das Agent-Archiv herunter und extrahieren Sie es in das Installationsverzeichnis.

Linux (glibc-basierte C-Bibliothek):

Verwenden Sie den folgenden Installationsbefehl:

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

Linux Alpine (musl-basierte C-Bibliothek):

Verwenden Sie den folgenden Installationsbefehl:

wget -q -O- https://storage.googleapis.com/cloud-profiler/java/latest/profiler_java_agent_alpine.tar.gz \
| tar xzv -C /opt/cprof

Flexible Umgebung

Wenn Sie das Basis-Image der Java 8-Laufzeit oder der Java 9-/Jetty 9-Laufzeit von Google verwenden, ist der Profiler-Agent vorinstalliert. Sie müssen also keine zusätzlichen Schritte ausführen, um den Agent zu installieren.

Für alle anderen Basis-Images müssen Sie den Agent installieren. Das folgende Dockerfile enthält beispielsweise die Anleitungen zum Verwenden des openjdk:11-slim-Image, um den Profiler-Agent zu installieren. Es definiert auch die Standardparameter, die beim Starten der Anwendung verwendet werden sollen:

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"]