Halaman ini menjelaskan cara mengonfigurasi cluster Google Kubernetes Engine (GKE) untuk mengirim kumpulan status kube yang diseleksi, termasuk metrik untuk Pod dan Deployment, Cloud Monitoring menggunakan Google Cloud Managed Service for Prometheus. Halaman ini juga menjelaskan cara metrik ini diformat saat ditulis ke Monitoring, dan cara membuat kueri metrik.
Sebelum memulai
Sebelum memulai, pastikan Anda telah menjalankan tugas berikut:
- Aktifkan Google Kubernetes Engine API. Aktifkan Google Kubernetes Engine API
- Jika ingin menggunakan Google Cloud CLI untuk tugas ini,
instal lalu
lakukan inisialisasi
gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan
gcloud components update
.
Persyaratan
Untuk mengumpulkan metrik status kube, cluster GKE Anda harus memenuhi persyaratan berikut:
- Cluster harus menjalankan GKE 1.27.2-gke.1200 atau yang lebih baru. Untuk cluster GKE Standard mulai dari versi 1.29.2-gke.2000 dan cluster GKE Autopilot mulai dari versi 1.27.4-gke.900, paket metrik status Kube diaktifkan secara default.
- Cluster harus mengaktifkan metrik sistem.
- Cluster harus mengaktifkan koleksi terkelola Google Cloud Managed Service for Prometheus. Koleksi terkelola Google Cloud Managed Service for Prometheus diaktifkan secara default untuk cluster baru.
Mengonfigurasi pengumpulan metrik status kube
Anda dapat mengaktifkan metrik status kube menggunakan konsol Google Cloud, gcloud CLI, atau Terraform:
Konsol
Anda dapat mengaktifkan metrik status kube dari tab Observability untuk cluster atau Deployment dalam cluster. Anda juga dapat melihat pratinjau diagram dan metrik yang tersedia sebelum mengaktifkan paket metrik.
Di tab Observability untuk cluster, Anda dapat memfilter kumpulan diagram untuk metrik status kube berdasarkan dua item berikut:
- Status Workload: mencakup metrik untuk resource Pod, Deployment, StatefulSet, DaemonSet, dan HorizontalPodAutoscaler.
- Penyimpanan > Persisten: menyertakan metrik untuk Volume Persisten dan Klaim Volume Persisten.
Anda dapat mengaktifkan salah satu atau kedua kumpulan metrik.
Untuk mengaktifkan metrik status kube dari tab Observability untuk cluster, lakukan hal berikut:
-
Di konsol Google Cloud, buka halaman Kubernetes clusters:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Kubernetes Engine.
Klik nama cluster Anda, lalu pilih tab Observability.
Pilih Status Beban Kerja atau Penyimpanan > Persisten dari daftar fitur.
Klik Aktifkan paket.
Jika paket metrik status kube sudah diaktifkan, Anda akan melihat kumpulan diagram untuk metrik status kube.
Untuk mengaktifkan metrik status kube dari tab Observability untuk Deployment, lakukan tindakan berikut:
-
Di konsol Google Cloud, buka halaman Workloads:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Kubernetes Engine.
Klik nama Deployment, lalu pilih tab Observability.
Pilih Kube State dari daftar fitur.
Klik Aktifkan paket. Paket diaktifkan untuk seluruh cluster.
Jika paket metrik status kube sudah diaktifkan, Anda akan melihat kumpulan diagram untuk metrik dari Pod, Deployment, dan Horizontal Pod Autoscaler.
Untuk mengonfigurasi metrik status kube dari tab Details untuk cluster, lakukan tindakan berikut:
-
Di konsol Google Cloud, buka halaman Kubernetes clusters:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Kubernetes Engine.
Klik nama cluster Anda.
Di baris Fitur berlabel Cloud Monitoring, klik ikon Edit.
Pada dialog Edit Cloud Monitoring yang muncul, pastikan Enable Cloud Monitoring dipilih.
Di menu drop-down Components, pilih komponen status kube tempat Anda ingin mengumpulkan metrik.
Klik Oke.
Klik Simpan Perubahan.
gcloud
Update cluster Anda untuk mengumpulkan metrik:
gcloud container clusters update CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--enable-managed-prometheus \
--monitoring=SYSTEM,DAEMONSET,DEPLOYMENT,HPA,POD,STATEFULSET,STORAGE
Ganti kode berikut:
CLUSTER_NAME
: nama cluster yang ada.COMPUTE_LOCATION
: Lokasi Compute Engine cluster.
Kumpulan nilai yang disediakan ke flag monitoring
akan menggantikan setelan
sebelumnya.
Terraform
Untuk mengonfigurasi pengumpulan metrik status kube menggunakan Terraform, lihat blok monitoring_config
di
registry Terraform untuk google_container_cluster
.
Untuk informasi umum tentang penggunaan Google Cloud dengan Terraform, lihat Terraform dengan Google Cloud.
Kuota
Metrik status Kube menggunakan kuota Permintaan penyerapan deret waktu per menit dari Cloud Monitoring API. Sebelum mengaktifkan metrik status kube, periksa penggunaan puncak terbaru Anda dari kuota tersebut. Jika memiliki banyak cluster dalam project yang sama atau sudah mendekati batas kuota tersebut, Anda dapat meminta peningkatan batas kuota sebelum mengaktifkan salah satu paket observabilitas.
Harga
Metrik status Kube menggunakan Google Cloud Managed Service for Prometheus untuk memuat metrik ke Cloud Monitoring. Biaya Cloud Monitoring untuk penyerapan metrik ini didasarkan pada jumlah sampel yang diserap. Namun, metrik ini gratis untuk cluster terdaftar yang termasuk dalam project yang telah mengaktifkan edisi GKE Enterprise.
Untuk mengetahui informasi selengkapnya, lihat harga Cloud Monitoring.
Format metrik
Semua metrik status kube Kubernetes yang ditulis ke Cloud Monitoring
menggunakan jenis resource
prometheus_target
.
Setiap nama metrik diawali dengan prometheus.googleapis.com/
dan memiliki akhiran yang menunjukkan jenis metrik Prometheus, seperti /gauge
, /histogram
, atau /counter
. Jika tidak, setiap nama metrik akan
identik dengan nama metrik yang ditampilkan oleh Kubernetes open source.
Mengekspor dari Cloud Monitoring
Metrik status kube dapat diekspor dari Cloud Monitoring menggunakan Cloud Monitoring API. Karena semua metrik status kube diserap menggunakan Google Cloud Managed Service for Prometheus, metrik status kube dapat dikueri menggunakan Prometheus Query Language (PromQL). Metrik ini juga dapat dikueri dengan menggunakan Monitoring Query Language (MQL).
Membuat kueri metrik
Saat Anda membuat kueri metrik status kube, nama yang Anda gunakan bergantung pada apakah Anda menggunakan PromQL atau fitur berbasis Cloud Monitoring seperti MQL atau antarmuka berbasis menu Metrics Explorer.
Tabel metrik status kube berikut menampilkan dua versi setiap nama metrik:
- Nama metrik PromQL: Saat menggunakan PromQL di halaman Cloud Monitoring di konsol Google Cloud atau di kolom PromQL di Cloud Monitoring API, gunakan nama metrik PromQL.
- Nama metrik Cloud Monitoring Saat menggunakan fitur Cloud Monitoring lainnya, gunakan nama metrik Cloud Monitoring dalam tabel di bawah. Nama ini harus diawali dengan
prometheus.googleapis.com/
, yang telah dihilangkan dari entri dalam tabel.
Metrik penyimpanan
Nama metrik Cloud Monitoring dalam tabel ini harus diawali dengan
prometheus.googleapis.com/
. Awalan tersebut telah dihilangkan dari
entri dalam tabel.
Nama metrik PromQL Nama metrik Cloud Monitoring |
|
---|---|
Jenis, Tipe, Unit
Resource yang dimonitor Versi GKE yang diperlukan |
Deskripsi Label |
kube_persistentvolume_capacity_bytes kube_persistentvolume_capacity_bytes/gauge
|
|
GAUGE , DOUBLE , By
prometheus_target 1.27.2-gke.1200 |
Kapasitas persistentvolume dalam byte.
Diambil sampelnya setiap 30 detik.persistentvolume : persistentvolume.
|
kube_persistentvolume_claim_ref kube_persistentvolume_claim_ref/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Informasi tentang Referensi Klaim Volume Persisten.
Diambil sampelnya setiap 30 detik.claim_name : claim_name.
name : nama.
persistentvolume : persistentvolume.
|
kube_persistentvolume_info kube_persistentvolume_info/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Informasi tentang persistentvolume.
Diambil sampelnya setiap 30 detik.csi_driver : csi_driver.
csi_volume_handle : csi_volume_handle.
local_fs : local_fs.
local_path : local_path.
persistentvolume : persistentvolume.
storageclass : storageclass.
|
kube_persistentvolume_status_phase kube_persistentvolume_status_phase/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Fase menunjukkan apakah volume tersedia, terikat dengan klaim, atau
dirilis oleh klaim.
Diambil sampelnya setiap 30 detik.persistentvolume : persistentvolume.
phase : phase.
|
kube_persistentvolumeclaim_info kube_persistentvolumeclaim_info/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Informasi tentang klaim volume persisten.
Diambil sampelnya setiap 30 detik.persistentvolumeclaim : persistentvolumeclaim.
storageclass : storageclass.
volumename : volumename.
|
kube_persistentvolumeclaim_resource_requests_storage_bytes kube_persistentvolumeclaim_resource_requests_storage_bytes/gauge
|
|
GAUGE , DOUBLE , By
prometheus_target 1.27.2-gke.1200 |
Kapasitas penyimpanan yang diminta oleh klaim volume persisten.
Diambil sampelnya setiap 30 detik.persistentvolumeclaim : persistentvolumeclaim.
|
kube_persistentvolumeclaim_status_phase kube_persistentvolumeclaim_status_phase/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Fase yang sedang dilalui klaim volume persisten.
Diambil sampelnya setiap 30 detik.persistentvolumeclaim : persistentvolumeclaim.
phase : phase.
|
Untuk informasi selengkapnya, lihat Metrik PersistentVolume dan Metrik PersistentVolumeClaim.
Metrik pod
Pod adalah grup yang terdiri dari satu atau beberapa container dengan spesifikasi cara menjalankan container, yang berbagi resource penyimpanan dan jaringan.
Tabel metrik Pod
Metrik Pod memungkinkan Anda memantau dan mendapatkan pemberitahuan tentang perilaku Pod. Tabel berikut menunjukkan metrik yang tersedia dalam paket metrik status kube:
Nama metrik Cloud Monitoring dalam tabel ini harus diawali dengan
prometheus.googleapis.com/
. Awalan tersebut telah dihilangkan dari
entri dalam tabel.
Nama metrik PromQL Nama metrik Cloud Monitoring |
|
---|---|
Jenis, Tipe, Unit
Resource yang dimonitor Versi GKE yang diperlukan |
Deskripsi Label |
kube_pod_container_status_ready kube_pod_container_status_ready/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Menjelaskan apakah pemeriksaan kesiapan penampung berhasil.
Diambil sampelnya setiap 30 detik.container : penampung.
pod : pod.
uid : uid.
|
kube_pod_container_status_waiting_reason kube_pod_status_container_status_waiting_reason/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Menjelaskan alasan penampung saat ini dalam status menunggu.
Diambil sampelnya setiap 30 detik.container : penampung.
pod : pod.
reason : alasan.
uid : uid.
|
kube_pod_status_phase kube_pod_status_phase/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Fase pod saat ini. Diambil sampelnya setiap 30 detik.phase : phase.
pod : pod.
uid : uid.
|
kube_pod_status_unschedulable kube_pod_status_unschedulable/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Menjelaskan status tidak dapat dijadwalkan untuk pod.
Diambil sampelnya setiap 30 detik.pod : pod.
uid : uid.
|
Untuk mengetahui informasi selengkapnya, lihat Metrik Pod.
Contoh kueri untuk Metrik pod
Untuk menentukan apakah Anda memiliki Pod yang tidak dapat dijadwalkan, gunakan ekspresi PromQL berikut:
sum(kube_pod_status_unschedulable{cluster="CLUSTER", namespace="NAMESPACE"})
Untuk mendapatkan pemberitahuan tentang sejumlah pod yang tidak dapat dijadwalkan di namespace, Anda dapat menggunakan ekspresi PromQL berikut:
sum(kube_pod_status_unschedulable{cluster="CLUSTER", namespace="NAMESPACE"}) > LIMIT
Anda dapat menggunakan metrik kube_pod_container_status_waiting_reason
untuk membuat pemberitahuan untuk penampung yang macet dalam status tunggu tertentu menggunakan ekspresi PromQL seperti berikut:
max_over_time(kube_pod_container_status_waiting_reason{reason="REASON", cluster="CLUSTER", namespace="NAMESPACE"}[5m]) >= 1
Nilai REASON menentukan status tunggu penampung, misalnya:
CrashLoopBackOff
ImagePullBackOff
ContainerCreating
Untuk membuat pemberitahuan bagi penampung yang macet dalam status menunggu, gunakan ekspresi PromQL berikut:
max_over_time(kube_pod_container_status_waiting_reason{cluster="CLUSTER", namespace="NAMESPACE"}[5m]) >= 1
Untuk menentukan jumlah penampung yang gagal dalam pemeriksaan kesiapan, gunakan ekspresi PromQL berikut
sum(kube_pod_container_status_ready) by (pod, container) == 0
Beberapa ekspresi kueri dan pemberitahuan di bagian ini
diadaptasi dari
file kubernetes-apps.yaml
di repositori Kubernetes Helm Charts komunitas Prometheus di GitHub.
Playbook interaktif
Metrik status Kube juga digunakan dalam playbook interaktif GKE untuk memecahkan masalah Pod yang tidak dapat dijadwalkan atau mengalami crashlooping. Untuk informasi selengkapnya tentang mode kegagalan ini, lihat dokumen pemecahan masalah berikut:
Tanpa mengaktifkan paket metrik status kube, cara utama untuk
mendeteksi masalah penjadwalan pod adalah dengan membuat kueri peristiwa log "Failed Scheduling". Setelah mengaktifkan paket metrik status kube, Anda dapat menggunakan metrik kube_pod_status_unschedulable
, yang memiliki tujuan yang sama, tetapi lebih mudah digabungkan dan dipetakan. Dengan menggunakan metrik ini, Anda dapat melihat jumlah Pod yang tidak dapat dijadwalkan dan kapan masalah dimulai.
Demikian pula, metrik sistem GKE
kubernetes.io/container/restart_count
dapat membantu Anda mendeteksi Pod yang mengalami crashlooping. Metrik
kube_pod_container_status_waiting_reason
juga menghitung Pod crashlooping, dan juga memungkinkan Anda menentukan apakah Pod macet dalam status menunggu selain
CrashLookBackOff
, seperti ImagePullBackOff
dan ContainerCreating
.
Untuk menjelajahi playbook interaktif, lakukan hal berikut:
-
Di konsol Google Cloud, buka halaman Dasbor:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.
- Filter daftar dasbor dengan mengklik kategori GCP.
- Klik nama dasbor "Playbook Interaktif GKE" dalam daftar.
Metrik deployment
Deployment adalah pengontrol yang memperbarui status resource seperti Pod, untuk mengelola peristiwa seperti peluncuran dan penonaktifan.
Tabel metrik Deployment
Metrik Deployment memungkinkan Anda memantau dan memberikan pemberitahuan tentang perilaku pengontrol. Tabel berikut menunjukkan metrik yang tersedia di paket metrik status kube:
Nama metrik Cloud Monitoring dalam tabel ini harus diawali dengan
prometheus.googleapis.com/
. Awalan tersebut telah dihilangkan dari
entri dalam tabel.
Nama metrik PromQL Nama metrik Cloud Monitoring |
|
---|---|
Jenis, Tipe, Unit
Resource yang dimonitor Versi GKE yang diperlukan |
Deskripsi Label |
kube_deployment_spec_replicas kube_deployment_spec_replicas/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Jumlah pod yang diinginkan untuk deployment. Diambil sampelnya setiap 30 detik.deployment : deployment.
|
kube_deployment_status_replicas_available kube_deployment_status_replicas_available/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Jumlah replika yang tersedia per deployment. Diambil sampelnya setiap 30 detik.deployment : deployment.
|
kube_deployment_status_replicas_updated kube_deployment_status_replicas_updated/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Jumlah replika yang diupdate per deployment. Diambil sampelnya setiap 30 detik.deployment : deployment.
|
Untuk mengetahui informasi selengkapnya, lihat Metrik Deployment.
Contoh kueri untuk metrik Deployment
Anda dapat membuat diagram dan kebijakan pemberitahuan untuk setiap Deployment dengan memfilter metrik Deployment menurut cluster, namespace, dan nama Deployment.
Misalnya, untuk membandingkan jumlah replika yang tersedia dengan jumlah replika yang diharapkan dalam satu Deployment, Anda dapat menggunakan kueri PromQL berikut untuk memetakan kedua metrik pada satu diagram:
kube_deployment_spec_replicas{cluster="CLUSTER", namespace="NAMESPACE", deployment=DEPLOYMENT"}
kube_deployment_status_replicas_available{cluster="CLUSTER", namespace="NAMESPACE", deployment=DEPLOYMENT"}
Untuk mendapatkan pemberitahuan tentang Deployment yang gagal atau terhenti, Anda dapat menggunakan ekspresi PromQL berikut:
( kube_deployment_spec_replicas{cluster="CLUSTER", namespace="NAMESPACE", deployment="DEPLOYMENT"} > kube_deployment_status_replicas_available{cluster="CLUSTER", namespace="NAMESPACE", deployment="DEPLOYMENT"} ) and ( changes(kube_deployment_status_replicas_updated{cluster="CLUSTER", namespace="NAMESPACE", deployment="DEPLOYMENT"}[10m]) == 0 )
Beberapa ekspresi kueri dan pemberitahuan di bagian ini
diadaptasi dari
file kubernetes-apps.yaml
di repositori Kubernetes Helm Charts komunitas Prometheus di GitHub.
Metrik StatefulSet
StatefulSet adalah pengontrol yang mengelola deployment dan penskalaan kumpulan Pod untuk aplikasi stateful. Pengontrol ini mengelola urutan dan keunikan Pod.
Tabel metrik StatefulSet
Metrik StatefulSet memungkinkan Anda memantau dan memberikan pemberitahuan tentang perilaku pengontrol. Tabel berikut menunjukkan metrik yang tersedia di paket metrik status kube:
Nama metrik Cloud Monitoring dalam tabel ini harus diawali dengan
prometheus.googleapis.com/
. Awalan tersebut telah dihilangkan dari
entri dalam tabel.
Nama metrik PromQL Nama metrik Cloud Monitoring |
|
---|---|
Jenis, Tipe, Unit
Resource yang dimonitor Versi GKE yang diperlukan |
Deskripsi Label |
kube_statefulset_replicas kube_statefulset_replicas/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Jumlah pod yang diinginkan untuk StatefulSet. Diambil sampelnya setiap 30 detik.statefulset : statefulset.
|
kube_statefulset_status_replicas_ready kube_statefulset_status_replicas_ready/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Jumlah replika yang siap per StatefulSet. Diambil sampelnya setiap 30 detik.statefulset : statefulset.
|
kube_statefulset_status_replicas_updated kube_statefulset_status_replicas_updated/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Jumlah replika yang diupdate per StatefulSet. Diambil sampelnya setiap 30 detik.statefulset : statefulset.
|
Untuk informasi selengkapnya, lihat Metrik StatefulSet.
Contoh kueri untuk metrik StatefulSet
Anda dapat membuat diagram dan kebijakan pemberitahuan untuk setiap StatefulSet dengan memfilter metrik statefulset menurut cluster, namespace, dan nama StatefulSet.
Misalnya, untuk membandingkan jumlah replika yang tersedia dengan jumlah replika yang diharapkan dalam satu StatefulSet, Anda dapat menggunakan kueri PromQL berikut untuk memetakan kedua metrik pada satu diagram:
kube_statefulset_replicas{cluster="CLUSTER", namespace="NAMESPACE", statefulset="STATEFULSET"}
kube_statefulset_status_replicas_ready{cluster="CLUSTER", namespace="NAMESPACE", statefulset="STATEFULSET"}
Untuk mendapatkan pemberitahuan tentang peluncuran StatefulSet yang gagal atau terhenti, Anda dapat menggunakan ekspresi PromQL berikut:
( kube_statefulset_replicas{cluster="CLUSTER", namespace="NAMESPACE", statefulset="STATEFULSET"} > kube_statefulset_status_replicas_ready{cluster="CLUSTER", namespace="NAMESPACE", statefulset="STATEFULSET"} ) and ( changes(kube_statefulset_status_replicas_updated{cluster="CLUSTER", namespace="NAMESPACE", statefulset="STATEFULSET"}[10m]) == 0 )
Beberapa ekspresi kueri dan pemberitahuan di bagian ini
diadaptasi dari
file kubernetes-apps.yaml
di repositori Kubernetes Helm Charts komunitas Prometheus di GitHub.
Metrik DaemonSet
DaemonSet adalah pengontrol yang memastikan bahwa beberapa kumpulan Node menjalankan salinan Pod. Misalnya, saat Node ditambahkan ke cluster, DaemonSet akan menambahkan Pod ke Node. Pengontrol ini berguna untuk memastikan bahwa proses tertentu berjalan di setiap node.
Tabel metrik DaemonSet
Metrik DaemonSet memungkinkan Anda memantau dan memberikan pemberitahuan tentang perilaku pengontrol. Tabel berikut menunjukkan metrik yang tersedia di paket metrik status kube:
Nama metrik Cloud Monitoring dalam tabel ini harus diawali dengan
prometheus.googleapis.com/
. Awalan tersebut telah dihilangkan dari
entri dalam tabel.
Nama metrik PromQL Nama metrik Cloud Monitoring |
|
---|---|
Jenis, Tipe, Unit
Resource yang dimonitor Versi GKE yang diperlukan |
Deskripsi Label |
kube_daemonset_status_desired_number_scheduled kube_daemonset_status_desired_number_scheduled/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Jumlah node yang harus menjalankan pod daemon.
Diambil sampelnya setiap 30 detik.daemonset : daemonset.
|
kube_daemonset_status_number_misscheduled kube_daemonset_status_number_misscheduled/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Jumlah node yang menjalankan pod daemon, tetapi tidak seharusnya. Diambil sampelnya setiap 30 detik.daemonset : daemonset.
|
kube_daemonset_status_number_ready kube_daemonset_status_number_ready/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Jumlah node yang harus menjalankan pod daemon dan memiliki
satu atau beberapa pod daemon yang berjalan dan siap. Diambil sampelnya setiap 30 detik.daemonset : daemonset.
|
kube_daemonset_status_updated_number_scheduled kube_daemonset_status_updated_number_scheduled/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Jumlah node yang menjalankan pod daemon yang telah diupdate.
Diambil sampelnya setiap 30 detik.daemonset : daemonset.
|
Untuk informasi selengkapnya, lihat Metrik DaemonSet.
Contoh kueri untuk metrik DaemonSet
Anda dapat membuat diagram dan kebijakan pemberitahuan untuk setiap DaemonSet dengan memfilter metrik daemonset menurut cluster, namespace, dan nama DaemonSet.
Misalnya, untuk membandingkan jumlah replika yang tersedia dengan jumlah replika yang diharapkan dalam satu DaemonSet, Anda dapat menggunakan kueri PromQL berikut untuk memetakan kedua metrik pada satu diagram:
kube_daemonset_status_updated_number_scheduled{cluster="CLUSTER", namespace="NAMESPACE", daemonsetset=DAEMONSET"}
kube_daemonset_status_desired_number_scheduled{cluster="CLUSTER", namespace="NAMESPACE", daemonset=DAEMONSET"}
Untuk mendapatkan pemberitahuan tentang peluncuran DaemonSet yang gagal atau terhenti, Anda dapat menggunakan ekspresi PromQL berikut:
( ( kube_daemonset_status_number_misscheduled{cluster="CLUSTER", namespace="NAMESPACE", daemonset="DAEMONSET"} != 0 ) or ( kube_daemonset_status_updated_number_scheduled{cluster="CLUSTER", namespace="NAMESPACE", daemonset="DAEMONSET"} != kube_daemonset_status_desired_number_scheduled{cluster="CLUSTER", namespace="NAMESPACE", daemonset="DAEMONSET"} ) ) and ( changes(kube_daemonset_status_updated_number_scheduled{cluster="CLUSTER", namespace="NAMESPACE", daemonset="DAEMONSET"}[5m]) == 0 )
Beberapa ekspresi kueri dan pemberitahuan di bagian ini
diadaptasi dari
file kubernetes-apps.yaml
di repositori Kubernetes Helm Charts komunitas Prometheus di GitHub.
Metrik HorizontalPodAutoscaler
HorizontalPodAutoscaler (HPA) adalah pengontrol yang secara berkala mengubah jumlah pod dalam workload, seperti Deployment atau StatefulSet, sebagai respons terhadap beberapa metrik seperti penggunaan CPU atau memori. Mengubah jumlah pod yang tersedia untuk workload akan membuat workload tetap responsif, tetapi efisien.
Untuk informasi selengkapnya tentang HPA, lihat Melihat detail tentang Horizontal Pod Autoscaler.
Tabel metrik HPA
Metrik HorizontalPodAutoscaler memungkinkan Anda memantau dan memberikan pemberitahuan tentang perilaku pengontrol. Tabel berikut menunjukkan metrik yang tersedia di paket metrik status kube:
Nama metrik Cloud Monitoring dalam tabel ini harus diawali dengan
prometheus.googleapis.com/
. Awalan tersebut telah dihilangkan dari
entri dalam tabel.
Nama metrik PromQL Nama metrik Cloud Monitoring |
|
---|---|
Jenis, Tipe, Unit
Resource yang dimonitor Versi GKE yang diperlukan |
Deskripsi Label |
kube_horizontalpodautoscaler_spec_max_replicas kube_horizontalpodautoscaler_spec_max_replicas/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Batas atas untuk jumlah pod yang dapat ditetapkan oleh autoscaler,
tidak boleh lebih kecil dari MinReplicas.
Diambil sampelnya setiap 30 detik.horizontalpodautoscaler : horizontalpodautoscaler.
|
kube_horizontalpodautoscaler_spec_min_replicas kube_horizontalpodautoscaler_spec_min_replicas/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Batas bawah untuk jumlah pod yang dapat ditetapkan oleh autoscaler,
default 1.
Diambil sampelnya setiap 30 detik.horizontalpodautoscaler : horizontalpodautoscaler.
|
kube_horizontalpodautoscaler_spec_target_metric kube_horizontalpodautoscaler_spec_target_metric/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Spesifikasi metrik yang digunakan oleh autoscaler ini saat menghitung
jumlah replika yang diinginkan.
Diambil sampelnya setiap 30 detik.horizontalpodautoscaler : horizontalpodautoscaler.
metric_name : metric_name.
metric_target_type : metric_target_type.
|
kube_horizontalpodautoscaler_status_condition kube_horizontalpodautoscaler_status_condition/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Kondisi autoscaler ini.
Diambil sampelnya setiap 30 detik.condition : kondisi.
horizontalpodautoscaler : horizontalpodautoscaler.
namespace : namespace.
status : status.
|
kube_horizontalpodautoscaler_status_current_replicas kube_horizontalpodautoscaler_status_status_current_replicas/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Jumlah replika pod saat ini yang dikelola oleh autoscaler ini.
Diambil sampelnya setiap 30 detik.horizontalpodautoscaler : horizontalpodautoscaler.
|
kube_horizontalpodautoscaler_status_desired_replicas kube_horizontalpodautoscaler_status_desired_replicas/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Jumlah replika pod yang diinginkan yang dikelola oleh autoscaler ini.
Diambil sampelnya setiap 30 detik.horizontalpodautoscaler : horizontalpodautoscaler.
|
Untuk informasi selengkapnya, lihat Metrik Autoscaler Pod Horizontal.
Contoh kueri untuk metrik HPA
Misalnya, untuk menentukan apakah HPA mendekati jumlah replika maksimum, Anda dapat memetakan rasio berikut:
kube_horizontalpodautoscaler_status_current_replicas{cluster="CLUSTER", namespace="NAMESPACE", horizontalpodautoscaler="HPA"} / kube_horizontalpodautoscaler_spec_max_replicas{cluster="CLUSTER", namespace="NAMESPACE", horizontalpodautoscaler="HPA"}
Saat HPA berjalan dengan jumlah maksimum replika, Anda mungkin ingin meningkatkan spesifikasi untuk jumlah maksimum pod. Anda dapat menggunakan ekspresi PromQL berikut untuk membuat pemberitahuan guna memberi tahu Anda tentang kasus ini:
kube_horizontalpodautoscaler_status_current_replicas{cluster="CLUSTER", namespace="NAMESPACE", horizontalpodautoscaler="HPA"} == kube_horizontalpodautoscaler_spec_max_replicas{cluster="CLUSTER", namespace="NAMESPACE", horizontalpodautoscaler="HPA"}
Anda juga dapat membandingkan nilai metrik kube_horizontalpodautoscaler_status_current_replicas
dan kube_horizontalpodautoscaler_status_desired_replicas
untuk menentukan apakah ada perbedaan antara jumlah replika saat ini dan yang diperlukan. Perbedaan mungkin menunjukkan batasan resource
dalam cluster. Ekspresi PromQL berikut mencari perbedaan
antara jumlah replika saat ini dan jumlah replika yang diperlukan, minimum, dan maksimum, serta perubahan jumlah replika saat ini:
(kube_horizontalpodautoscaler_status_desired_replicas{job="kube-state-metrics", namespace=~"NAMESPACE"} != kube_horizontalpodautoscaler_status_current_replicas{job="kube-state-metrics", namespace=~"NAMESPACE"}) and (kube_horizontalpodautoscaler_status_current_replicas{job="kube-state-metrics", namespace=~"NAMESPACE"} > kube_horizontalpodautoscaler_spec_min_replicas{job="kube-state-metrics", namespace=~"NAMESPACE"}) and (kube_horizontalpodautoscaler_status_current_replicas{job="kube-state-metrics", namespace=~"NAMESPACE"} < kube_horizontalpodautoscaler_spec_max_replicas{job="kube-state-metrics", namespace=~"NAMESPACE"}) and changes(kube_horizontalpodautoscaler_status_current_replicas{job="kube-state-metrics", namespace=~"NAMESPACE"}[15m]) == 0
Label condition
dan status
pada metrik kube_horizontalpodautoscaler_status_condition
juga dapat membantu Anda mendeteksi kapan HPA mengalami berbagai mode kegagalan. Contoh:
- Kondisi
ScalingLimited
dan statustrue
menunjukkan bahwa HPA terikat oleh jumlah replika minimum atau maksimumnya:kube_horizontalpodautoscaler_status_condition{status="true", condition="ScalingLimited"} == 1
Kondisi
AbleToScale
dan statusfalse
menunjukkan bahwa HPA mengalami masalah saat mengambil atau memperbarui skala:kube_horizontalpodautoscaler_status_condition{status="false", condition="AbleToScale"} == 1
Kondisi
ScalingActive
dan statusfalse
menunjukkan bahwa HPA dinonaktifkan atau tidak dapat menghitung skala baru:kube_horizontalpodautoscaler_status_condition{status="false", condition="ScalingActive"} == 1
Beberapa ekspresi kueri dan pemberitahuan di bagian ini
diadaptasi dari
file kubernetes-apps.yaml
di repositori Kubernetes Helm Charts komunitas Prometheus di GitHub.