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:

Grafik profiler untuk heap yang digunakan.

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:

Konsumsi metrik untuk runtime.main.

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:

Frame kecil dalam grafik api.

Setelah Anda memilih frame, grafik akan digambar ulang, sehingga stack panggilan lebih terlihat:

Bingkai kecil diperluas.

Langkah selanjutnya