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:
- 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
Di konsol Google Cloud, pada halaman pemilih project, klik Buat project untuk mulai membuat project Google Cloud baru.
Mengaktifkan Profiler API
-
Pada panel navigasi Google Cloud Console, pilih APIs & Services, klik Enable APIs and Services, lalu aktifkan Cloud Profiler API:
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:
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.
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.
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.
Pada mesin tempat agen pembuatan profil akan dijalankan:
- 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 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
-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
- Memilih profil yang akan dianalisis
- Berinteraksi dengan grafik flame
- Memfilter grafik flame
- Memfokuskan grafik flame
- Membandingkan profil