Berinteraksi dengan flame graph
Cloud Profiler menampilkan data pembuatan profil menggunakan grafik flame. Untuk pengantar konseptual, lihat Grafik Flame.
Grafik flame terdiri dari frame. Setiap frame mewakili fungsi dalam layanan:
Lebar frame sesuai dengan konsumsi metrik yang dianalisis. Frame atas, misalnya, mewakili seluruh layanan dan memakai 100% metrik yang sedang dianalisis. Oleh karena itu, frame ini ditampilkan dengan lebar penuh.
Secara default, warna frame, jika memungkinkan, sesuai dengan paket fungsi. Jika informasi paket tidak tersedia, seperti pada 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 {i>frame<i} diwarnai. Untuk mengetahui informasi selengkapnya, lihat Mode warna.
Grafik flame menunjukkan satu atau beberapa stack panggilan dengan nilai rata-rata yang diambil dari sekumpulan profil:
- Setiap profil mewakili data yang dikumpulkan satu kali per menit dari satu instance layanan yang dikonfigurasi dalam satu zona Compute Engine. Periode pengumpulan untuk profil bervariasi sesuai jenis profil. Lihat Pengumpulan profil untuk informasi selengkapnya.
- Rata-rata maksimum 250 profil. Jika ada lebih dari 250 profil yang tersedia, 250 di antaranya akan dipilih secara acak sebagai kumpulan sampel.
- Frame atas, atau "root", dalam grafik flame mewakili keseluruhan layanan. Di bawah frame "root", terdapat frame atau kumpulan frame lain yang membentuk baris kedua dalam grafik. Setiap frame berkode warna ini adalah panggilan tingkat atas yang dilakukan oleh layanan. Di bawah setiap frame fungsi yang 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 dipakai untuk layanan docdemo
menunjukkan bahwa layanan memanggil frame level atas yang berbeda, salah satunya
adalah fungsi main
runtime Go. Lebar
frame level atas ini menunjukkan sebagian besar heap digunakan oleh stack panggilan
yang melibatkan main
runtime Go,
main
, allocOnce
, dan allocImpl
khusus aplikasi:
Frame root menampilkan informasi konsumsi metrik.
Mengarahkan kursor ke bingkai
Saat Anda menahan pointer di atas frame dalam grafik flame, tooltip frame akan terbuka dan menampilkan informasi tambahan tentang frame tersebut:
- Function name
- Nama file fungsi
- Penggunaan absolut dan persentase penggunaan
Dalam informasi konsumsi metrik, awalan total menunjukkan bahwa nilai dan persentase metrik ditujukan untuk fungsi dan turunannya. Sebaliknya, awalan self menunjukkan nilai metrik dan persentase adalah untuk fungsi dengan konsumsi turunannya dikecualikan.
Dialog ini juga menyertakan tombol:
- Focus: 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
penggunaan metrik menunjukkan bahwa runtime.main
dan turunannya
menggunakan memori 54,73 MiB,
atau sekitar 98% dari total memori yang terpakai oleh program:
Memilih bingkai
Saat Anda memilih frame, grafik flame digambar ulang dengan frame tersebut menampilkan lebar penuh dan warna yang lebih tinggi dalam stack panggilan akan dibisukan. Memilih pada frame tidak mengubah setelan apa pun, tetapi hanya mengubah cara grafik ditampilkan. Untuk kembali ke tampilan awal, pilih frame root (atas).
Pada contoh berikut, pointer
berada pada frame kecil dan sulit untuk melihat stack panggilan. Tooltip
mengidentifikasi (*huffmanBitWriter).write
sebagai fungsi frame:
Setelah Anda memilih frame, grafik akan digambar ulang, sehingga stack panggilan lebih terlihat:
Langkah selanjutnya
- Filter grafik flame.
- Fokuskan grafik api pada suatu fungsi.
- Melihat tren historis.
- Bandingkan profil.