All Products
Search
Document Center

Container Service for Kubernetes:kube-apiserver: Metrik dan dasbor

Last Updated:Jun 17, 2026

Pantau kesehatan kube-apiserver di kluster ACK menggunakan metrik, dasbor, dan diagnosis anomali.

Catatan penggunaan

Akses dasbor

Lihat Lihat dasbor pemantauan komponen lapisan kontrol kluster.

Metrik

Tabel berikut mencantumkan metrik kube-apiserver.

Metric

Type

Description

apiserver_request_duration_seconds_bucket

Histogram

Distribusi latensi untuk permintaan dari klien API Server ke API Server.

Dimensi:

  • Verb: jenis permintaan, seperti GET, POST, PUT, dan DELETE.

  • Group: grup API, kumpulan antarmuka terkait untuk memperluas Kubernetes API.

  • Version: versi API, seperti v1 dan v1beta1.

  • Resource: jenis resource target, seperti Pod, Service, dan Lease.

  • Subresource: subresource dari resource target, seperti detail pod dan log pod.

  • Scope: cakupan permintaan, seperti namespace-scoped atau cluster-scoped.

  • Component: komponen yang melakukan permintaan, seperti kube-controller-manager, kube-scheduler, atau cloud-controller-manager.

  • Client: klien yang melakukan permintaan, baik komponen internal maupun layanan eksternal.

Ambang batas bucket untuk Histogram API Server: {0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.25, 1.5, 1.75, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 40, 50, 60}. Satuan: detik.

apiserver_request_total

Counter

Total permintaan API Server, dikelompokkan berdasarkan Verb, Group, Version, Resource, Scope, Component, HTTP contentType, kode HTTP (kode status respons), dan Client.

apiserver_request_no_resourceversion_list_total

Counter

Permintaan LIST ke API Server tanpa parameter resourceVersion. Membantu mendeteksi permintaan LIST quorum-read berlebihan dan mengidentifikasi klien sumbernya untuk optimalisasi. Dikelompokkan berdasarkan Group, Version, Resource, Scope, dan Client.

apiserver_current_inflight_requests

Gauge

Permintaan yang sedang diproses oleh API Server, dalam dua jenis:

  • ReadOnly: permintaan yang tidak mengubah status kluster, seperti menampilkan daftar pod atau mengecek status node.

  • Mutating: permintaan yang mengubah status kluster, seperti membuat pod atau memperbarui Service.

apiserver_dropped_requests_total

Counter

Permintaan yang dibuang oleh API Server selama throttling, mengembalikan kode status HTTP 429 'Try again later'.

etcd_request_duration_seconds_bucket

Histogram

Distribusi latensi permintaan dari API Server ke etcd.

Dikelompokkan berdasarkan operasi dan jenis objek.

Ambang batas bucket: {0.005, 0.025, 0.05, 0.1, 0.2, 0.4, 0.6, 0.8, 1.0, 1.25, 1.5, 2, 3, 4, 5, 6, 8, 10, 15, 20, 30, 45, 60}. Satuan: detik.

apiserver_flowcontrol_request_concurrency_limit

Gauge

Batas maksimum permintaan konkuren yang dapat diproses oleh antrian prioritas di bawah throttling APF (API Priority and Fairness). Menunjukkan bagaimana API Server mengalokasikan kapasitas di seluruh antrian prioritas untuk memprioritaskan permintaan.

Usang di Kubernetes 1.30 dan dihapus di 1.31. Untuk kluster yang menjalankan Kubernetes 1.31 atau lebih baru, gunakan metrik apiserver_flowcontrol_nominal_limit_seats sebagai gantinya.

apiserver_flowcontrol_current_executing_requests

Gauge

Permintaan yang sedang dieksekusi dalam antrian prioritas, merepresentasikan beban konkuren aktual. Pantau bersamaan dengan batas konkurensi untuk menentukan apakah API Server mendekati titik jenuh.

apiserver_flowcontrol_current_inqueue_requests

Gauge

Permintaan yang menunggu dalam antrian prioritas. Antrean yang terus bertambah menunjukkan tekanan trafik pada API Server dan kemungkinan kelebihan beban antrian.

apiserver_flowcontrol_nominal_limit_seats

Gauge

Batas maksimum nominal kursi konkuren di API Server di bawah APF, menunjukkan alokasi kapasitas di seluruh antrian prioritas. Mengindikasikan bagaimana API Server mendistribusikan sumber daya melalui kebijakan pengendalian trafik. Satuan: seats.

apiserver_flowcontrol_current_limit_seats

Gauge

Batas konkurensi APF saat ini dalam satuan seats untuk antrian prioritas — jumlah maksimum seats konkuren yang diizinkan setelah penyesuaian dinamis berdasarkan beban sistem.

Berbeda dengan nominal_limit_seats, nilai ini dapat dipengaruhi oleh kebijakan pengendalian trafik global.

apiserver_flowcontrol_current_executing_seats

Gauge

Seats yang dikonsumsi oleh permintaan yang sedang dieksekusi dalam antrian prioritas, mencerminkan beban aktual.

Jika current_executing_seats mendekati current_limit_seats, sumber daya konkuren antrian hampir habis.

Untuk meningkatkan kapasitas, tingkatkan maxMutatingRequestsInflight dan maxRequestsInflight untuk API Server. Lihat Sesuaikan parameter komponen lapisan kontrol di kluster ACK Pro.

apiserver_flowcontrol_current_inqueue_seats

Gauge

Seats yang ditempati oleh permintaan yang menunggu dalam antrian prioritas, merepresentasikan antrean tertunda.

apiserver_flowcontrol_request_execution_seconds_bucket

Histogram

Waktu eksekusi permintaan, dari awal hingga selesai.

Ambang batas bucket adalah {0, 0.005, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 15, 30}. Satuan: detik.

apiserver_flowcontrol_request_wait_duration_seconds_bucket

Histogram

Waktu tunggu permintaan dalam antrian sebelum eksekusi dimulai.

Ambang batas bucket adalah {0, 0.005, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 15, 30}. Satuan: detik.

apiserver_flowcontrol_dispatched_requests_total

Counter

Total permintaan yang berhasil didispatch oleh API Server di bawah APF.

apiserver_flowcontrol_rejected_requests_total

Counter

Permintaan yang ditolak karena melebihi batas konkurensi atau kapasitas antrian.

apiserver_admission_controller_admission_duration_seconds_bucket

Histogram

Latensi pemrosesan admission controller. Label: nama controller, operasi (seperti CREATE, UPDATE, CONNECT), resource API, jenis operasi (validate atau admit), dan status penolakan (true atau false).

Ambang batas bucket: {0.005, 0.025, 0.1, 0.5, 2.5}. Satuan: detik.

apiserver_admission_webhook_admission_duration_seconds_bucket

Histogram

Latensi pemrosesan admission webhook. Label: nama controller, operasi (seperti CREATE, UPDATE, CONNECT), resource API, jenis operasi (seperti validate atau admit), dan status penolakan (true atau false).

Ambang batas bucket: {0.005, 0.025, 0.1, 0.5, 2.5}. Satuan: detik.

apiserver_admission_webhook_admission_duration_seconds_count

Counter

Permintaan yang diproses oleh admission webhook. Label: nama controller, operasi (seperti CREATE, UPDATE, CONNECT), resource API, jenis operasi (validate atau admit), dan status penolakan (true atau false).

cpu_utilization_core

Gauge

Jumlah core CPU yang digunakan. Satuan: core.

memory_utilization_byte

Gauge

Jumlah memori yang digunakan. Satuan: byte.

resource_utilization_level

Gauge

Tingkat pemanfaatan sumber daya.

  • resource: Jenis sumber daya. Nilai yang valid: cpu dan memory.

  • utilization_level: Tingkat pemanfaatan. Nilai yang valid: high (pemanfaatan ≥ 80%) dan normal (pemanfaatan < 80%).

  • container: Kontainer target. Nilai yang valid: kube-apiserver, kube-scheduler, kube-controller-manager, cloud-controller-manager, dan etcd.

up

Gauge

Menunjukkan apakah layanan tersedia.

  • 1: Layanan tersedia.

  • 0: Layanan tidak tersedia.

Catatan

Metrik pemanfaatan sumber daya berikut tidak lagi digunakan. Hapus semua aturan peringatan atau pemantauan yang bergantung pada metrik ini:

  • cpu_utilization_ratio: Pemanfaatan CPU.

  • memory_utilization_ratio: Pemanfaatan memori.

Dasbor

Panel dasbor dalam urutan yang direkomendasikan:

  1. Metrik utama: Dapatkan ikhtisar cepat metrik kluster utama.

  2. Ikhtisar: Analisis latensi respons API Server, jumlah permintaan yang sedang berlangsung, dan peristiwa throttling apa pun.

  3. Analisis sumber daya: Tinjau tingkat pemanfaatan sumber daya komponen yang dikelola.

  4. QPS dan latensi: Lakukan analisis mendalam multidimensi terhadap queries per second (QPS) dan waktu respons (RT).

  5. Throttling APF: Gunakan metrik APF untuk menganalisis distribusi trafik permintaan API Server, status throttling-nya, dan bottleneck kinerja sistem.

  6. Admission controller dan webhook: Analisis QPS dan RT admission controller serta webhook.

  7. Analisis klien: Lakukan analisis multidimensi QPS berdasarkan klien.

Filter

Konfigurasikan Verb, Resource, dan Quantile untuk permintaan API Server, serta Interval PromQL di atas dasbor.

Catatan

Quantile 0.9 (P90) menunjukkan nilai di mana 90% sampel histogram berada di bawah atau sama dengannya, sehingga menyaring outlier ekor panjang. Quantile 0.99 (P99) mencakup sampel ekor panjang.

Filters

Pilih rentang waktu dan interval refresh menggunakan filter ini.Filters 2

Metrik utama

Tampilan dasbor100

Rincian metrik

Name

PromQL

Description

API QPS

sum(irate(apiserver_request_total[$interval]))

Total QPS untuk 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 permintaan baca untuk API Server.

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 permintaan tulis untuk API Server.

Number of in-flight read requests

sum(apiserver_current_inflight_requests{requestKind="readOnly"})

Permintaan baca yang sedang diproses oleh API Server.

Number of in-flight write requests

sum(apiserver_current_inflight_requests{requestKind="mutating"})

Permintaan tulis yang sedang diproses oleh API Server.

Request throttling rate

sum(irate(apiserver_dropped_requests_total[$interval]))

Laju kebijakan throttling API Server dalam membuang permintaan.

Persentase total permintaan yang dibuang oleh kebijakan throttling API server.

Ikhtisar

Tampilan dasbor50

Rincian metrik

Name

PromQL

Description

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))

Waktu respons permintaan GET, dikelompokkan berdasarkan pod API Server, resource, dan scope.

LIST read request latency

histogram_quantile($quantile, sum(irate(apiserver_request_duration_seconds_bucket{verb="LIST"}[$interval])) by (pod_name, verb, resource, scope, le))

Waktu respons permintaan LIST, dikelompokkan berdasarkan pod API Server, resource, dan scope.

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))

Waktu respons permintaan mutating, dikelompokkan berdasarkan pod API Server, verb (tidak termasuk GET, WATCH, LIST, CONNECT), resource, dan scope.

Number of in-flight read requests

apiserver_current_inflight_requests{request_kind="readOnly"}

Permintaan baca yang sedang diproses oleh API Server.

Number of in-flight write requests

apiserver_current_inflight_requests{request_kind="mutating"}

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)

Laju throttling permintaan untuk API Server. No data atau 0 menunjukkan tidak ada throttling.

Analisis sumber daya

Tampilan dasbor

image

Rincian metrik

Name

PromQL

Description

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: millicores.

Resource object count

  • max by(resource)(apiserver_storage_objects)

  • max by(resource)(etcd_object_counts)

  • Untuk kluster ACK yang menjalankan v1.22 atau lebih baru, nama metrik adalah apiserver_storage_objects.

  • Untuk kluster ACK yang menjalankan versi sebelum 1.22, nama metrik adalah etcd_object_counts.

Catatan

Karena masalah kompatibilitas, kedua metrik apiserver_storage_objects dan etcd_object_counts ada di versi 1.22.

Tingkat pemanfaatan memori

  • resource_utilization_level{resource="memory",container="kube-apiserver",utilization_level="high"}

  • resource_utilization_level{resource="memory",container="kube-apiserver",utilization_level="normal"}

  • Jika resource_utilization_level{utilization_level="high",...} bernilai 1, tingkat pemanfaatan sumber daya kontainer ≥ 80%.

  • Jika resource_utilization_level{utilization_level="normal",...} bernilai 1, tingkat pemanfaatan sumber daya kontainer < 80%.

Tingkat pemanfaatan CPU

  • resource_utilization_level{resource="cpu",container="kube-apiserver",utilization_level="high"}

  • resource_utilization_level{resource="cpu",container="kube-apiserver",utilization_level="normal"}

QPS dan latensi

Tampilan dasbor48

Rincian metrik

Name

PromQL

Description

QPS analysis by verb

sum(irate(apiserver_request_total{verb=~"$verb"}[$interval]))by(verb)

QPS permintaan, dikelompokkan berdasarkan verb.

QPS analysis by verb and resource

sum(irate(apiserver_request_total{verb=~"$verb",resource=~"$resource"}[$interval]))by(verb,resource)

QPS permintaan, dikelompokkan 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))

Latensi permintaan, dikelompokkan 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))

Latensi permintaan, dikelompokkan berdasarkan verb dan resource.

QPS of read requests with non-2xx responses

sum(irate(apiserver_request_total{verb=~"GET|LIST",resource=~"$resource",code!~"2.*"}[$interval])) by (verb,resource,code)

QPS permintaan baca yang mengembalikan kode status non-2xx, seperti 4xx atau 5xx.

QPS of write requests with non-2xx responses

sum(irate(apiserver_request_total{verb!~"GET|LIST|WATCH",verb=~"$verb",resource=~"$resource",code!~"2.*"}[$interval])) by (verb,resource,code)

QPS permintaan tulis yang mengembalikan kode status non-2xx, seperti 4xx atau 5xx.

API Server to etcd request latency

histogram_quantile($quantile, sum(irate(etcd_request_duration_seconds_bucket[$interval])) by (le,operation,type,instance))

Latensi permintaan dari API Server ke etcd.

Throttling APF

Catatan

Pemantauan metrik throttling APF sedang dalam rilis canary.

  • Metrik terkait APF hanya tersedia untuk kluster ACK yang menjalankan Kubernetes 1.20 atau lebih baru. Untuk meningkatkan kluster Anda, lihat Tingkatkan kluster ACK secara manual.

  • dasbor metrik APF juga memerlukan peningkatan komponen berikut. Lihat Tingkatkan komponen pemantauan.

    • Komponen pemantauan kluster kontainer: 0.06 atau lebih baru.

    • Komponen ack-arms-prometheus: v1.1.31 atau lebih baru.

    • managed probe: v1.1.31 atau lebih baru.

Tampilan dasbor

image

image

Rincian metrik

Beberapa metrik dikelompokkan berdasarkan PL, Instance, dan FS.

  • PL: Priority Level.

  • Instance: Instans API Server.

  • FS: Flow Schema.

Untuk rincian APF dan dimensi, lihat dokumentasi Kubernetes API Priority and Fairness.

Name

PromQL

Description

APF request concurrency limit (by PL)

sum by(priority_level) (apiserver_flowcontrol_request_concurrency_limit)

Batas konkurensi permintaan APF, dikelompokkan berdasarkan PL atau Instance + PL. Jumlah maksimum teoretis permintaan konkuren per antrian prioritas.

apiserver_flowcontrol_request_concurrency_limit usang di Kubernetes 1.30 dan dihapus di 1.31. Untuk kluster yang menjalankan v1.31 atau lebih baru, gunakan apiserver_flowcontrol_nominal_limit_seats sebagai gantinya.

APF request concurrency limit (by Instance + PL)

sum by(instance,priority_level) (apiserver_flowcontrol_request_concurrency_limit)

Number of current APF executing requests (by FS + PL)

sum by(flow_schema,priority_level) (apiserver_flowcontrol_current_executing_requests)

Permintaan yang sedang dieksekusi di bawah APF, dikelompokkan berdasarkan FS + PL atau Instance + FS + PL.

Number of current APF executing requests (by Instance + FS + PL)

sum by(instance,flow_schema,priority_level)(apiserver_flowcontrol_current_executing_requests)

Number of current APF in-queue requests (by FS + PL)

sum by(flow_schema,priority_level) (apiserver_flowcontrol_current_inqueue_requests)

Permintaan yang menunggu dalam antrean, dikelompokkan berdasarkan FS + PL atau Instance + FS + PL.

Number of current APF in-queue requests (by Instance + FS + PL)

sum by(instance,flow_schema,priority_level) (apiserver_flowcontrol_current_inqueue_requests)

APF nominal limit seats

sum by(instance,priority_level) (apiserver_flowcontrol_nominal_limit_seats)

Metrik seat APF berdasarkan Instance + PL:

  • Nominal limit seats: batas maksimum nominal konkurensi dalam seats per antrian prioritas.

  • Current limit seats: batas maksimum seats konkuren setelah penyesuaian dinamis per antrian prioritas.

  • Executing seats: seats yang dikonsumsi oleh permintaan yang sedang dieksekusi per antrian prioritas.

  • In-queue seats: seats yang dikonsumsi oleh permintaan yang menunggu per antrian prioritas.

APF current limit seats

sum by(instance,priority_level) (apiserver_flowcontrol_current_limit_seats)

APF current executing seats

sum by(instance,priority_level) (apiserver_flowcontrol_current_executing_seats)

APF current in-queue seats

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 dari awal eksekusi permintaan hingga selesai.

APF request wait time

histogram_quantile($quantile, sum(irate(apiserver_flowcontrol_request_wait_seconds_bucket[$interval])) by (le,instance, flow_schema,priority_level))

Waktu permintaan menunggu dalam antrean sebelum eksekusi.

QPS of successfully dispatched APF requests

sum(irate(apiserver_flowcontrol_dispatched_requests_total[$interval]))by(instance,flow_schema,priority_level)

QPS permintaan yang berhasil didispatch.

QPS of rejected APF requests

sum(irate(apiserver_flowcontrol_rejected_requests_total[$interval]))by(instance,flow_schema,priority_level)

QPS permintaan yang ditolak karena melebihi batas konkurensi atau kapasitas antrean.

Admission controller dan webhook

Tampilan dasbor47

Rincian metrik

Name

PromQL

Description

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.

Bucket histogram:{0.005, 0.025, 0.1, 0.5, 2.5}. Satuan: detik.

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.

Bucket histogram:{0.005, 0.025, 0.1, 0.5, 2.5}. Satuan: detik.

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.

Bucket histogram:{0.005, 0.025, 0.1, 0.5, 2.5}. Satuan: detik.

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.

Bucket histogram:{0.005, 0.025, 0.1, 0.5, 2.5}. Satuan: detik.

Admission webhook request QPS

sum(irate(apiserver_admission_webhook_admission_duration_seconds_count[$interval]))by(name,operation,type,rejected)

QPS permintaan admission webhook.

Analisis klien

Tampilan dasbor45

Rincian metrik

Name

PromQL

Description

QPS analysis by client

sum(irate(apiserver_request_total{client!=""}[$interval])) by (client)

QPS berdasarkan klien, menunjukkan klien mana yang mengakses API Server.

QPS analysis by verb, resource, and client

sum(irate(apiserver_request_total{client!="",verb=~"$verb", resource=~"$resource"}[$interval]))by(verb,resource,client)

QPS permintaan API Server, dikelompokkan berdasarkan verb, resource, dan klien.

QPS of LIST requests without resourceVersion

sum(irate(apiserver_request_no_resourceversion_list_total[$interval]))by(resource,client)

  • QPS permintaan LIST yang tidak menyertakan bidang resourceVersion, dikelompokkan berdasarkan resource dan klien.

  • Analisis permintaan LIST dari API Server ke etcd untuk mengoptimalkan perilaku klien API Server.

Anomali metrik umum

Gunakan bagian berikut untuk menentukan apakah anomali metrik bersifat wajar.

Read/write request success rate

Deskripsi

Normal

Abnormal

Description

read request success rate dan write request success rate seharusnya mendekati 100%.

read request success rate dan write request success rate secara konsisten di bawah 90%.

Banyak permintaan mengembalikan kode status non-2xx.

Solusi yang direkomendasikan

Periksa panel Non-2xx Read Request QPS dan Non-2xx Write Request QPS untuk mengidentifikasi jenis permintaan dan resource yang menyebabkan respons non-2xx. Misalnya, GET/deployment 404 berarti permintaan GET Deployment mengembalikan 404, sehingga menurunkan read request success rate. Tentukan apakah hal ini bersifat wajar.

GET/LIST read and write request latency

Deskripsi

Normal

Abnormal

Description

GET read request latency P[0.9], LIST read request latency P[0.9], dan write request latency P[0.9] berkorelasi dengan ukuran kluster dan jumlah resource yang diakses. Tidak ada ambang batas tetap — latensi dapat diterima selama tidak memengaruhi aplikasi Anda. Biasanya, GET read request latency P[0.9] dan write request latency P[0.9] di bawah 1 detik, serta LIST read request latency P[0.9] di bawah 5 detik dianggap normal.

  • GET read request latency P[0.9] atau write request latency P[0.9] melebihi 1 detik.

  • LIST read request latency P[0.9] melebihi 5 detik.

Jika latensi permintaan tinggi, Anda harus menyingkirkan faktor seperti jumlah resource kluster yang besar atau panggilan webhook yang lambat.

Solusi yang direkomendasikan

  • Tinjau dasbor untuk mengidentifikasi jenis permintaan dan resource dengan latensi tinggi pada metrik GET read request latency P[0.9], LIST read request latency P[0.9], dan write request latency P[0.9], lalu ambil tindakan korektif.

    Metrik apiserver_request_duration_seconds_bucket dibatasi hingga 60 detik — permintaan yang melebihi 60 detik dicatat sebagai 60 detik. Permintaan koneksi persisten, seperti POST pod/exec atau pembacaan log, biasanya melebihi ambang ini dan dapat diabaikan saat troubleshooting.

  • Periksa latensi admission webhook untuk menentukan apakah webhook yang lambat menyebabkan latensi permintaan API server yang tinggi.

In-flight requests and dropped requests

Deskripsi

Normal

Abnormal

Description

Umumnya, number of read requests processed dan number of write requests processed di bawah 100, dan request limit rate bernilai 0.

  • number of read requests processed atau number of write requests processed melebihi 100.

  • request limit rate lebih besar dari 0.

Jika antrean permintaan memiliki backlog, singkirkan faktor seperti lonjakan permintaan mendadak atau webhook yang lambat. Jika kapasitas antrean terlampaui, API server melakukan throttling terhadap permintaan, menyebabkan request limit rate naik di atas 0 dan memengaruhi stabilitas kluster.

Solusi yang direkomendasikan

  • Tinjau dasbor QPS dan latensi serta analisis klien untuk mengidentifikasi permintaan terbanyak berdasarkan volume. Jika permintaan berasal dari aplikasi Anda, tentukan apakah Anda dapat mengurangi volumenya.

  • Periksa latensi admission webhook untuk menentukan apakah webhook yang lambat menyebabkan pemrosesan permintaan API server yang lambat.

Latensi admission webhook

Deskripsi

Normal

Abnormal

Description

admission webhook latency seharusnya kurang dari 0,5 detik.

admission webhook latency terus-menerus melebihi 0,5 detik.

Respons webhook yang lambat memengaruhi latensi respons API server.

Solusi yang direkomendasikan

Tinjau log webhook untuk menentukan apakah perilaku tersebut bersifat wajar. Copot pemasangan webhook yang tidak lagi diperlukan.

Referensi