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
Metrik
Metrik mencerminkan status internal kube-controller-manager. Tabel berikut menjelaskan metrik yang tersedia.
| Metric | Type | Description | When to watch |
|---|---|---|---|
workqueue_adds_total | Counter | Jumlah total event Add yang diproses oleh workqueue. | Lonjakan tidak biasa dapat mengindikasikan ledakan perubahan resource—korelasikan dengan aktivitas kluster. |
workqueue_depth | Gauge | Panjang 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_bucket | Histogram | Waktu 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_byte | Gauge | Memori yang digunakan oleh kube-controller-manager. Satuan: byte. | Beri alert jika penggunaan memori mendekati batas kontainer untuk mencegah restart akibat OOM. |
cpu_utilization_core | Gauge | Kapasitas CPU yang digunakan oleh kube-controller-manager. Satuan: core. | Penggunaan CPU tinggi yang berkelanjutan dapat mengindikasikan reconciliations controller yang berlebihan. |
rest_client_requests_total | Counter | Jumlah 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_bucket | Histogram | Latensi 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 metric | Replacement |
|---|---|
cpu_utilization_ratio | cpu_utilization_core |
memory_utilization_ratio | memory_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

| Panel | PromQL | What it shows |
|---|---|---|
| Workqueue entry rate | sum(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 depth | sum(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 delay | histogram_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

| Panel | PromQL | What it shows |
|---|---|---|
| Memory Usage | memory_utilization_byte{container="kube-controller-manager"} | Memori yang digunakan oleh kube-controller-manager. Satuan: byte. |
| CPU Usage | cpu_utilization_core{container="kube-controller-manager"}*1000 | CPU yang digunakan oleh kube-controller-manager. Satuan: millicore. |
Dasbor Kube API

| Panel | PromQL | What it shows |
|---|---|---|
| Kube API request QPS | Lihat di bawah | Queries per second (QPS) dari kube-controller-manager ke kube-apiserver, diuraikan berdasarkan metode HTTP dan kode status. |
| Kube API request delay | histogram_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: