Melakukan pemantauan proaktif dengan Cloud Monitoring


Bereaksi terhadap masalah setelah terjadi dapat menyebabkan periode nonaktif. Untuk mempertahankan sistem yang tangguh di Google Kubernetes Engine (GKE), Anda perlu mengidentifikasi potensi masalah sebelum masalah tersebut memengaruhi pengguna Anda.

Gunakan halaman ini untuk memantau lingkungan GKE Anda secara proaktif dengan Cloud Monitoring dengan melacak indikator performa utama, memvisualisasikan tren, dan menyiapkan pemberitahuan untuk mendeteksi masalah seperti peningkatan rasio error atau batasan resource.

Informasi ini penting bagi admin dan operator Platform yang bertanggung jawab untuk memastikan kesehatan, keandalan, dan efisiensi lingkungan GKE. Fitur ini juga membantu developer Aplikasi memahami performa aplikasi mereka dalam kondisi dunia nyata, mendeteksi regresi di seluruh deployment, dan mendapatkan insight untuk pengoptimalan. Untuk mengetahui informasi selengkapnya tentang peran umum dan contoh tugas yang kami referensikan dalam konten Google Cloud , lihat Peran dan tugas pengguna GKE umum.

Meninjau metrik yang berguna

GKE secara otomatis mengirimkan serangkaian metrik ke Cloud Monitoring. Bagian berikut mencantumkan beberapa metrik paling penting untuk pemecahan masalah:

Untuk mengetahui daftar lengkap metrik GKE, lihat Metrik sistem GKE.

Metrik performa dan kondisi container

Mulailah dengan metrik ini saat Anda mencurigai adanya masalah pada aplikasi tertentu. Metrik ini membantu Anda memantau kesehatan aplikasi, termasuk mengetahui apakah penampung sering dimulai ulang, kehabisan memori, atau dibatasi oleh batas CPU.

Metrik Deskripsi Pentingnya pemecahan masalah
kubernetes.io/container/cpu/limit_utilization Bagian dari batas CPU yang sedang digunakan pada instance. Nilai ini bisa lebih besar dari 1 karena container mungkin diizinkan untuk melampaui batas CPU-nya. Mengidentifikasi throttling CPU. Nilai yang tinggi dapat menyebabkan penurunan performa.
kubernetes.io/container/memory/limit_utilization Bagian dari batas memori yang sedang digunakan pada instance. Nilai ini tidak boleh lebih besar dari 1. Memantau risiko error OutOfMemory (OOM).
kubernetes.io/container/memory/used_bytes Memori sebenarnya yang digunakan oleh container dalam byte. Melacak penggunaan memori untuk mengidentifikasi potensi kebocoran memori atau risiko error OOM.
kubernetes.io/container/memory/page_fault_count Jumlah kesalahan halaman, diperinci menurut jenis: besar dan kecil. Menunjukkan tekanan memori yang signifikan. Kesalahan halaman besar berarti memori sedang dibaca dari disk (swapping), meskipun batas memori belum tercapai.
kubernetes.io/container/restart_count Berapa kali container telah dimulai ulang. Menyoroti potensi masalah seperti aplikasi yang error, kesalahan konfigurasi, atau kehabisan resource melalui tingginya atau meningkatnya jumlah mulai ulang.
kubernetes.io/container/ephemeral_storage/used_bytes Penggunaan penyimpanan efemeral lokal dalam byte. Memantau penggunaan disk sementara untuk mencegah pengusiran Pod karena penyimpanan sementara penuh.
kubernetes.io/container/cpu/request_utilization Bagian dari CPU yang diminta yang sedang digunakan pada instance. Nilai ini bisa lebih besar dari 1 karena penggunaannya dapat melampaui permintaan. Mengidentifikasi permintaan CPU yang kelebihan atau kekurangan alokasi untuk membantu Anda mengoptimalkan alokasi resource.
kubernetes.io/container/memory/request_utilization Bagian dari memori yang diminta yang sedang digunakan pada instance. Nilai ini bisa lebih besar dari 1 karena penggunaannya dapat melampaui permintaan. Mengidentifikasi permintaan memori yang terlalu banyak atau kurang dialokasikan untuk meningkatkan penjadwalan dan mencegah error OOM.

Metrik performa dan kesehatan node

Periksa metrik ini saat Anda perlu mendiagnosis masalah pada infrastruktur GKE yang mendasarinya. Metrik ini sangat penting untuk memahami kesehatan dan kapasitas keseluruhan node Anda, membantu Anda menyelidiki apakah node tidak sehat atau tertekan, atau apakah node memiliki memori yang cukup untuk menjadwalkan Pod baru.

Metrik Deskripsi Pentingnya pemecahan masalah
kubernetes.io/node/cpu/allocatable_utilization Bagian dari CPU yang dapat dialokasikan yang sedang digunakan pada instance. Menunjukkan apakah jumlah penggunaan Pod membebani resource CPU yang tersedia di node.
kubernetes.io/node/memory/allocatable_utilization Bagian dari memori yang dapat dialokasikan yang sedang digunakan pada instance. Nilai ini tidak boleh lebih besar dari 1 karena penggunaannya tidak dapat melampaui jumlah byte memori yang dapat dialokasikan. Menunjukkan bahwa node tidak memiliki memori untuk menjadwalkan Pod baru atau untuk mengoperasikan Pod yang ada, terutama jika nilainya tinggi.
kubernetes.io/node/status_condition (BETA) Kondisi node dari kolom kondisi status node. Melaporkan kondisi kesehatan node seperti Ready, MemoryPressure, atau DiskPressure.
kubernetes.io/node/ephemeral_storage/used_bytes Jumlah byte penyimpanan efemeral lokal yang digunakan oleh node. Membantu mencegah kegagalan atau pengusiran startup Pod dengan memberikan peringatan tentang penggunaan penyimpanan sementara yang tinggi.
kubernetes.io/node/ephemeral_storage/inodes_free Jumlah node indeks (inode) gratis di penyimpanan sementara lokal. Memantau jumlah inode kosong. Kehabisan inode dapat menghentikan operasi meskipun ruang disk tersedia.
kubernetes.io/node/interruption_count (BETA) Gangguan adalah pengusiran infrastruktur oleh sistem saat pelanggan mengontrol infrastruktur tersebut. Metrik ini adalah jumlah gangguan saat ini menurut jenis dan alasan. Menjelaskan alasan node mungkin tiba-tiba hilang karena pengusiran sistem.

Metrik performa dan kesehatan pod

Metrik ini membantu Anda memecahkan masalah terkait interaksi Pod dengan lingkungannya, seperti jaringan dan penyimpanan. Gunakan metrik ini saat Anda perlu mendiagnosis Pod yang lambat dimulai, menyelidiki potensi masalah konektivitas jaringan, atau mengelola penyimpanan secara proaktif untuk mencegah kegagalan penulisan dari volume yang penuh.

Metrik Deskripsi Pentingnya pemecahan masalah
kubernetes.io/pod/network/received_bytes_count Jumlah kumulatif byte yang diterima oleh Pod melalui jaringan. Mengidentifikasi aktivitas jaringan yang tidak biasa (tinggi atau rendah) yang dapat menunjukkan masalah aplikasi atau jaringan.
kubernetes.io/pod/network/policy_event_count (BETA) Perubahan jumlah peristiwa kebijakan jaringan yang terlihat di bidang data. Mengidentifikasi masalah konektivitas yang disebabkan oleh kebijakan jaringan.
kubernetes.io/pod/volume/utilization Bagian volume yang sedang digunakan oleh instance. Nilai ini tidak boleh lebih besar dari 1 karena penggunaannya tidak dapat melampaui total ruang volume yang tersedia. Memungkinkan pengelolaan ruang volume secara proaktif dengan memberikan peringatan saat penggunaan tinggi (mendekati 1) dapat menyebabkan kegagalan penulisan.
kubernetes.io/pod/latencies/pod_first_ready (BETA) Latensi startup end-to-end Pod (dari Pod `Dibuat` hingga `Siap`), termasuk penarikan image. Mendiagnosis Pod yang lambat dimulai.

Memvisualisasikan metrik dengan Metrics Explorer

Untuk memvisualisasikan status lingkungan GKE, buat diagram berdasarkan metrik dengan Metrics Explorer.

Untuk menggunakan Metrics Explorer, selesaikan langkah-langkah berikut:

  1. Di konsol Google Cloud , buka halaman Metrics Explorer.

    Buka Metrics Explorer

  2. Di kolom Metrik, pilih atau masukkan metrik yang ingin Anda periksa.

  3. Lihat hasilnya dan amati tren apa pun dari waktu ke waktu.

Misalnya, untuk menyelidiki penggunaan memori Pod di namespace tertentu, Anda dapat melakukan hal berikut:

  1. Dalam daftar Select a metric, pilih metrik kubernetes.io/container/memory/used_bytes, lalu klik Apply.
  2. Klik Tambahkan filter, lalu pilih namespace_name.
  3. Dalam daftar Nilai, pilih namespace yang ingin Anda selidiki.
  4. Di kolom Aggregation, pilih Sum > pod_name, lalu klik OK. Setelan ini menampilkan garis deret waktu terpisah untuk setiap Pod.
  5. Klik Simpan diagram.

Diagram yang dihasilkan menunjukkan penggunaan memori untuk setiap Pod dari waktu ke waktu, yang dapat membantu Anda mengidentifikasi secara visual Pod apa pun dengan konsumsi memori yang sangat tinggi atau melonjak.

Metrics Explorer memiliki fleksibilitas yang tinggi dalam cara menyusun metrik yang ingin Anda lihat. Untuk mengetahui informasi selengkapnya tentang opsi lanjutan Metrics Explorer, lihat artikel Membuat diagram dengan Metrics Explorer di dokumentasi Cloud Monitoring.

Membuat pemberitahuan untuk deteksi masalah proaktif

Untuk menerima notifikasi saat terjadi masalah atau saat metrik melanggar batas tertentu, siapkan kebijakan pemberitahuan di Cloud Monitoring.

Misalnya, untuk menyiapkan kebijakan pemberitahuan yang memberi tahu Anda saat batas CPU penampung melebihi 80% selama lima menit, lakukan hal berikut:

  1. Di konsol Google Cloud , buka halaman Alerting.

    Buka Pemberitahuan

  2. Klik Create policy.

  3. Di kotak Select a metric, filter CPU limit utilization lalu pilih metrik berikut: kubernetes.io/container/cpu/limit_utilization.

  4. Klik Terapkan.

  5. Biarkan kolom Tambahkan filter kosong. Setelan ini memicu pemberitahuan saat ada cluster yang melanggar nilai minimum Anda.

  6. Di bagian Transformasi data, lakukan tindakan berikut:

    1. Di daftar Rolling window, pilih 1 minute. Setelan ini berarti Google Cloud menghitung nilai rata-rata setiap menit.
    2. Di daftar Rolling window function, pilih mean.

      Kedua setelan ini merata-ratakan pemakaian batas CPU untuk setiap container setiap menit.

  7. Klik Berikutnya.

  8. Di bagian Konfigurasi pemberitahuan, lakukan hal berikut:

    1. Untuk Jenis kondisi, pilih Nilai minimum.
    2. Untuk Pemicu pemberitahuan, pilih Deret waktu mana pun melanggar.
    3. Untuk Posisi nilai minimum, pilih Di atas nilai minimum.
    4. Untuk Nilai minimum, masukkan 0.8. Nilai ini mewakili nilai minimum 80% yang ingin Anda pantau.
    5. Klik Advanced options.
    6. Di daftar Periode pengujian ulang, pilih 5 menit. Setelan ini berarti pemberitahuan hanya dipicu jika penggunaan CPU tetap di atas 80% selama periode lima menit terus-menerus, yang mengurangi alarm palsu dari lonjakan singkat.
    7. Di kolom Nama kondisi, beri nama deskriptif untuk kondisi tersebut.
    8. Klik Berikutnya.
  9. Di bagian Konfigurasi notifikasi dan finalisasi pemberitahuan, lakukan hal berikut:

    1. Di daftar Saluran notifikasi, pilih saluran tempat Anda ingin menerima pemberitahuan. Jika Anda tidak memiliki channel, klik Kelola saluran notifikasi untuk membuatnya.
    2. Di kolom Name the alert policy, beri kebijakan nama yang jelas dan deskriptif.
    3. Biarkan kolom lain tetap pada nilai defaultnya.
    4. Klik Berikutnya.
  10. Tinjau kebijakan Anda, dan jika semuanya terlihat benar, klik Buat kebijakan.

Untuk mempelajari cara tambahan membuat pemberitahuan, lihat Ringkasan pemberitahuan di dokumentasi Cloud Monitoring.

Langkah berikutnya