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 Anda dan agen Cloud Profiler dijalankan di luar Google Cloud, tetapi Anda menggunakan antarmuka Cloud Profiler untuk menganalisis data pembuatan profil.

Penggunaan antarmuka Profiler untuk menganalisis data pembuatan profil memerlukan project Google Cloud. Agen pembuatan profil yang berjalan di tempat lain harus dapat mengirim kembali profil 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

Di konsol Google Cloud, pada halaman pemilih project, klik Buat project untuk mulai membuat project Google Cloud baru.

Buka pemilih project

Mengaktifkan Profiler API

  1. Pada panel navigasi Google Cloud Console, pilih APIs & Services, klik Enable APIs and Services, lalu aktifkan Cloud Profiler API:

    Buka setelan Profiler API

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

Mendapatkan kredensial untuk agen

Ada dua cara untuk mendapatkan kredensial untuk digunakan agen:

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

Menggunakan akun layanan

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

  1. Buat 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 agar 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. Pada mesin tempat agen pembuatan profil akan dijalankan:

    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 tersebut, sertakan variabel lingkungan di sana.

Menggunakan kredensial default aplikasi

Untuk memungkinkan agen menggunakan kredensial default aplikasi, Anda 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 akan dilakukan 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 tergantung pada bahasa.

Go

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

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

Java

Tentukan flag Java agent configuration 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 serupa dengan berikut ini 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, lalu 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 Aplikasi Profiling Node.js:

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

Python

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

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

Langkah selanjutnya