Berinteraksi dengan grafik api
Cloud Profiler menampilkan data pembuatan profil menggunakan grafik api. Untuk pengantar konseptual, lihat Grafik api.
Grafik api terdiri dari frame. Setiap frame mewakili fungsi dalam layanan:
Lebar frame sesuai dengan penggunaan metrik yang sedang dianalisis. Frame atas, misalnya, mewakili seluruh layanan dan menggunakan 100% metrik yang sedang dianalisis. Oleh karena itu, frame ini ditampilkan sebagai lebar penuh.
Secara default, warna bingkai sesuai, jika memungkinkan, dengan paket fungsi. Jika informasi paket tidak tersedia, seperti halnya Node.js, nama file sumber akan digunakan untuk mewarnai blok fungsi. Dalam stack panggilan, perubahan warna blok berarti transisi dari satu paket ke paket lainnya. Anda dapat mengubah cara pewarnaan frame. Untuk mengetahui informasi selengkapnya, lihat Mode warna.
Grafik api menampilkan satu atau beberapa stack panggilan dengan nilai rata-rata dari sekumpulan profil:
- Setiap profil mewakili data yang dikumpulkan satu kali per menit dari satu instance layanan yang dikonfigurasi di satu zona Compute Engine. Periode pengumpulan untuk profil bervariasi sesuai dengan jenis profil. Lihat Pengumpulan profil untuk mengetahui informasi selengkapnya.
- Rata-rata maksimum 250 profil. Jika ada lebih dari 250 profil yang tersedia, 250 di antaranya akan dipilih secara acak sebagai set sampel.
- Frame atas, atau "root", dalam diagram api mewakili seluruh layanan. Di bagian frame "root", terdapat frame atau kumpulan frame lain yang membentuk baris kedua dalam grafik. Setiap frame berkode warna ini adalah panggilan tingkat teratas yang dilakukan oleh layanan. Di bawah setiap frame fungsi berwarna tersebut terdapat kumpulan frame fungsi lain, yang masing-masing bertanggung jawab atas beberapa bagian resource frame di atasnya. Hierarki frame fungsi dalam grafik mewakili urutan panggilan, dan lebar frame mewakili kontribusi fungsi atau metode tersebut terhadap konsumsi resource.
Misalnya, grafik profiler heap yang digunakan untuk layanan docdemo
menunjukkan bahwa layanan memanggil frame tingkat teratas yang berbeda, salah satunya
adalah fungsi main
runtime Go. Lebar frame
level teratas ini menunjukkan bahwa sebagian besar heap digunakan oleh stack panggilan
yang melibatkan main
runtime Go,
main
khusus aplikasi, allocOnce
, dan allocImpl
:
Frame root menampilkan informasi konsumsi metrik.
Mengarahkan kursor ke frame
Saat Anda menahan kursor di frame dalam grafik percik api, tooltip frame akan terbuka dan menampilkan informasi tambahan tentang frame:
- Nama fungsi
- Nama file fungsi
- Penggunaan absolut dan penggunaan persentase
Dalam informasi penggunaan metrik, awalan total menunjukkan bahwa nilai metrik dan persentase adalah untuk fungsi dan turunannya. Sebaliknya, awalan self menunjukkan nilai metrik dan persentase untuk fungsi dengan konsumsi turunannya dikecualikan.
Dialog ini juga menyertakan tombol:
- Fokus: Memfokuskan grafik pada fungsi frame saat ini.
- Tampilkan stack: Menambahkan filter untuk hanya menampilkan stack yang menyertakan fungsi frame ini.
- Tampilkan histori: Membuka tampilan histori untuk fungsi frame.
Dalam contoh ini, tooltip menunjukkan bahwa fungsi runtime.main
berada di file /usr/local/go/src/runtime/proc.go
. Informasi konsumsi metrik menunjukkan bahwa runtime.main
dan turunannya menggunakan memori sebesar 54,73 MiB, atau sekitar 98% dari total memori yang digunakan oleh program:
Memilih bingkai
Saat Anda memilih frame, flame graph akan digambar ulang dengan frame tersebut ditampilkan lebar penuh dan warna yang lebih tinggi di stack panggilan akan dibisukan. Memilih pada bingkai tidak akan mengubah setelan apa pun, tetapi hanya mengubah cara grafik ditampilkan. Untuk kembali ke tampilan awal, pilih frame root (atas).
Pada contoh berikut, pointer
berada di bingkai kecil dan sulit untuk melihat stack panggilan. Tooltip
mengidentifikasi (*huffmanBitWriter).write
sebagai fungsi frame:
Setelah Anda memilih frame, grafik akan digambar ulang, sehingga tumpukan panggilan lebih terlihat:
Langkah selanjutnya
- Memfilter grafik flame.
- Memfokuskan grafik api pada fungsi.
- Melihat tren historis.
- Membandingkan profil.