Pemantauan

Pengoptimalan performa dimulai dengan mengidentifikasi metrik utama, yang biasanya terkait dengan latensi dan throughput. Penambahan pemantauan untuk menangkap dan melacak metrik ini akan mengekspos titik lemah dalam aplikasi. Dengan metrik, pengoptimalan dapat dilakukan untuk meningkatkan metrik performa.

Selain itu, banyak alat pemantauan memungkinkan Anda menyiapkan pemberitahuan untuk metrik, sehingga Anda akan diberi tahu saat batas tertentu terpenuhi. Misalnya, Anda dapat menyiapkan pemberitahuan untuk memberi tahu Anda saat persentase permintaan yang gagal meningkat lebih dari X% dari tingkat normal. Alat pemantauan dapat membantu Anda mengidentifikasi performa normal dan mengidentifikasi lonjakan yang tidak biasa dalam latensi, jumlah error, dan metrik utama lainnya. Kemampuan untuk memantau metrik ini sangat penting selama jangka waktu penting bisnis, atau setelah kode baru dikirim ke produksi.

Mengidentifikasi metrik latensi

Pastikan Anda menjaga UI Anda secepat mungkin, dengan memperhatikan bahwa pengguna mengharapkan standar yang lebih tinggi dari aplikasi seluler. Latensi juga harus diukur dan dilacak untuk layanan backend, terutama karena dapat menyebabkan masalah throughput jika tidak ditangani.

Metrik yang disarankan untuk dilacak meliputi:

  • Durasi permintaan
  • Durasi permintaan pada tingkat perincian subsistem (seperti panggilan API)
  • Durasi tugas

Mengidentifikasi metrik throughput

Throughput adalah ukuran jumlah total permintaan yang disajikan selama jangka waktu tertentu. Throughput dapat dipengaruhi oleh latensi subsistem, sehingga Anda mungkin perlu mengoptimalkan latensi untuk meningkatkan throughput.

Berikut beberapa metrik yang disarankan untuk dilacak:

  • Kueri per detik
  • Ukuran data yang ditransfer per detik
  • Jumlah operasi I/O per detik
  • Pemakaian resource, seperti penggunaan CPU atau memori
  • Ukuran backlog pemrosesan, seperti pub/sub atau jumlah thread

Bukan hanya mean

Kesalahan umum dalam mengukur performa adalah hanya melihat kasus rata-rata. Meskipun berguna, hal ini tidak memberikan insight tentang distribusi latensi. Metrik yang lebih baik untuk dilacak adalah persentil performa, misalnya persentil ke-50, ke-75, ke-90, dan ke-99 untuk sebuah metrik.

Secara umum, pengoptimalan dapat dilakukan dalam dua langkah. Pertama, optimalkan latensi persentil ke-90. Kemudian, pertimbangkan persentil ke-99—yang juga dikenal sebagai latensi tail: sebagian kecil permintaan yang memerlukan waktu lebih lama untuk diselesaikan.

Pemantauan sisi server untuk hasil yang mendetail

Pembuatan profil sisi server umumnya lebih disukai untuk melacak metrik. Sisi server biasanya jauh lebih mudah diinstrumentasi, memungkinkan akses ke data yang lebih terperinci, dan tidak terlalu rentan terhadap gangguan akibat masalah konektivitas.

Pemantauan browser untuk visibilitas menyeluruh

Jika integrasi Google Ads API Anda menyajikan frontend web kepada pengguna akhir, pembuatan profil browser dapat memberikan insight tambahan tentang pengalaman pengguna. Alat ini dapat menampilkan halaman mana yang memiliki permintaan lambat, yang kemudian dapat Anda kaitkan dengan pemantauan sisi server untuk analisis lebih lanjut.

Google Analytics juga menyediakan pemantauan siap pakai untuk waktu pemuatan halaman di laporan pengaturan waktu halaman Analytics. Alat ini memberikan beberapa tampilan yang berguna untuk memahami pengalaman pengguna di situs Anda, khususnya:

  • Waktu pemuatan halaman
  • Waktu pemuatan pengalihan
  • Waktu respons server

Pemantauan di cloud

Ada banyak alat yang dapat Anda gunakan untuk mencatat dan memantau metrik performa untuk aplikasi Anda. Misalnya, Anda dapat menggunakan Google Cloud Logging untuk mencatat metrik performa ke Project Google Cloud, lalu menyiapkan dasbor di Google Cloud Monitoring untuk memantau dan menyegmentasikan metrik yang dicatat.

Lihat Panduan logging untuk mengetahui contoh interceptor logging gRPC kustom yang ditulis untuk library klien Python. Dalam contoh tersebut, interceptor memanggil logger.log_struct() untuk mengirim kamus Python berisi data log terstruktur ke Cloud Logging, yang disimpan Cloud Logging di kolom jsonPayload entri log:

logger.log_struct({
    "method": method_name,
    "elapsed_ms": elapsed_milliseconds,
    "is_fault": is_fault,
})

Dengan data yang tersedia di Google Cloud, Anda dapat membuat metrik di atas data yang dicatat ke dalam log untuk mendapatkan visibilitas ke dalam aplikasi Anda melalui Google Cloud Monitoring. Ikuti panduan metrik berbasis log yang ditentukan pengguna untuk membuat metrik menggunakan log yang dikirim ke Google Cloud Logging.

Atau, Anda dapat menggunakan library klien Cloud Monitoring untuk menentukan metrik dalam kode Anda dan mengirimkannya langsung ke Monitoring, terpisah dari log.

Contoh metrik berbasis log

Misalkan Anda ingin memantau nilai is_fault untuk lebih memahami tingkat error dalam aplikasi Anda. Karena logger.log_struct() menulis kolom kamus terstruktur di bagian jsonPayload di setiap entri Cloud Logging, Anda dapat membuat metrik penghitung bernama ErrorCount dengan filter yang cocok dengan permintaan yang gagal, seperti jsonPayload.is_fault = true.

Di Cloud Logging, label memungkinkan Anda mengelompokkan metrik ke dalam kategori berdasarkan data lain dalam log. Anda dapat mengonfigurasi label STRING bernama Method di kolom jsonPayload.method yang dikirim ke Cloud Logging untuk mengelompokkan jumlah error berdasarkan metode Google Ads API.

Setelah metrik ErrorCount dan label Method dikonfigurasi, Anda dapat membuat diagram baru di Cloud Monitoring untuk memantau ErrorCount, yang dikelompokkan menurut Method.

Pemberitahuan

Di Cloud Monitoring dan alat lainnya, Anda dapat mengonfigurasi kebijakan pemberitahuan yang menentukan kapan dan bagaimana pemberitahuan harus dipicu oleh metrik Anda. Untuk mengetahui petunjuk cara menyiapkan pemberitahuan Cloud Monitoring, ikuti panduan pemberitahuan tentang metrik berbasis log.