Halaman ini menjelaskan cara mengonfigurasi cluster Google Kubernetes Engine (GKE) untuk kirim kumpulan status kube pilihan, termasuk metrik untuk Pod dan Deployment, Cloud Monitoring menggunakan Google Cloud Managed Service for Prometheus. Halaman ini juga menjelaskan bagaimana metrik ini diformat saat ditulis ke Pemantauan, dan cara membuat kueri metrik.
Sebelum memulai
Sebelum memulai, pastikan Anda telah menjalankan tugas berikut:
- Aktifkan Google Kubernetes Engine API. Mengaktifkan 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 harus memenuhi persyaratan berikut:
- Cluster harus menjalankan GKE 1.27.2-gke.1200 atau yang lebih baru. Untuk cluster GKE Standard yang dimulai dengan versi 1.29.2-gke.2000 dan cluster GKE Autopilot dimulai pada versi 1.27.4-gke.900, paket metrik status Kube diaktifkan secara default.
- Cluster harus memiliki metrik sistem mengaktifkan pembuatan versi.
- Cluster harus memiliki Koleksi terkelola Google Cloud Managed Service for Prometheus mengaktifkan pembuatan versi. Pengumpulan terkelola Google Cloud Managed Service for Prometheus diaktifkan oleh {i>default<i} untuk cluster baru.
Mengonfigurasi kumpulan 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 Kemampuan observasi untuk cluster atau Deployment dalam sebuah cluster. Anda juga dapat melihat pratinjau diagram dan metrik yang tersedia sebelum Anda mengaktifkan paket metrik.
Di tab Kemampuan observasi untuk cluster, Anda dapat memfilter kumpulan diagram untuk metrik status kube dengan dua item berikut:
- Status Beban Kerja: mencakup metrik untuk Pod, Deployments, StatefulSets, DaemonSets, dan HorizontalPodAutoscaler Google Cloud Platform.
- Penyimpanan > Persisten: mencakup metrik untuk Persisten Klaim Volume dan Volume Persisten.
Anda dapat mengaktifkan salah satu atau kedua kumpulan metrik.
Untuk mengaktifkan metrik status kube dari tab Kemampuan observasi untuk cluster, lakukan tindakan berikut:
-
Di Google Cloud Console, buka halaman Cluster Kubernetes:
Jika Anda menggunakan bilah pencarian untuk menemukan halaman ini, kemudian pilih hasil yang sub judulnya Kubernetes Engine.
Klik nama cluster Anda, lalu pilih Observability .
Pilih Workloads State atau Penyimpanan > Persisten dari daftar fitur.
Klik Enable package.
Jika paket metrik status kube sudah diaktifkan, Anda lihat kumpulan diagram untuk metrik status kube.
Untuk mengaktifkan metrik status kube dari tab Kemampuan observasi untuk Deployment, lakukan langkah berikut:
-
Di Konsol Google Cloud, buka halaman Workloads:
Jika Anda menggunakan bilah pencarian untuk menemukan halaman ini, kemudian pilih hasil yang sub judulnya Kubernetes Engine.
Klik nama Deployment Anda, lalu pilih Observability. .
Pilih Kube State dari daftar fitur.
Klik Enable package. Paket diaktifkan untuk seluruh .
Jika paket metrik status kube sudah diaktifkan, Anda melihat kumpulan diagram untuk metrik dari Pod, Deployment, dan Horizontal Pod Autoscaler.
Untuk mengonfigurasi metrik status kube dari tab Details untuk , lakukan langkah berikut:
-
Di Google Cloud Console, buka halaman Cluster Kubernetes:
Jika Anda menggunakan bilah pencarian untuk menemukan halaman ini, kemudian pilih hasil yang sub judulnya Kubernetes Engine.
Klik nama cluster Anda.
Di baris Features berlabel Cloud Monitoring, klik ikon Edit.
Dalam dialog Edit Cloud Monitoring yang muncul, pastikan bahwa Enable Cloud Monitoring dipilih.
Di menu drop-down Komponen, pilih komponen status kube yang metriknya ingin Anda kumpulkan.
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 dari cluster tersebut.
Kumpulan nilai yang diberikan ke tanda monitoring
menggantikan nilai sebelumnya
deskripsi tempat.
Terraform
Untuk mengonfigurasi kumpulan metrik status kube menggunakan Terraform,
melihat blok monitoring_config
di
Registry Terraform untuk google_container_cluster
.
Untuk mengetahui 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 Compute Engine API. Sebelum mengaktifkan metrik status kube, memeriksa puncak penggunaan baru-baru ini dari kuota tersebut. Jika Anda memiliki banyak klaster dalam project yang sama atau sudah mendekati batas kuota tersebut, Anda dapat meminta penambahan batas kuota sebelum mengaktifkan salah satu paket kemampuan observasi.
Harga
Metrik status Kube menggunakan Google Cloud Managed Service for Prometheus untuk dimuat metrik kustom ke dalam Cloud Monitoring. Biaya Cloud Monitoring untuk penyerapan metrik ini didasarkan pada jumlah sampel yang diserap. Namun, metrik ini tanpa biaya untuk terdaftar cluster yang termasuk dalam project yang Edisi GKE Enterprise mengaktifkan pembuatan versi.
Untuk 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
identik dengan nama metrik yang diekspos oleh Kubernetes open source.
Mengekspor dari Cloud Monitoring
Metrik status kube dapat diekspor dari Cloud Monitoring dengan menggunakan Cloud Monitoring API. Karena semua metrik status kube diserap menggunakan Google Cloud Managed Service for Prometheus, metrik status kube dapat dikueri dengan menggunakan Prometheus Query Language (PromQL). Mereka juga dapat dikueri dengan menggunakan dengan menggunakan Bahasa Kueri Monitoring (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 Metrics Explorer berbasis menu.
Tabel metrik status kube berikut menunjukkan dua versi setiap nama metrik:
- Nama metrik PromQL: Waktu menggunakan PromQL di halaman Cloud Monitoring konsol Google Cloud atau di kolom PromQL pada Cloud Monitoring API, gunakan nama metrik PromQL.
- Nama metrik Cloud Monitoring Saat menggunakan
Fitur Cloud Monitoring, gunakan nama metrik Cloud Monitoring
pada tabel di bawah ini. 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, Jenis, Satu
Resource yang dipantau 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.
Pengambilan sampel setiap 30 detik.persistentvolume : volume persisten.
|
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.
Pengambilan sampel setiap 30 detik.claim_name : claim_name.
name : nama.
persistentvolume : volume persisten.
|
kube_persistentvolume_info kube_persistentvolume_info/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Informasi tentang persistentvolume.
Pengambilan sampel setiap 30 detik.csi_driver : csi_driver.
csi_volume_handle : csi_volume_handle.
local_fs : local_fs.
local_path : local_path.
persistentvolume : volume persisten.
storageclass : kelas penyimpanan.
|
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 pada klaim, atau
dilepaskan oleh klaim.
Pengambilan sampel setiap 30 detik.persistentvolume : volume persisten.
phase : fase.
|
kube_persistentvolumeclaim_info kube_persistentvolumeclaim_info/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Informasi tentang klaim volume persisten.
Pengambilan sampel setiap 30 detik.persistentvolumeclaim : klaim volume persisten.
storageclass : kelas penyimpanan.
volumename : nama volume.
|
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.
Pengambilan sampel setiap 30 detik.persistentvolumeclaim : klaim volume persisten.
|
kube_persistentvolumeclaim_status_phase kube_persistentvolumeclaim_status_phase/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Fase saat ini berlangsungnya klaim volume persisten.
Pengambilan sampel setiap 30 detik.persistentvolumeclaim : klaim volume persisten.
phase : fase.
|
Untuk informasi selengkapnya, lihat Metrik PersistentVolume dan Metrik PersistentVolumeKlaim.
Metrik pod
Pod adalah sekelompok yang terdiri dari satu atau beberapa container yang memiliki spesifikasi terkait cara menjalankan kontainer, yang berbagi sumber daya penyimpanan dan jaringan.
Tabel metrik Pod
Dengan metrik Pod, Anda dapat memantau dan memberikan pemberitahuan tentang perilaku Pod. Tabel berikut menunjukkan metrik yang tersedia di status kube paket metrik:
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, Jenis, Satu
Resource yang dipantau 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 container berhasil.
Pengambilan sampel 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 berada dalam status menunggu.
Pengambilan sampel 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. Pengambilan sampel setiap 30 detik.phase : fase.
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 yang tidak dapat dijadwalkan untuk pod.
Pengambilan sampel setiap 30 detik.pod : pod.
uid : uid.
|
Untuk informasi selengkapnya, lihat Metrik Pod.
Contoh kueri untuk metrik Pod
Untuk menentukan apakah Anda memiliki Pod yang tidak dapat dijadwalkan, gunakan PromQL berikut ekspresi:
sum(kube_pod_status_unschedulable{cluster="CLUSTER", namespace="NAMESPACE"})
Untuk memberi tahu tentang sejumlah pod yang tidak dapat dijadwalkan dalam namespace, Anda dapat menggunakan berikut ekspresi PromQL:
sum(kube_pod_status_unschedulable{cluster="CLUSTER", namespace="NAMESPACE"}) > LIMIT
Anda dapat menggunakan metrik kube_pod_container_status_waiting_reason
untuk membuat
pemberitahuan untuk container yang terjebak dalam status tunggu tertentu dengan menggunakan PromQL
ekspresi seperti berikut:
max_over_time(kube_pod_container_status_waiting_reason{reason="REASON", cluster="CLUSTER", namespace="NAMESPACE"}[5m]) >= 1
Nilai REASON menentukan status menunggu container, misalnya:
CrashLoopBackOff
ImagePullBackOff
ContainerCreating
Untuk membuat pemberitahuan untuk container yang macet di salah satu status menunggu, gunakan ekspresi PromQL berikut:
max_over_time(kube_pod_container_status_waiting_reason{cluster="CLUSTER", namespace="NAMESPACE"}[5m]) >= 1
Untuk menentukan jumlah container yang gagal dalam pemeriksaan kesiapan, gunakan metode setelah ekspresi PromQL
sum(kube_pod_container_status_ready) by (pod, container) == 0
Beberapa ekspresi kueri dan peringatan dalam
diadaptasi dari
File kubernetes-apps.yaml
di repositori Helm Chart Kubernetes komunitas Prometheus di GitHub.
Playbook interaktif
Metrik status Kube juga digunakan di GKE playbook interaktif untuk memecahkan masalah yang tidak dapat dijadwalkan atau errorlooping Pod. Untuk informasi selengkapnya tentang mode kegagalan ini, lihat referensi berikut dokumen pemecahan masalah:
Tanpa mengaktifkan paket metrik status
kube, cara utama untuk
mendeteksi masalah penjadwalan pod adalah dengan membuat kueri "Penjadwalan Gagal" mencatat peristiwa ke dalam log. Sesudah
mengaktifkan paket metrik status kube, Anda dapat menggunakan
kube_pod_status_unschedulable
, yang memiliki tujuan sama, tetapi
lebih mudah diagregasi dan dibuat diagram. Dengan menggunakan metrik, Anda dapat melihat berapa banyak
Pod tidak dapat dijadwalkan dan saat masalah dimulai.
Demikian pula, metrik sistem GKE
kubernetes.io/container/restart_count
dapat membantu Anda mendeteksi Pod yang mengalami errorlooping. Tujuan
Metrik kube_pod_container_status_waiting_reason
juga menghitung errorlooping
Pod, dan juga memungkinkan Anda menentukan apakah Pod terjebak dalam status menunggu
dari CrashLookBackOff
, seperti ImagePullBackOff
dan ContainerCreating
.
Untuk menjelajahi playbook interaktif, lakukan hal berikut:
-
Di konsol Google Cloud, buka halaman Dashboards:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.
- Filter daftar dasbor dengan mengklik G C P.
- Klik nama "Playbook Interaktif GKE" dasbor dalam daftar.
Metrik deployment
Deployment adalah pengontrol yang mengupdate status resource seperti Pod, untuk mengelola peristiwa seperti peluncuran dan penghentian.
Tabel metrik Deployment
Metrik Deployment memungkinkan Anda memantau dan memberitahukan perilaku pengontrol. Tabel berikut menampilkan 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, Jenis, Satu
Resource yang dipantau 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. Pengambilan sampel 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. Pengambilan sampel 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. Pengambilan sampel setiap 30 detik.deployment : deployment.
|
Untuk informasi selengkapnya, lihat Metrik Deployment.
Contoh kueri untuk metrik Deployment
Anda dapat membuat diagram dan kebijakan pemberitahuan untuk setiap Deployment dengan memfilter metrik Deployment berdasarkan cluster, namespace, dan nama Penyebaran.
Misalnya, untuk membandingkan jumlah replika yang tersedia dengan jumlah replika yang diharapkan dalam satu Deployment, Anda dapat menggunakan Kueri PromQL untuk memetakan kedua metrik di satu diagram:
kube_deployment_spec_replicas{cluster="CLUSTER", namespace="NAMESPACE", deployment=DEPLOYMENT"}
kube_deployment_status_replicas_available{cluster="CLUSTER", namespace="NAMESPACE", deployment=DEPLOYMENT"}
Untuk memberi tahu tentang Deployment yang gagal atau terhenti, Anda dapat menggunakan Ekspresi PromQL:
( 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 peringatan dalam
diadaptasi dari
File kubernetes-apps.yaml
di repositori Helm Chart Kubernetes komunitas Prometheus di GitHub.
Metrik StatefulSet
StatefulSet adalah pengontrol yang mengelola deployment dan penskalaan Pod untuk aplikasi stateful. Pengontrol ini mengelola urutan dan keunikan Pod.
Tabel metrik StatefulSet
Metrik StatefulSet memungkinkan Anda memantau dan memberi tahu tentang perilakunya pengontrol. Tabel berikut menampilkan 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, Jenis, Satu
Resource yang dipantau 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. Pengambilan sampel setiap 30 detik.statefulset : kumpulan stateful.
|
kube_statefulset_status_replicas_ready kube_statefulset_status_replicas_ready/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Jumlah replika siap per StatefulSet. Pengambilan sampel setiap 30 detik.statefulset : kumpulan stateful.
|
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. Pengambilan sampel setiap 30 detik.statefulset : kumpulan stateful.
|
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 berdasarkan 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 untuk memetakan kedua metrik di satu diagram:
kube_statefulset_replicas{cluster="CLUSTER", namespace="NAMESPACE", statefulset="STATEFULSET"}
kube_statefulset_status_replicas_ready{cluster="CLUSTER", namespace="NAMESPACE", statefulset="STATEFULSET"}
Untuk memberi tahu tentang peluncuran StatefulSet yang gagal atau terhenti, Anda dapat menggunakan Ekspresi PromQL:
( 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 peringatan dalam
diadaptasi dari
File kubernetes-apps.yaml
di repositori Helm Chart Kubernetes komunitas Prometheus di GitHub.
Metrik DaemonSet
DaemonSet adalah pengontrol yang memastikan bahwa beberapa set Node menjalankan salinan dari sebuah Pod. Misalnya, saat Node ditambahkan ke cluster, DaemonSet akan menambahkan Pod ke Node. Pengontrol ini berguna untuk memastikan bahwa proses yang berjalan di setiap {i>node<i}.
Tabel metrik DaemonSet
Metrik DaemonSet memungkinkan Anda memantau dan memberi tahu tentang perilaku pengontrol. Tabel berikut menampilkan 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, Jenis, Satu
Resource yang dipantau 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 seharusnya menjalankan pod daemon.
Pengambilan sampel 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. Pengambilan sampel 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 seharusnya menjalankan pod daemon dan memiliki
satu atau beberapa pod {i>daemon<i}
yang sedang berjalan dan siap digunakan. Pengambilan sampel 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 diupdate.
Pengambilan sampel 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 berdasarkan 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 untuk memetakan kedua metrik di 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 memberi tahu tentang peluncuran DaemonSet yang gagal atau terhenti, Anda dapat menggunakan Ekspresi PromQL:
( ( 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 peringatan dalam
diadaptasi dari
File kubernetes-apps.yaml
di repositori Helm Chart Kubernetes komunitas Prometheus di GitHub.
Metrik HorizontalPodAutoscaler
HorizontalPodAutoscaler (HPA) adalah pengontrol yang secara berkala berubah jumlah pod dalam workload, seperti Deployment atau StatefulSet, sebagai respons terhadap metrik tertentu, seperti pemanfaatan CPU atau memori. Mengubah nomor pod yang tersedia untuk workload akan membuat workload tetap responsif tetapi efisien.
Untuk informasi selengkapnya tentang HPA, baca Melihat detail tentang Pod Horizontal Penskala otomatis.
Tabel metrik HPA
Metrik HorizontalPodAutoscaler memungkinkan Anda memantau dan memberi tahu tentang perilaku tersebut pengontrol. Tabel berikut menampilkan 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, Jenis, Satu
Resource yang dipantau 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 jumlah pod yang dapat disetel oleh autoscaler,
tidak boleh lebih kecil dari MinReplicas.
Pengambilan sampel 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 disetel oleh autoscaler,
secara default 1.
Pengambilan sampel 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.
Pengambilan sampel 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.
Pengambilan sampel 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.
Pengambilan sampel 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.
Pengambilan sampel 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 maksimum replika, Anda dapat memplot rasio berikut:
kube_horizontalpodautoscaler_status_current_replicas{cluster="CLUSTER", namespace="NAMESPACE", horizontalpodautoscaler="HPA"} / kube_horizontalpodautoscaler_spec_max_replicas{cluster="CLUSTER", namespace="NAMESPACE", horizontalpodautoscaler="HPA"}
Ketika HPA berjalan dengan jumlah replika maksimum, Anda mungkin ingin meningkatkan spesifikasi untuk jumlah maksimum pod. Anda dapat menggunakan Ekspresi PromQL 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
kube_horizontalpodautoscaler_status_current_replicas
dan metrik kube_horizontalpodautoscaler_status_desired_replicas
untuk menentukan apakah ada perbedaan antara fasilitas yang
jumlah replika. Perbedaannya mungkin menunjukkan adanya batasan resource
dalam cluster. Ekspresi PromQL berikut mencari perbedaan
antara jumlah replika saat ini dengan yang dibutuhkan, minimum, dan maksimum
jumlah replika, 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 menjalankan 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 timbangan:kube_horizontalpodautoscaler_status_condition{status="false", condition="AbleToScale"} == 1
Kondisi
ScalingActive
dan statusfalse
menunjukkan bahwa HPA dinonaktifkan atau tidak dapat menghitung timbangan baru:kube_horizontalpodautoscaler_status_condition{status="false", condition="ScalingActive"} == 1
Beberapa ekspresi kueri dan peringatan dalam
diadaptasi dari
File kubernetes-apps.yaml
di repositori Helm Chart Kubernetes komunitas Prometheus di GitHub.