全部产品
Search
文档中心

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

更新时间:Nov 11, 2025

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:

  • Verb: Jenis permintaan, seperti GET, POST, PUT, atau DELETE.

  • Group: Grup API. Grup API adalah kumpulan operasi API terkait yang digunakan untuk memperluas API Kubernetes.

  • Version: Versi API, seperti v1 atau v1beta1.

  • Resource: Jenis sumber daya dari permintaan, seperti pod, service, atau lease.

  • Subresource: Subsumber daya dari suatu sumber daya, seperti detail pod atau log pod.

  • Scope: Cakupan permintaan, seperti sumber daya berbasis namespace atau sumber daya berbasis kluster.

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

  • Client: Klien yang memulai permintaan. Klien dapat berupa komponen internal atau layanan eksternal.

Ambang batas bucket untuk histogram API Server adalah {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}. Satuannya adalah detik.

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 resourceVersion dikonfigurasi. Mengevaluasi permintaan LIST jenis Quorum Read dapat membantu menemukan permintaan berlebihan jenis ini dan klien yang memulainya. Hal ini membantu Anda mengoptimalkan perilaku permintaan klien dan meningkatkan kinerja kluster. Dimensi permintaan mencakup Group, Version, Resource, Scope, dan Client.

apiserver_current_inflight_requests

Gauge

Jumlah permintaan yang sedang diproses oleh API Server. Permintaan tersebut mencakup dua jenis:

  • ReadOnly: Permintaan ini tidak mengubah status kluster. Biasanya merupakan operasi baca, seperti mendapatkan daftar pod atau menanyakan status node.

  • Mutating: Permintaan ini mengubah status kluster. Biasanya merupakan operasi untuk membuat, memperbarui, atau menghapus sumber daya, seperti membuat pod atau memperbarui konfigurasi layanan.

apiserver_dropped_requests_total

Counter

Jumlah permintaan yang secara aktif dijatuhkan oleh API Server selama pengendalian aliran. Nilai kembali HTTP-nya adalah 429 'Coba lagi nanti'.

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 {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}. Satuannya adalah detik.

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 {0.005, 0.025, 0.1, 0.5, 2.5}. Satuannya adalah detik.

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 {0.005, 0.025, 0.1, 0.5, 2.5}. Satuannya adalah detik.

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.

  • 1: Layanan tersedia.

  • 0: Layanan tidak tersedia.

Catatan

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:

  1. Metrik utama: Tinjau dengan cepat metrik utama kluster.

  2. Ikhtisar: Analisis waktu respons API Server, jumlah permintaan yang sedang diproses, dan apakah terjadi pengendalian aliran.

  3. Analisis sumber daya: Lihat penggunaan sumber daya komponen terkelola.

  4. QPS dan latensi: Lakukan analisis mendalam terhadap QPS dan waktu respons (RT) dari berbagai dimensi.

  5. 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.

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

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

Catatan

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.筛选框2

Key Metrics

Tampilan observabilitas100

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 observabilitas50

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. Tidak ada data atau 0 menunjukkan bahwa tidak terjadi pengendalian aliran.

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

  • max by(resource)(apiserver_storage_objects)

  • max by(resource)(etcd_object_counts)

  • Jika versi ACK adalah 1.22 atau lebih baru, nama metriknya adalah apiserver_storage_objects.

  • Jika versi ACK lebih lama dari 1.22, nama metriknya adalah etcd_object_counts.

Catatan

Karena masalah kompatibilitas, baik apiserver_storage_objects maupun etcd_object_counts ada di versi 1.22.

QPS And Latency

Tampilan observabilitas48

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

Catatan

Pemantauan metrik pengendalian aliran APF sedang dalam rilis bertahap.

Tampilan observabilitas

image

image

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:

  • Batas konkurensi nominal: Batas kursi konkuren maksimum nominal untuk antrian dengan prioritas berbeda.

  • Batas konkurensi saat ini: Jumlah maksimum kursi konkuren yang diizinkan dalam antrian dengan prioritas berbeda setelah penyesuaian dinamis.

  • Eksekusi: Jumlah kursi yang sesuai dengan permintaan yang sedang dieksekusi dalam antrian dengan prioritas berbeda.

  • Dalam antrian: Jumlah kursi yang sesuai dengan permintaan yang menunggu dalam antrian dengan prioritas berbeda.

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 observabilitas47

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 {0.005, 0.025, 0.1, 0.5, 2.5}. Satuannya adalah 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 yang digunakan.

Ambang batas bucket untuk metrik ini adalah {0.005, 0.025, 0.1, 0.5, 2.5}. Satuannya adalah 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 yang digunakan.

Ambang batas bucket untuk metrik ini adalah {0.005, 0.025, 0.1, 0.5, 2.5}. Satuannya adalah 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 yang digunakan.

Ambang batas bucket untuk metrik ini adalah {0.005, 0.025, 0.1, 0.5, 2.5}. Satuannya adalah detik.

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 observabilitas45

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)

  • Menganalisis QPS permintaan LIST tanpa field resourceVersion berdasarkan Verb, Resource, dan Klien.

  • Anda dapat menganalisis beberapa permintaan LIST ke etcd di antara semua permintaan LIST ke API Server. Hal ini membantu Anda mengidentifikasi dan mengoptimalkan perilaku LIST klien API Server.

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.

  • GET Read Request Latency dan Write Request Latency lebih besar dari 1 detik.

  • LIST Read Request Latency lebih besar dari 5 detik.

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_bucket adalah 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.

  • Number Of In-flight Read Requests dan Number Of In-flight Write Requests lebih dari 100.

  • Request Throttling Rate lebih dari 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