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.
Penggunaan antarmuka Profiler untuk menganalisis data pembuatan profil memerlukan Google Cloud project. Agen pembuatan profil yang berjalan di tempat lain harus dapat mengirimkan kembali profil untuk dianalisis. Untuk mengaktifkan hal ini, Anda harus:
- Membuat Google Cloud project dan mengaktifkan API.
- Mendapatkan kredensial untuk digunakan agen pembuatan profil saat mengupload profil.
- Mengonfigurasi agen untuk menggunakan kredensial dan ID Google Cloud project.
Membuat Google Cloud project
Di Google Cloud konsol, pada halaman pemilih project, klik Buat project untuk mulai membuat Google Cloud project baru.
Peran yang diperlukan untuk membuat project
Untuk membuat project, Anda memerlukan peran Pembuat Project
(roles/resourcemanager.projectCreator), yang berisi
izin resourcemanager.projects.create. Pelajari cara memberikan
peran.
Mengaktifkan Profiler API
-
Aktifkan Cloud Profiler API.
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (
roles/serviceusage.serviceUsageAdmin), yang berisi izinserviceusage.services.enable. Pelajari cara memberikan peran. Jika API enabled ditampilkan, berarti API sudah diaktifkan. Jika tidak, 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
- Mengizinkan agen menggunakan kredensial default aplikasi (ADC).
Menggunakan akun layanan
Untuk mengizinkan agen 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.
Memberikan peran roles/cloudprofiler.agent role ke 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.agentLihat Memberikan peran ke akun layanan untuk mengetahui informasi selengkapnya.
Membuat 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.comLihat Membuat kunci akun layanan untuk mengetahui informasi selengkapnya.
Di mesin tempat agen pembuatan profil akan berjalan:
- Letakkan salinan file yang berisi kunci JSON yang baru Anda buat.
- Tetapkan variabel lingkungan
GOOGLE_APPLICATION_CREDENTIALSke nama lengkap file 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
Untuk mengizinkan 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 bertindak 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 kea Google Cloud project
Agen pembuatan profil harus dikonfigurasi untuk menentukan ID project Google Cloud Anda sehingga 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
Anda 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 berikutnya
- Memilih profil untuk dianalisis
- Berinteraksi dengan grafik flame
- Memfilter grafik flame
- Memfokuskan grafik flame
- Membandingkan profil