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:
- Buat project Google Cloud dan aktifkan API.
- Dapatkan kredensial untuk agen pembuatan profil yang akan digunakan saat mengupload profil.
- 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.
Mengaktifkan Profiler API
-
Enable the required API.
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:
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.
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.
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.
Di komputer tempat agen pembuatan profil akan berjalan:
- Masukkan salinan file yang berisi kunci JSON yang baru saja Anda buat.
- 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
-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
- Memilih profil yang akan dianalisis
- Berinteraksi dengan flame graph
- Memfilter grafik flame
- Memfokuskan flame graph
- Membandingkan profil