Membuat profil aplikasi yang berjalan di luar Google Cloud

Halaman ini menjelaskan cara membuat profil aplikasi yang berjalan di luar Google Cloud.

Dalam skenario ini, aplikasi dan agen Cloud Profiler Anda berjalan di luar Google Cloud, tetapi Anda menggunakan antarmuka Cloud Profiler untuk menganalisis data pembuatan profil.

Menggunakan antarmuka Profiler untuk menganalisis data pembuatan profil memerlukan project Google Cloud. Agen pembuatan profil yang berjalan di tempat lain harus dapat mengirim profil kembali untuk dianalisis. Untuk mengaktifkannya, Anda harus:

  1. Buat project Google Cloud dan aktifkan API.
  2. Dapatkan kredensial untuk agen pembuatan profil yang akan digunakan saat mengupload profil.
  3. Konfigurasikan agen untuk menggunakan kredensial dan ID project Google Cloud.

Membuat project Google Cloud

In the Google Cloud console, on the project selector page, click Create project to begin creating a new Google Cloud project.

Go to project selector

Mengaktifkan Profiler API

  1. Enable the required API.

    Enable the API

  2. Jika API enabled ditampilkan, berarti API sudah diaktifkan. Jika belum, klik tombol Enable.

Mendapatkan kredensial untuk agen

Ada dua cara untuk mendapatkan kredensial yang akan digunakan agen:

  • Mengizinkan agen menggunakan akun layanan dengan autentikasi kunci pribadi
  • Izinkan agen menggunakan kredensial default aplikasi (ADC).

Menggunakan akun layanan

Agar agen dapat menggunakan akun layanan dengan autentikasi kunci pribadi, Anda harus:

  1. Membuat akun layanan. Misalnya, menggunakan Google Cloud CLI:

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

    Lihat Membuat akun layanan untuk informasi selengkapnya.

  2. Berikan peran roles/cloudprofiler.agent kepada akun layanan, sehingga akun layanan dapat menulis data pembuatan profil. Misalnya, menggunakan 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
    

    Lihat Memberikan peran ke akun layanan untuk mengetahui informasi selengkapnya.

  3. Buat kunci JSON untuk akun layanan. Misalnya, menggunakan Google Cloud CLI:

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

    Lihat Membuat kunci akun layanan untuk mengetahui informasi selengkapnya.

  4. Di komputer tempat agen pembuatan profil akan berjalan:

    1. Masukkan salinan file yang berisi kunci JSON yang baru saja Anda buat.
    2. Tetapkan variabel lingkungan GOOGLE_APPLICATION_CREDENTIALS ke nama file yang sepenuhnya memenuhi syarat yang berisi kunci JSON. Variabel lingkungan ini harus terlihat oleh proses yang menjalankan agen pembuatan profil, jadi jika Anda menggunakan skrip atau Dockerfile untuk menjalankan proses, sertakan variabel lingkungan di sana.

Menggunakan kredensial default aplikasi

Agar agen dapat menggunakan kredensial default aplikasi, Anda harus mendapatkan kredensial akses pengguna melalui alur web dan menempatkannya di tempat yang diharapkan oleh library Kredensial Default Aplikasi. Kredensial ini berfungsi sebagai proxy untuk akun layanan.

Untuk menggunakan kredensial default aplikasi, jalankan perintah Google Cloud CLI berikut:

 gcloud auth application-default login

dan ikuti langkah-langkah yang dipandu oleh perintah ini.

Menautkan agen ke project Google Cloud

Agen pembuatan profil harus dikonfigurasi untuk menentukan ID project Google Cloud Anda agar dapat mengupload profil. Mekanisme untuk melakukannya bergantung pada bahasa.

Go

Tentukan parameter tambahan, ProjectID, dalam objek profiler.Config yang dijelaskan dalam Membuat profil aplikasi Go:

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

Java

Tentukan flag konfigurasi agen Java tambahan, cprof_project_id, pada pemanggilan Java:

 -cprof_project_id=GCP_PROJECT_ID

Jika aplikasi Anda tidak dapat mengakses server metadata Compute Engine, pesan yang mirip dengan berikut akan ditampilkan:

     Error making HTTP request for 169.254.169.254:80/computeMetadata/v1/instance/zone
Untuk menghentikan pesan ini, tambahkan -cprof_zone_name=VALUE ke flag konfigurasi agen dan mulai ulang aplikasi Anda. Untuk skenario ini, ganti VALUE dengan string deskriptif seperti "test".

Node.js

Tentukan parameter tambahan, projectID, dalam objek serviceContext yang dijelaskan dalam Membuat profil aplikasi Node.js:

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

Python

Tentukan parameter tambahan, project_id, dalam panggilan metode start yang dijelaskan dalam Membuat profil aplikasi Python:

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

Langkah selanjutnya