Komponen kube-apiserver menyediakan API RESTful untuk Kubernetes. API ini memungkinkan klien eksternal dan komponen lain dalam kluster berinteraksi dengan kluster ACK. Topik ini menjelaskan metrik, memberikan panduan penggunaan dasbor, serta menjelaskan anomali metrik umum untuk komponen kube-apiserver.
Sebelum Anda mulai
Cara mengakses
Untuk informasi selengkapnya, lihat Lihat dasbor untuk memantau komponen lapisan kontrol.
Daftar metrik
Metrik digunakan untuk menampilkan status dan parameter suatu komponen. Tabel berikut menjelaskan metrik untuk komponen kube-apiserver.
Metrik | Tipe | Deskripsi |
apiserver_request_duration_seconds_bucket | Histogram | Metrik ini digunakan untuk melacak distribusi latensi akses untuk berbagai permintaan dari klien API Server ke API Server. Dimensi permintaan mencakup hal-hal berikut:
Ambang batas bucket untuk histogram API Server adalah |
apiserver_request_total | Counter | Counter untuk berbagai permintaan ke API Server. Dimensi permintaan mencakup Verb, Group, Version, Resource, Scope, Component, HTTP contentType, kode HTTP (kode status HTTP dari tanggapan), dan Client. |
apiserver_request_no_resourceversion_list_total | Counter | Counter untuk permintaan LIST ke API Server yang tidak memiliki parameter |
apiserver_current_inflight_requests | Gauge | Jumlah permintaan yang sedang diproses oleh API Server. Permintaan tersebut mencakup dua jenis:
|
apiserver_dropped_requests_total | Counter | Jumlah permintaan yang secara aktif dijatuhkan oleh API Server selama pengendalian aliran. Nilai kembali HTTP-nya adalah |
etcd_request_duration_seconds_bucket | Histogram | Metrik ini menghitung distribusi latensi permintaan untuk permintaan API Server ke etcd. Dimensi permintaan mencakup Operation dan Type (jenis objek operasi). Ambang batas bucket-nya adalah |
apiserver_flowcontrol_request_concurrency_limit | Gauge | Batas konkurensi permintaan API Priority and Fairness (APF). Ini menunjukkan batas konkurensi maksimum teoretis untuk antrian prioritas. Ini adalah jumlah maksimum permintaan yang secara teoretis dapat diproses oleh antrian secara bersamaan. Hal ini membantu Anda memahami bagaimana API Server menggunakan kebijakan pengendalian aliran untuk mengalokasikan sumber daya ke antrian dengan prioritas berbeda dan memastikan bahwa permintaan prioritas tinggi diproses segera. Metrik ini telah ditinggalkan di Kubernetes v1.30 dan akan dihapus di v1.31. Untuk kluster yang menjalankan Kubernetes v1.31 atau lebih baru, gunakan metrik apiserver_flowcontrol_nominal_limit_seats sebagai gantinya. |
apiserver_flowcontrol_current_executing_requests | Gauge | Jumlah permintaan yang sedang dieksekusi dalam antrian prioritas. Ini menunjukkan muatan konkuren aktual dari antrian. Hal ini membantu Anda memahami muatan aktual API Server dan menentukan apakah sistem mendekati batas konkurensi maksimumnya untuk mencegah kelebihan beban. |
apiserver_flowcontrol_current_inqueue_requests | Gauge | Jumlah permintaan yang sedang menunggu untuk diproses dalam antrian prioritas. Ini menunjukkan antrean permintaan dari antrian. Hal ini membantu Anda memahami tekanan lalu lintas pada API Server dan apakah antrian tersebut kelebihan beban. |
apiserver_flowcontrol_nominal_limit_seats | Gauge | Jumlah kursi batas konkurensi nominal untuk APF. Ini adalah kemampuan pemrosesan konkuren maksimum teoretis (nominal) dari API Server, diukur dalam kursi. Hal ini membantu Anda memahami bagaimana API Server menggunakan kebijakan pengendalian aliran untuk mengalokasikan sumber daya ke antrian dengan prioritas berbeda. |
apiserver_flowcontrol_current_limit_seats | Gauge | Jumlah kursi batas konkurensi saat ini untuk APF. Ini menunjukkan batas konkurensi saat ini dari antrian prioritas. Ini adalah jumlah maksimum kursi konkuren yang diizinkan setelah penyesuaian dinamis, mencerminkan kemampuan konkuren aktual dari antrian, yang dapat berubah secara dinamis karena beban sistem atau faktor lainnya. Berbeda dengan nominal_limit_seats, nilai ini dapat dipengaruhi oleh kebijakan pengendalian aliran global. |
apiserver_flowcontrol_current_executing_seats | Gauge | Jumlah kursi yang sedang dieksekusi untuk APF. Ini menunjukkan jumlah kursi yang sesuai dengan permintaan yang sedang dieksekusi dalam antrian prioritas. Ini mencerminkan sumber daya konkuren yang sedang dikonsumsi dalam antrian. Hal ini membantu Anda memahami beban aktual dari antrian. Jika current_executing_seats mendekati current_limit_seats, sumber daya konkuren dari antrian mungkin akan segera habis. Anda dapat meningkatkan nilai parameter maxMutatingRequestsInflight dan maxRequestsInflight dari API Server untuk mengoptimalkan konfigurasi. Untuk informasi tentang cara mengakses halaman konfigurasi dan nilai parameter, lihat Menyesuaikan parameter komponen lapisan kontrol untuk kluster Managed Pro. |
apiserver_flowcontrol_current_inqueue_seats | Gauge | Jumlah kursi yang saat ini berada dalam antrian untuk APF. Ini menunjukkan jumlah kursi yang sesuai dengan permintaan yang menunggu untuk diproses dalam antrian prioritas. Ini mencerminkan sumber daya yang ditempati oleh permintaan yang menunggu untuk diproses dalam antrian. Hal ini membantu Anda memahami antrean dari antrian tersebut. |
apiserver_flowcontrol_request_execution_seconds_bucket | Histogram | Waktu eksekusi aktual suatu permintaan. Ini mencatat waktu yang dibutuhkan untuk menyelesaikan permintaan sejak awal eksekusi. Interval waktunya adalah {0, 0.005, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 15, 30}. Satuannya adalah detik. |
apiserver_flowcontrol_request_wait_duration_seconds_bucket | Histogram | Distribusi waktu tunggu permintaan dalam antrian. Ini mencatat waktu tunggu dari saat permintaan masuk ke antrian hingga mulai dieksekusi. Interval waktunya adalah {0, 0.005, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 15, 30}. Satuannya adalah detik. |
apiserver_flowcontrol_dispatched_requests_total | Counter | Jumlah permintaan yang berhasil dijadwalkan dan diproses. Ini mencerminkan jumlah total permintaan yang berhasil diproses oleh API Server. |
apiserver_flowcontrol_rejected_requests_total | Counter | Jumlah permintaan yang ditolak karena batas konkurensi atau kapasitas antrian terlampaui. |
apiserver_admission_controller_admission_duration_seconds_bucket | Histogram | Latensi pemrosesan admission controller. Label mencakup nama admission controller, operasi (seperti CREATE, UPDATE, atau CONNECT), sumber daya API, jenis operasi (validate atau admit), dan apakah permintaan ditolak (true atau false). Ambang batas bucket-nya adalah |
apiserver_admission_webhook_admission_duration_seconds_bucket | Histogram | Latensi pemrosesan admission webhook. Label mencakup nama admission controller, operasi (seperti CREATE, UPDATE, atau CONNECT), sumber daya API, jenis operasi (validate, untuk memeriksa validitas permintaan, atau admit, untuk memutuskan apakah permintaan diizinkan jika valid), dan apakah permintaan ditolak (true atau false). Ambang batas bucket-nya adalah |
apiserver_admission_webhook_admission_duration_seconds_count | Counter | Counter untuk permintaan yang diproses oleh admission webhook. Label mencakup nama admission controller, operasi (seperti CREATE, UPDATE, atau CONNECT), sumber daya API, jenis operasi (validate atau admit), dan apakah permintaan ditolak (true atau false). |
cpu_utilization_core | Gauge | Penggunaan CPU. Satuan: Core. |
memory_utilization_byte | Gauge | Penggunaan memori. Satuan: Byte. |
up | Gauge | Ketersediaan layanan.
|
Panduan penggunaan dasbor
Dasbor dibuat menggunakan metrik komponen dan kueri Prometheus Query Language (PromQL) terkait. Dasbor mencakup bagian-bagian untuk metrik utama, ikhtisar, analisis sumber daya, QPS dan latensi, pengendalian aliran APF, admission controller dan webhook, serta analisis klien.
Langkah-langkah berikut menjelaskan alur kerja umum:
Metrik utama: Tinjau dengan cepat metrik utama kluster.
Ikhtisar: Analisis waktu respons API Server, jumlah permintaan yang sedang diproses, dan apakah terjadi pengendalian aliran.
Analisis sumber daya: Lihat penggunaan sumber daya komponen terkelola.
QPS dan latensi: Lakukan analisis mendalam terhadap QPS dan waktu respons (RT) dari berbagai dimensi.
Pengendalian aliran APF: Anda dapat menggunakan metrik APF untuk menganalisis distribusi lalu lintas permintaan dan status pengendalian aliran API Server serta mengidentifikasi hambatan kinerja sistem.
Admission controller dan webhook: Analisis QPS dan RT admission controller dan webhook.
Analisis klien: Analisis QPS dari berbagai dimensi klien.
Filter Pane
Di panel filter di bagian atas dasbor, Anda dapat mengonfigurasi parameter Verb, Resource, Quantile, dan Interval (durasi pengambilan sampel PromQL) untuk memfilter permintaan API Server.
Saat Anda menyesuaikan Quantile, nilai 0,9 menunjukkan bahwa dasbor menampilkan nilai persentil ke-90 dari metrik histogram. Persentil 0,9 (P90) dapat menghilangkan dampak sampel ekor panjang yang menyumbang proporsi kecil dari total sampel. Persentil 0,99 (P99) mencakup dampak sampel ekor panjang.

Di panel filter berikut, Anda dapat memilih rentang waktu dan interval penyegaran halaman.
Key Metrics
Tampilan observabilitas
Analisis fitur
Nama | PromQL | Deskripsi |
API QPS | sum(irate(apiserver_request_total[$interval])) | Total QPS API Server. |
Read Request Success Rate | sum(irate(apiserver_request_total{code=~"20.*",verb=~"GET|LIST"}[$interval]))/sum(irate(apiserver_request_total{verb=~"GET|LIST"}[$interval])) | Tingkat keberhasilan API Server dalam memproses permintaan baca. |
Write Request Success Rate | sum(irate(apiserver_request_total{code=~"20.*",verb!~"GET|LIST|WATCH|CONNECT"}[$interval]))/sum(irate(apiserver_request_total{verb!~"GET|LIST|WATCH|CONNECT"}[$interval])) | Tingkat keberhasilan API Server dalam memproses permintaan tulis. |
Number Of In-flight Read Requests | sum(apiserver_current_inflight_requests{requestKind="readOnly"}) | Jumlah permintaan baca yang sedang diproses oleh API Server. |
Number Of In-flight Write Requests | sum(apiserver_current_inflight_requests{requestKind="mutating"}) | Jumlah permintaan tulis yang sedang diproses oleh API Server. |
Request Throttling Rate | sum(irate(apiserver_dropped_requests_total[$interval])) | Tingkat Permintaan yang Dijatuhkan. Rasio permintaan yang secara aktif dijatuhkan oleh API Server selama pengendalian aliran terhadap jumlah total permintaan. |
Overview
Tampilan observabilitas
Analisis fitur
Nama | PromQL | Deskripsi |
GET Read Request Latency | histogram_quantile($quantile, sum(irate(apiserver_request_duration_seconds_bucket{verb="GET",resource!="",subresource!~"log|proxy"}[$interval])) by (pod, verb, resource, subresource, scope, le)) | Menampilkan waktu respons permintaan GET. Dimensi mencakup pod API Server, Verb (GET), Sumber Daya, dan Cakupan. |
LIST Read Request Latency | histogram_quantile($quantile, sum(irate(apiserver_request_duration_seconds_bucket{verb="LIST"}[$interval])) by (pod_name, verb, resource, scope, le)) | Menampilkan waktu respons permintaan LIST. Dimensi mencakup pod API Server, Verb (LIST), Sumber Daya, dan Cakupan. |
Write Request Latency | histogram_quantile($quantile, sum(irate(apiserver_request_duration_seconds_bucket{verb!~"GET|WATCH|LIST|CONNECT"}[$interval])) by (cluster, pod_name, verb, resource, scope, le)) | Menampilkan waktu respons permintaan mutating. Dimensi mencakup pod API Server, Verb (tidak termasuk GET, WATCH, LIST, CONNECT), Sumber Daya, dan Cakupan. |
Number Of In-flight Read Requests | apiserver_current_inflight_requests{request_kind="readOnly"} | Jumlah permintaan baca yang sedang diproses oleh API Server. |
Number Of In-flight Write Requests | apiserver_current_inflight_requests{request_kind="mutating"} | Jumlah permintaan tulis yang sedang diproses oleh API Server. |
Request Throttling Rate | sum(irate(apiserver_dropped_requests_total{request_kind="readOnly"}[$interval])) by (name) sum(irate(apiserver_dropped_requests_total{request_kind="mutating"}[$interval])) by (name) | Tingkat pengendalian aliran API Server. |
Resource Analysis
Tampilan observabilitas
Analisis fitur
Nama | PromQL | Deskripsi |
Memory Usage | memory_utilization_byte{container="kube-apiserver"} | Penggunaan memori API Server. Satuan: Byte. |
CPU Usage | cpu_utilization_core{container="kube-apiserver"}*1000 | Penggunaan CPU API Server. Satuan: millicore. |
Resource Object Count |
|
Catatan Karena masalah kompatibilitas, baik apiserver_storage_objects maupun etcd_object_counts ada di versi 1.22. |
QPS And Latency
Tampilan observabilitas
Analisis fitur
Nama | PromQL | Deskripsi |
QPS Analysis By Verb | sum(irate(apiserver_request_total{verb=~"$verb"}[$interval]))by(verb) | Menganalisis permintaan per detik (QPS) berdasarkan Verb. |
QPS Analysis By Verb And Resource | sum(irate(apiserver_request_total{verb=~"$verb",resource=~"$resource"}[$interval]))by(verb,resource) | Menganalisis QPS berdasarkan Verb dan Resource. |
Request Latency Analysis By Verb | histogram_quantile($quantile, sum(irate(apiserver_request_duration_seconds_bucket{verb=~"$verb", verb!~"WATCH|CONNECT",resource!=""}[$interval])) by (le,verb)) | Menganalisis latensi permintaan berdasarkan Verb. |
Request Latency Analysis By Verb And Resource | histogram_quantile($quantile, sum(irate(apiserver_request_duration_seconds_bucket{verb=~"$verb", verb!~"WATCH|CONNECT", resource=~"$resource",resource!=""}[$interval])) by (le,verb,resource)) | Menganalisis latensi permintaan berdasarkan Verb dan Resource. |
Read Request QPS With Non-2xx Return Values | sum(irate(apiserver_request_total{verb=~"GET|LIST",resource=~"$resource",code!~"2.*"}[$interval])) by (verb,resource,code) | Menghitung QPS permintaan baca yang memiliki nilai kembali non-2xx. Nilai kembali non-2xx menunjukkan kegagalan, seperti 4xx dan 5xx. |
Write Request QPS With Non-2xx Return Values | sum(irate(apiserver_request_total{verb!~"GET|LIST|WATCH",verb=~"$verb",resource=~"$resource",code!~"2.*"}[$interval])) by (verb,resource,code) | Menghitung QPS permintaan tulis yang memiliki nilai kembali non-2xx. Nilai kembali non-2xx menunjukkan kegagalan, seperti 4xx dan 5xx. |
API Server Request Latency To Etcd | histogram_quantile($quantile, sum(irate(etcd_request_duration_seconds_bucket[$interval])) by (le,operation,type,instance)) | Menghitung latensi permintaan dari API Server ke etcd. |
Pembatasan APF
Pemantauan metrik pengendalian aliran APF sedang dalam rilis bertahap.
Metrik terkait APF hanya didukung untuk kluster yang menjalankan Kubernetes v1.20 atau lebih baru. Untuk meningkatkan kluster, lihat Meningkatkan kluster ACK secara manual.
dasbor metrik APF juga memerlukan peningkatan komponen berikut. Untuk informasi selengkapnya, lihat Petunjuk peningkatan untuk pemantauan komponen:
Komponen pemantauan kluster kontainer: 0,06 atau lebih baru.
Komponen ack-arms-prometheus: v1.1.31 atau lebih baru.
Probe terkelola: v1.1.31 atau lebih baru.
Tampilan observabilitas


Analisis fitur
Beberapa metrik dalam tabel berikut dikumpulkan berdasarkan dimensi PL, Instance, dan FS.
PL: Dimensi Tingkat Prioritas. Metrik dikumpulkan berdasarkan prioritas berbeda.
Instance: Dimensi instance API Server. Metrik dikumpulkan berdasarkan instance API Server.
FS: Dimensi Skema Alur. Metrik dikumpulkan berdasarkan kategorisasi permintaan.
Untuk informasi selengkapnya tentang APF dan dimensi di atas, lihat dokumentasi APF.
Nama | PromQL | Deskripsi |
APF Request Concurrency Limit (by PL) | sum by(priority_level) (apiserver_flowcontrol_request_concurrency_limit) | Menghitung batas konkurensi permintaan APF berdasarkan PL atau berdasarkan Instance dan PL. Ini adalah jumlah maksimum permintaan yang secara teoretis dapat diproses oleh antrian prioritas secara bersamaan. Metrik apiserver_flowcontrol_request_concurrency_limit telah ditinggalkan di Kubernetes v1.30 dan akan dihapus di v1.31. Untuk kluster yang menjalankan Kubernetes v1.31 atau lebih baru, gunakan metrik apiserver_flowcontrol_nominal_limit_seats sebagai gantinya. |
APF Request Concurrency Limit (by Instance And PL) | sum by(instance,priority_level) (apiserver_flowcontrol_request_concurrency_limit) | |
Number Of Current APF Executing Requests (by FS And PL) | sum by(flow_schema,priority_level) (apiserver_flowcontrol_current_executing_requests) | Menghitung jumlah permintaan APF yang sedang dieksekusi berdasarkan FS dan PL atau berdasarkan Instance, FS, dan PL. |
Number Of Current APF Executing Requests (by Instance, FS, And PL) | sum by(instance,flow_schema,priority_level)(apiserver_flowcontrol_current_executing_requests) | |
Number Of APF Requests Waiting In Queue (by FS And PL) | sum by(flow_schema,priority_level) (apiserver_flowcontrol_current_inqueue_requests) | Menghitung jumlah permintaan yang menunggu untuk diproses dalam antrian saat ini berdasarkan FS dan PL atau berdasarkan Instance, FS, dan PL. |
Number Of APF Requests Waiting In Queue (by Instance, FS, And PL) | sum by(instance,flow_schema,priority_level) (apiserver_flowcontrol_current_inqueue_requests) | |
Number Of APF Nominal Concurrency Limit Seats | sum by(instance,priority_level) (apiserver_flowcontrol_nominal_limit_seats) | Menghitung metrik terkait kursi APF berdasarkan Instance dan PL. Metrik tersebut mencakup hal-hal berikut:
|
Number Of APF Current Concurrency Limit Seats | sum by(instance,priority_level) (apiserver_flowcontrol_current_limit_seats) | |
Number Of APF Seats Currently Being Executed | sum by(instance,priority_level) (apiserver_flowcontrol_current_executing_seats) | |
Number Of APF Seats Currently In Queue | sum by(instance,priority_level) (apiserver_flowcontrol_current_inqueue_seats) | |
APF Request Execution Time | histogram_quantile($quantile, sum(irate(apiserver_flowcontrol_request_execution_seconds_bucket[$interval])) by (le,instance, flow_schema,priority_level)) | Waktu yang dibutuhkan untuk menyelesaikan permintaan sejak awal eksekusi. |
APF Request Wait Time | histogram_quantile($quantile, sum(irate(apiserver_flowcontrol_request_wait_seconds_bucket[$interval])) by (le,instance, flow_schema,priority_level)) | Waktu tunggu dari saat permintaan masuk ke antrian hingga mulai dieksekusi. |
QPS Of Successfully Dispatched And Processed APF Requests | sum(irate(apiserver_flowcontrol_dispatched_requests_total[$interval]))by(instance,flow_schema,priority_level) | QPS permintaan yang berhasil dijadwalkan dan diproses. |
QPS Of Rejected APF Requests | sum(irate(apiserver_flowcontrol_rejected_requests_total[$interval]))by(instance,flow_schema,priority_level) | QPS permintaan yang ditolak karena batas konkurensi atau kapasitas antrian terlampaui. |
Admission Controller And Webhook
Tampilan observabilitas
Analisis fitur
Nama | PromQL | Deskripsi |
Admission Controller Latency [admit] | histogram_quantile($quantile, sum by(operation, name, le, type, rejected) (irate(apiserver_admission_controller_admission_duration_seconds_bucket{type="admit"}[$interval])) ) | Nama, operasi, status penolakan, dan waktu eksekusi admission controller tipe admit yang digunakan. Ambang batas bucket untuk metrik ini adalah |
Admission Controller Latency [validate] | histogram_quantile($quantile, sum by(operation, name, le, type, rejected) (irate(apiserver_admission_controller_admission_duration_seconds_bucket{type="validate"}[$interval])) ) | Nama, operasi, status penolakan, dan waktu eksekusi admission controller tipe validate yang digunakan. Ambang batas bucket untuk metrik ini adalah |
Admission Webhook Latency [admit] | histogram_quantile($quantile, sum by(operation, name, le, type, rejected) (irate(apiserver_admission_webhook_admission_duration_seconds_bucket{type="admit"}[$interval])) ) | Nama, operasi, status penolakan, dan waktu eksekusi webhook tipe admit yang digunakan. Ambang batas bucket untuk metrik ini adalah |
Admission Webhook Latency [validating] | histogram_quantile($quantile, sum by(operation, name, le, type, rejected) (irate(apiserver_admission_webhook_admission_duration_seconds_bucket{type="validating"}[$interval])) ) | Nama, operasi, status penolakan, dan waktu eksekusi webhook tipe validating yang digunakan. Ambang batas bucket untuk metrik ini adalah |
Admission Webhook Request QPS | sum(irate(apiserver_admission_webhook_admission_duration_seconds_count[$interval]))by(name,operation,type,rejected) | QPS permintaan admission webhook. |
Client Analysis
Tampilan observabilitas
Analisis fitur
Nama | PromQL | Deskripsi |
QPS Analysis By Client | sum(irate(apiserver_request_total{client!=""}[$interval])) by (client) | Menganalisis QPS berdasarkan klien. Ini digunakan untuk menganalisis klien yang mengakses API Server dan QPS-nya. |
QPS Analysis By Verb, Resource, And Client | sum(irate(apiserver_request_total{client!="",verb=~"$verb", resource=~"$resource"}[$interval]))by(verb,resource,client) | Menganalisis QPS berdasarkan Verb, Resource, dan Klien. |
LIST Request QPS Analysis By Verb, Resource, And Client (without ResourceVersion Field) | sum(irate(apiserver_request_no_resourceversion_list_total[$interval]))by(resource,client) |
|
Anomali metrik umum
Jika metrik umum untuk komponen tersebut tidak normal, rujuk deskripsi berikut untuk menentukan apakah perilaku tersebut diharapkan.
Read/write Request Success Rate
Deskripsi
Normal | Tidak Normal | Deskripsi |
Read Request Success Rate dan Write Request Success Rate mendekati 100%. | Read Request Success Rate dan Write Request Success Rate tetap pada persentase rendah, misalnya kurang dari 90%. | Ada banyak permintaan dengan nilai kembali non-200. |
Solusi yang direkomendasikan
Gunakan dasbor untuk menemukan jenis permintaan dan sumber daya yang menyebabkan nilai kembali non-2xx pada grafik Read Request QPS With Non-2xx Return Values dan Write Request QPS With Non-2xx Return Values. Evaluasi apakah permintaan tersebut diharapkan dan ambil langkah-langkah untuk mengoptimalkannya. Misalnya, jika Anda melihat GET/deployment 404, itu menunjukkan adanya permintaan untuk mengambil deployment yang mengembalikan 404. Hal ini mengurangi Read Request Success Rate. Anda harus menentukan apakah ini merupakan perilaku yang diharapkan.
GET/LIST Read Request Latency And Write Request Latency
Deskripsi
Normal | Tidak Normal | Deskripsi |
GET Read Request Latency, LIST Read Request Latency, dan Write Request Latency berkaitan dengan jumlah sumber daya kluster yang diakses dan skala kluster. Tidak ada batas tetap antara waktu normal dan tidak normal. Selama bisnis tidak terpengaruh, latensi berada dalam kisaran yang dapat diterima. Misalnya, semakin banyak sumber daya jenis tertentu yang diakses, semakin lama waktu permintaan LIST. Secara umum, GET Read Request Latency dan Write Request Latency kurang dari 1 detik, serta LIST Read Request Latency kurang dari 5 detik dianggap normal. |
| Jika waktu respons permintaan terlalu lama, Anda perlu menyingkirkan faktor-faktor seperti banyaknya sumber daya kluster dan panggilan webhook yang lambat. |
Solusi yang direkomendasikan
Gunakan dasbor untuk menemukan jenis permintaan dan sumber daya yang menyebabkan latensi tinggi pada grafik GET Read Request Latency, LIST Read Request Latency, dan Write Request Latency, lalu ambil langkah-langkah untuk menyelesaikan masalah tersebut.
Ambang batas maksimum untuk metrik latensi permintaan
apiserver_request_duration_seconds_bucketadalah 60 detik. Permintaan yang memakan waktu lebih dari 60 detik dihitung sebagai 60 detik. Namun, permintaan untuk masuk ke pod (POST pod/exec) dan permintaan untuk membaca log membuat koneksi berumur panjang. Permintaan ini biasanya memakan waktu lebih dari 60 detik. Anda dapat mengabaikan jenis permintaan ini selama pemecahan masalah.
Rujuk latensi admission webhook untuk menganalisis apakah eksekusi webhook yang lambat menyebabkan latensi permintaan API Server yang panjang.
In-flight Read/write Requests And Request Throttling Rate
Deskripsi
Normal | Tidak Normal | Deskripsi |
Secara umum, dianggap normal jika Number Of In-flight Read Requests dan Number Of In-flight Write Requests kurang dari 100, dan Request Throttling Rate adalah 0. |
| Saat antrian untuk memproses permintaan mengalami antrean, Anda perlu menyingkirkan faktor-faktor seperti penundaan pemrosesan akibat lonjakan permintaan dan panggilan webhook yang lambat. Jika panjang antrian terlampaui, API Server melakukan pengendalian aliran terhadap permintaan. Hal ini menyebabkan Request Throttling Rate lebih dari 0 dan memengaruhi stabilitas kluster. |
Solusi yang direkomendasikan
Rujuk bagian QPS dan latensi dan Analisis klien untuk menganalisis permintaan teratas dan mengevaluasi apakah permintaan tersebut diharapkan. Jika permintaan tersebut diprakarsai oleh aplikasi Anda, tentukan apakah Anda perlu mengurangi jumlah permintaan.
Rujuk latensi admission webhook untuk menganalisis apakah eksekusi webhook yang lambat menyebabkan pemrosesan permintaan API Server yang lambat.
Admission Webhook Latency
Deskripsi
Normal | Tidak Normal | Deskripsi |
Admission Webhook Latency kurang dari 0,5 detik. | Admission Webhook Latency terus-menerus lebih dari 0,5 detik. | Tanggapan webhook yang lambat memengaruhi waktu respons API Server. |
Solusi yang direkomendasikan
Periksa log webhook dan informasi lainnya untuk menentukan apakah perilaku tersebut diharapkan. Jika webhook tidak diperlukan, uninstall webhook tersebut.
Referensi
Untuk informasi selengkapnya tentang metrik, petunjuk penggunaan dasbor, dan anomali metrik umum untuk komponen lapisan kontrol lainnya dari kluster, lihat topik-topik berikut:
Untuk informasi selengkapnya tentang cara menanyakan data pemantauan Prometheus dari konsol atau menggunakan API, lihat Menanyakan data pemantauan Prometheus menggunakan PromQL.
Untuk informasi selengkapnya tentang cara menggunakan Pemantauan Prometheus Alibaba Cloud untuk mengonfigurasi aturan peringatan berdasarkan kueri PromQL kustom, lihat Membuat aturan peringatan Prometheus.