All Products
Search
Document Center

Container Service for Kubernetes:metrik pemantauan komponen kube-controller-manager dan penggunaan dasbor

Last Updated:Mar 26, 2026

kube-controller-manager adalah komponen lapisan kontrol yang menjalankan controller inti Kubernetes—seperti node controller, StatefulSet controller, dan Deployment controller—serta controller lainnya. Topik ini menjelaskan metrik yang diekspos oleh kube-controller-manager dan cara menggunakan dasbor bawaan untuk memantau kesehatannya.

Konsep utama

Workqueue

Sebagian besar controller dalam kube-controller-manager memproses perubahan resource melalui workqueue. Ketika suatu event terjadi—misalnya Pod dibuat, diperbarui, atau dihapus—controller menerima notifikasi dan memasukkan identifier resource (nama Pod dan namespace) ke dalam workqueue. Pada setiap siklus reconcile, controller mengambil identifier tersebut dari antrian dan menerapkan logika bisnis yang sesuai.

Workqueue merupakan indikator utama throughput controller. Kedalaman antrian yang meningkat menunjukkan bahwa controller tertinggal—event masuk lebih cepat daripada kemampuan controller memprosesnya.

Metrik

Metrik mencerminkan status internal kube-controller-manager. Tabel berikut menjelaskan metrik yang tersedia.

MetricTypeDescriptionWhen to watch
workqueue_adds_totalCounterJumlah total event Add yang diproses oleh workqueue.Lonjakan tidak biasa dapat mengindikasikan ledakan perubahan resource—korelasikan dengan aktivitas kluster.
workqueue_depthGaugePanjang saat ini dari workqueue.Kedalaman tinggi yang berkelanjutan berarti controller tidak mampu mengimbangi event yang masuk. Periksa status goroutine controller dan tekanan sumber daya.
workqueue_queue_duration_seconds_bucketHistogramWaktu yang dihabiskan suatu tugas menunggu dalam workqueue sebelum diproses. Ambang batas bucket: {10⁻⁸, 10⁻⁷, 10⁻⁶, 10⁻⁵, 10⁻⁴, 10⁻³, 10⁻², 10⁻¹, 1, 10} detik.Latensi tinggi pada kuantil p95/p99 mengindikasikan backlog antrian. Gunakan bersama histogram_quantile untuk menetapkan alert berbasis SLO.
memory_utilization_byteGaugeMemori yang digunakan oleh kube-controller-manager. Satuan: byte.Beri alert jika penggunaan memori mendekati batas kontainer untuk mencegah restart akibat OOM.
cpu_utilization_coreGaugeKapasitas CPU yang digunakan oleh kube-controller-manager. Satuan: core.Penggunaan CPU tinggi yang berkelanjutan dapat mengindikasikan reconciliations controller yang berlebihan.
rest_client_requests_totalCounterJumlah permintaan HTTP ke kube-apiserver, dikelompokkan berdasarkan kode status, metode, dan host.Peningkatan respons 4xx atau 5xx mengindikasikan error pada API server yang memengaruhi operasi controller.
rest_client_request_duration_seconds_bucketHistogramLatensi permintaan HTTP dari kube-controller-manager ke kube-apiserver, diuraikan berdasarkan verb dan URL.Latensi p99 yang tinggi mengindikasikan kelambatan API server, yang menyebabkan penundaan reconciliations controller.

Metrik yang telah ditinggalkan

Metrik berikut telah ditinggalkan dan akan dihapus pada versi mendatang. Hapus semua alert atau dasbor yang bergantung padanya.

Deprecated metricReplacement
cpu_utilization_ratiocpu_utilization_core
memory_utilization_ratiomemory_utilization_byte

Akses dasbor

Untuk petunjuk membuka dasbor kube-controller-manager, lihat Lihat dasbor komponen lapisan kontrol di kluster ACK Pro.

Referensi dasbor

Dasbor dibangun dari metrik di atas menggunakan Prometheus Query Language (PromQL). Dua parameter berlaku secara global di seluruh dasbor:

  • quantile: Kuantil permintaan yang ditampilkan (misalnya, 0,99 untuk p99).

  • interval: Interval pengambilan sampel PromQL yang digunakan dalam perhitungan rate().

Bagian berikut menjelaskan setiap panel dasbor dan PromQL-nya.

Dasbor Workqueue

kcm1
PanelPromQLWhat it shows
Workqueue entry ratesum(rate(workqueue_adds_total{job="ack-kube-controller-manager"}[$interval])) by (name)Laju event Add yang masuk ke workqueue per controller, selama interval yang dipilih.
Workqueue depthsum(rate(workqueue_depth{job="ack-kube-controller-manager"}[$interval])) by (name)Perubahan panjang workqueue per controller selama interval yang dipilih. Tren naik mengindikasikan backlog antrian.
Workqueue processing delayhistogram_quantile($quantile, sum(rate(workqueue_queue_duration_seconds_bucket{job="ack-kube-controller-manager"}[5m])) by (name, le))Waktu yang dihabiskan event menunggu dalam workqueue pada kuantil yang dipilih.

Dasbor Resource

kcm2
PanelPromQLWhat it shows
Memory Usagememory_utilization_byte{container="kube-controller-manager"}Memori yang digunakan oleh kube-controller-manager. Satuan: byte.
CPU Usagecpu_utilization_core{container="kube-controller-manager"}*1000CPU yang digunakan oleh kube-controller-manager. Satuan: millicore.

Dasbor Kube API

kcm3
PanelPromQLWhat it shows
Kube API request QPSLihat di bawahQueries per second (QPS) dari kube-controller-manager ke kube-apiserver, diuraikan berdasarkan metode HTTP dan kode status.
Kube API request delayhistogram_quantile($quantile, sum(rate(rest_client_request_duration_seconds_bucket{job="ack-kube-controller-manager"}[$interval])) by (verb,url,le))Latensi round-trip antara kube-controller-manager dan kube-apiserver pada kuantil yang dipilih, diuraikan berdasarkan verb dan URL.

Panel Kube API request QPS menggunakan empat kueri untuk memisahkan respons berdasarkan kelas kode status:

sum(rate(rest_client_requests_total{job="ack-kube-controller-manager",code=~"2.."}[$interval])) by (method,code)
sum(rate(rest_client_requests_total{job="ack-cloud-controller-manager",code=~"3.."}[$interval])) by (method,code)
sum(rate(rest_client_requests_total{job="ack-cloud-controller-manager",code=~"4.."}[$interval])) by (method,code)
sum(rate(rest_client_requests_total{job="ack-cloud-controller-manager",code=~"5.."}[$interval])) by (method,code)

Troubleshooting

Panel dasbor tidak menampilkan data

Periksa apakah job pengumpulan metrik aktif. Panel workqueue dan Kube API menggunakan job="ack-kube-controller-manager". Jika tidak ada data yang muncul, pastikan job scrape Prometheus sedang berjalan dan kube-controller-manager mengekspos metrik pada port yang diharapkan.

Metrik histogram menampilkan data tidak lengkap

Metrik histogram seperti workqueue_queue_duration_seconds_bucket memerlukan ketiga seri dalam family (_bucket, _sum, _count) untuk dikumpulkan. Jika salah satu seri hilang, histogram_quantile tidak mengembalikan hasil apa pun. Pastikan konfigurasi scrape mengumpulkan ketiganya.

workqueue_depth tetap tinggi

Kedalaman workqueue non-nol yang berkelanjutan berarti controller tidak cukup cepat memproses event. Periksa jumlah goroutine controller dan latensi API server. Nilai rest_client_request_duration_seconds_bucket yang tinggi pada waktu yang sama mengarah pada bottleneck API server sebagai akar penyebabnya.

Langkah selanjutnya

Untuk panduan metrik, penggunaan dasbor, dan troubleshooting komponen lapisan kontrol lainnya, lihat:

Referensi