Profilerstellung für Anwendungen außerhalb von Google Cloud

Auf dieser Seite wird beschrieben, wie Sie Profile für Anwendungen erstellen, die außerhalb von ausgeführt werden Google Cloud.

In diesem Szenario werden Ihre Anwendung und der Cloud Profiler-Agent außerhalb von ausgeführt Google Cloud. Sie verwenden jedoch die Cloud Profiler Oberfläche, um die Profildaten zu analysieren.

Damit Sie Profildaten mit der Profiler-Oberfläche analysieren können, benötigen Sie ein Google Cloud Projekt. Der an einem anderen Ort ausgeführte Profiler-Agent muss in der Lage sein, die Profile zur Analyse zurückzusenden. Damit dies möglich ist, müssen Sie Folgendes tun:

  1. Erstellen Sie ein Google Cloud Projekt und aktivieren Sie die API.
  2. Rufen Sie Anmeldedaten für den Profiler-Agent zum Hochladen von Profilen ab.
  3. Konfigurieren Sie den Agent so, dass er die Anmeldedaten und die ID des Google Cloud Projekts verwendet.

ein Projekt Google Cloud erstellen

Klicken Sie in der Google Cloud Konsole auf der Seite für die Projektauswahl auf Projekt erstellen , um ein neues Google Cloud Projekt zu erstellen.

Erforderliche Rollen zum Erstellen eines Projekts

Zum Erstellen eines Projekts benötigen Sie die Rolle „Projektersteller“ (roles/resourcemanager.projectCreator), die die Berechtigung resourcemanager.projects.create enthält. Informationen zum Zuweisen von Rollen.

Zur Projektauswahl

Profiler API aktivieren

  1. Aktivieren Sie die Cloud Profiler API.

    Erforderliche Rollen zum Aktivieren von APIs

    Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin), die die Berechtigung serviceusage.services.enable enthält. 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.

Anmeldedaten für den Agent abrufen

Es gibt zwei Möglichkeiten, um Anmeldedaten für den Agent abzurufen:

  • Der Agent kann ein Dienstkonto mit Authentifizierung über einen privaten Schlüssel verwenden.
  • Der Agent kann Standardanmeldedaten für Anwendungen verwenden.

Dienstkonten verwenden

Damit der Agent ein Dienstkonto mit Authentifizierung über einen privaten Schlüssel verwenden kann, müssen Sie Folgendes tun:

  1. Erstellen Sie ein Dienstkonto: Verwenden Sie dazu beispielsweise Google Cloud CLI:

    gcloud iam service-accounts create MY_SVC_ACCT_ID --display-name "my service account"
    

    Weitere Informationen finden Sie unter Dienstkonto erstellen.

  2. Weisen Sie dem Dienstkonto die Rolle roles/cloudprofiler.agent zu, damit es zum Schreiben von Profildaten berechtigt ist. Verwenden Sie dazu beispielsweise 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
    

    Weitere Informationen finden Sie unter Dienstkonten Rollen zuweisen.

  3. Erstellen Sie einen JSON-Schlüssel für das Dienstkonto: Verwenden Sie dazu beispielsweise Google Cloud CLI:

     gcloud iam service-accounts keys create \
         ~/key.json \
         --iam-account MY_SVC_ACCT_ID@GCP_PROJECT_ID.iam.gserviceaccount.com
    

    Weitere Informationen finden Sie unter Dienstkontoschlüssel erstellen und verwalten.

  4. Gehen Sie auf der Maschine, auf der der Profiler-Agent ausgeführt wird, so vor:

    1. Legen Sie eine Kopie der Datei ab, die den soeben erstellten JSON-Schlüssel enthält.
    2. Legen Sie die Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS auf den vollständig qualifizierten Namen der Datei fest, die den JSON-Schlüssel enthält. Diese Umgebungsvariable muss für den Prozess sichtbar sein, der den Profiler-Agent ausführt. Wenn Sie also ein Skript oder Dockerfile zum Ausführen des Prozesses verwenden, fügen Sie die Umgebungsvariable dort ein.

Standardanmeldedaten für Anwendungen verwenden

Damit der Agent Standardanmeldedaten für Anwendungen verwenden kann, rufen Sie Nutzeranmeldedaten über einen Webablauf ab und legen diese dort ab, wo die Bibliothek der Standardanmeldedaten für Anwendungen sie erwartet. Diese Anmeldedaten fungieren als Proxy für ein Dienstkonto.

Führen Sie folgenden Google Cloud CLI-Befehl aus, um Standardanmeldedaten für Anwendungen zu verwenden:

 gcloud auth application-default login

Folgen Sie dann den Schritten, durch die Sie dieser Befehl führt.

Agent mit einem Google Cloud Projekt verknüpfen

Der Profiler-Agent muss so konfiguriert sein, dass er die ID Ihres Projekts Google Cloud angibt, damit er Profile hochladen kann. Wie Sie das tun, hängt von der Sprache ab.

Go

Geben Sie den zusätzlichen Parameter ProjectID im Objekt profiler.Config an, das unter Profilerstellung für Go-Anwendungen beschrieben wird:

 profiler.Config{ProjectID: "GCP_PROJECT_ID", ...}

Java

Geben Sie beim Java-Aufruf das zusätzliche Flag cprof_project_id für die Konfiguration des Java-Agents an:

 -cprof_project_id=GCP_PROJECT_ID

Wenn Ihre Anwendung nicht auf den Compute Engine-Metadatenserver zugreifen kann, werden Meldungen wie diese angezeigt:

     Error making HTTP request for 169.254.169.254:80/computeMetadata/v1/instance/zone
Wenn Sie diese Meldungen unterdrücken möchten, fügen Sie den Konfigurationsflags des Agents -cprof_zone_name=VALUE hinzu und starten Sie die Anwendung neu. Ersetzen Sie VALUE in diesem Szenario durch einen beschreibenden String wie „test“.

Node.js

Geben Sie den zusätzlichen Parameter projectID im Objekt serviceContext an, das unter Profilerstellung für Node.js-Anwendungen beschrieben wird:

projectId: 'GCP_PROJECT_ID',
serviceContext: {
  ...
}

Python

Geben Sie den zusätzlichen Parameter project_id im Aufruf der Methode start an, die unter Profilerstellung für Python-Anwendungen beschrieben wird:

googlecloudprofiler.start(..., project_id='GCP_PROJECT_ID')

Nächste Schritte