Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:kube-apiserver: Metrics and dashboard

Dernière mise à jour :Aug 11, 2026

Surveillez l'état de santé de kube-apiserver dans les clusters ACK à l'aide des métriques, des tableaux de bord et du diagnostic d'anomalies.

Remarques sur l'utilisation

Accès au tableau de bord

Consultez la rubrique Afficher les tableaux de bord de surveillance des composants du plan de contrôle du cluster.

Métriques

Le tableau suivant répertorie les métriques de kube-apiserver.

Métrique

Type

Description

apiserver_request_duration_seconds_bucket

Histogram

Distribution de la latence des requêtes envoyées par les clients vers API Server.

Dimensions :

  • Verb : type de requête, par exemple GET, POST, PUT et DELETE.

  • Group : groupe d'API, un ensemble d'interfaces connexes permettant d'étendre l'API Kubernetes.

  • Version : version de l'API, par exemple v1 et v1beta1.

  • Resource : type de ressource cible, par exemple Pod, Service et Lease.

  • Subresource : sous-ressource de la ressource cible, par exemple les détails du pod et les journaux du pod.

  • Scope : étendue de la requête, par exemple au niveau du namespace ou du cluster.

  • Component : composant demandeur, par exemple kube-controller-manager, kube-scheduler ou cloud-controller-manager.

  • Client : client demandeur, qu'il s'agisse d'un composant interne ou d'un service externe.

Seuils des buckets pour l'histogramme 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}. Unité : secondes.

apiserver_request_total

Counter

Nombre total de requêtes adressées à API Server, ventilé par Verb, Group, Version, Resource, Scope, Component, HTTP contentType, code HTTP (code d'état de réponse) et Client.

apiserver_request_no_resourceversion_list_total

Counter

Requêtes LIST adressées à API Server sans le paramètre resourceVersion. Cette métrique permet de détecter les requêtes LIST excessives avec lecture de quorum et d'identifier les clients sources afin d'optimiser les performances. Ventilation par Group, Version, Resource, Scope et Client.

apiserver_current_inflight_requests

Gauge

Requêtes actuellement traitées par API Server, réparties en deux types :

  • ReadOnly : requêtes qui ne modifient pas l'état du cluster, comme la liste des pods ou la consultation du statut des nœuds.

  • Mutating : requêtes qui modifient l'état du cluster, comme la création d'un pod ou la mise à jour d'un Service.

apiserver_dropped_requests_total

Counter

Requêtes rejetées par API Server lors de la limitation de débit, renvoyant un code d'état HTTP 429 'Try again later'.

etcd_request_duration_seconds_bucket

Histogram

Distribution de la latence des requêtes envoyées de API Server vers etcd.

Ventilation par opération et type d'objet.

Seuils des buckets : {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}. Unité : secondes.

apiserver_flowcontrol_request_concurrency_limit

Gauge

Nombre maximal de requêtes concurrentes qu'une file d'attente prioritaire peut traiter dans le cadre de la limitation de débit APF (API Priority and Fairness). Cette métrique indique comment API Server alloue la capacité entre les files d'attente prioritaires pour hiérarchiser les requêtes.

Obsolète depuis Kubernetes 1.30 et supprimé dans la version 1.31. Pour les clusters exécutant Kubernetes 1.31 ou une version ultérieure, utilisez la métrique apiserver_flowcontrol_nominal_limit_seats.

apiserver_flowcontrol_current_executing_requests

Gauge

Requêtes actuellement en cours d'exécution dans une file d'attente prioritaire, représentant la charge concurrente réelle. Surveillez cette métrique conjointement avec la limite de concurrence pour déterminer si API Server approche de la saturation.

apiserver_flowcontrol_current_inqueue_requests

Gauge

Requêtes en attente dans une file d'attente prioritaire. Une augmentation du backlog indique une pression du trafic sur API Server et une possible surcharge de la file d'attente.

apiserver_flowcontrol_nominal_limit_seats

Gauge

Nombre nominal maximal de slots concurrents dans API Server sous APF, indiquant l'allocation de capacité entre les files d'attente prioritaires. Cette métrique montre comment API Server distribue les ressources via les politiques de contrôle du trafic. Unité : slots.

apiserver_flowcontrol_current_limit_seats

Gauge

Limite de concurrence APF actuelle en slots pour une file d'attente prioritaire — nombre maximal de slots concurrents autorisés après ajustements dynamiques basés sur la charge système.

Contrairement à nominal_limit_seats, cette valeur peut être affectée par les politiques globales de contrôle du trafic.

apiserver_flowcontrol_current_executing_seats

Gauge

Slots consommés par les requêtes actuellement en cours d'exécution dans une file d'attente prioritaire, reflétant la charge réelle.

Si current_executing_seats se rapproche de current_limit_seats, les ressources concurrentes de la file d'attente sont presque épuisées.

Pour augmenter la capacité, augmentez les paramètres maxMutatingRequestsInflight et maxRequestsInflight pour API Server. Consultez la rubrique Personnaliser les paramètres des composants du plan de contrôle dans les clusters ACK Pro.

apiserver_flowcontrol_current_inqueue_seats

Gauge

Slots occupés par les requêtes en attente dans une file d'attente prioritaire, représentant le backlog en attente.

apiserver_flowcontrol_request_execution_seconds_bucket

Histogram

Temps d'exécution d'une requête, du début à la fin.

Les seuils des buckets sont {0, 0.005, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 15, 30}. Unité : secondes.

apiserver_flowcontrol_request_wait_duration_seconds_bucket

Histogram

Temps d'attente d'une requête dans une file avant le début de l'exécution.

Les seuils des buckets sont {0, 0.005, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 15, 30}. Unité : secondes.

apiserver_flowcontrol_dispatched_requests_total

Counter

Nombre total de requêtes correctement distribuées par API Server sous APF.

apiserver_flowcontrol_rejected_requests_total

Counter

Requêtes rejetées car elles dépassent la limite de concurrence ou la capacité de la file d'attente.

apiserver_admission_controller_admission_duration_seconds_bucket

Histogram

Latence de traitement d'un contrôleur d'admission. Étiquettes : nom du contrôleur, opération (par exemple CREATE, UPDATE, CONNECT), ressource API, type d'opération (validate ou admit) et statut de rejet (true ou false).

Seuils des buckets : {0.005, 0.025, 0.1, 0.5, 2.5}. Unité : secondes.

apiserver_admission_webhook_admission_duration_seconds_bucket

Histogram

Latence de traitement d'un webhook d'admission. Étiquettes : nom du contrôleur, opération (par exemple CREATE, UPDATE, CONNECT), ressource API, type d'opération (par exemple validate ou admit) et statut de rejet (true ou false).

Seuils des buckets : {0.005, 0.025, 0.1, 0.5, 2.5}. Unité : secondes.

apiserver_admission_webhook_admission_duration_seconds_count

Counter

Requêtes traitées par un webhook d'admission. Étiquettes : nom du contrôleur, opération (par exemple CREATE, UPDATE, CONNECT), ressource API, type d'opération (validate ou admit) et statut de rejet (true ou false).

cpu_utilization_core

Gauge

Nombre de cœurs CPU utilisés. Unité : cœur.

memory_utilization_byte

Gauge

Quantité de mémoire utilisée. Unité : octet.

resource_utilization_level

Gauge

Niveau d'utilisation des ressources.

  • resource : Type de ressource. Valeurs valides : cpu et memory.

  • utilization_level : Niveau d'utilisation. Valeurs valides : high (utilisation ≥ 80 %) et normal (utilisation < 80 %).

  • container : Conteneur cible. Valeurs valides : kube-apiserver, kube-scheduler, kube-controller-manager, cloud-controller-manager et etcd.

up

Gauge

Indique si le service est disponible.

  • 1 : Le service est disponible.

  • 0 : Le service n'est pas disponible.

Remarque

Les métriques d'utilisation des ressources suivantes ne sont plus utilisées. Supprimez toutes les alertes ou règles de surveillance qui reposent sur ces métriques :

  • cpu_utilization_ratio : Utilisation du CPU.

  • memory_utilization_ratio : Utilisation de la mémoire.

Tableau de bord

Panneaux du tableau de bord dans l'ordre recommandé :

  1. Métriques clés : Obtenez un aperçu rapide des métriques principales du cluster.

  2. Vue d'ensemble : Analysez la latence de réponse de API Server, le nombre de requêtes en cours de traitement et les événements de limitation de débit.

  3. Analyse des ressources : Examinez les niveaux d'utilisation des ressources des composants gérés.

  4. QPS et latence : Effectuez une analyse approfondie et multidimensionnelle des requêtes par seconde (QPS) et du temps de réponse (RT).

  5. Limitation de débit APF : Utilisez les métriques APF pour analyser la distribution du trafic de requêtes de API Server, son état de limitation de débit et les goulots d'étranglement des performances du système.

  6. Contrôleurs d'admission et webhooks : Analysez les QPS et RT des contrôleurs d'admission et des webhooks.

  7. Analyse des clients : Effectuez une analyse multidimensionnelle des QPS par client.

Filtres

Configurez les paramètres Verb, Resource et Quantile pour les requêtes API Server, ainsi que l'intervalle PromQL au-dessus du tableau de bord.

Remarque

Un quantile de 0,9 (P90) affiche la valeur en dessous de laquelle se situent 90 % des échantillons d'histogramme, filtrant ainsi les valeurs aberrantes de longue traîne. Un quantile de 0,99 (P99) inclut les échantillons de longue traîne.

Filters

Sélectionnez la plage de temps et l'intervalle d'actualisation à l'aide de ces filtres.Filters 2

Métriques clés

Vue du tableau de bord100

Détails des métriques

|
**Nom**
|
**PromQL**
|
**Description**
| | --- | --- | --- | |
**API QPS**
|
sum(irate(apiserver_request_total[$interval]))
|
QPS total pour 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]))
|
Taux de réussite des requêtes en lecture pour 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]))
|
Taux de réussite des requêtes en écriture pour API Server.
| |
**Number of in-flight read requests**
|
sum(apiserver_current_inflight_requests{requestKind="readOnly"})
|
Requêtes en lecture actuellement traitées par API Server.
| |
**Number of in-flight write requests**
|
sum(apiserver_current_inflight_requests{requestKind="mutating"})
|
Requêtes en écriture actuellement traitées par API Server.
| |
**Request throttling rate**
|
sum(irate(apiserver_dropped_requests_total[$interval]))
|
Taux auquel la politique de limitation de débit d'API Server rejette les requêtes.


Pourcentage total de requêtes rejetées par la politique de limitation de débit de API server.
|

Vue d'ensemble

Vue du tableau de bord50

Détails des métriques

Nom

PromQL

Description

API QPS

histogram_quantile($quantile, sum(irate(apiserver_request_duration_seconds_bucket{verb="GET",resource!="",subresource!~"log|proxy"}[$interval])) by (pod, verb, resource, subresource, scope, le))

Temps de réponse des requêtes GET, ventilé par pod API Server, ressource et étendue.

Read request success rate

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

Temps de réponse des requêtes LIST, ventilé par pod API Server, ressource et étendue.

Write request success rate

histogram_quantile($quantile, sum(irate(apiserver_request_duration_seconds_bucket{verb!~"GET|WATCH|LIST|CONNECT"}[$interval])) by (cluster, pod_name, verb, resource, scope, le))

Temps de réponse des requêtes de modification, ventilé par pod API Server, verbe (à l'exception de GET, WATCH, LIST, CONNECT), ressource et étendue.

Number of in-flight read requests

apiserver_current_inflight_requests{request_kind="readOnly"}

Requêtes en lecture actuellement traitées par API Server.

Number of in-flight write requests

apiserver_current_inflight_requests{request_kind="mutating"}

Requêtes en écriture actuellement traitées par 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)

Taux de limitation des requêtes pour API Server. L'absence de données (No data) ou la valeur 0 indique qu'aucune limitation n'est appliquée.

Analyse des ressources

Vue du tableau de bord

image

Détails des métriques

Nom

PromQL

Description

GET read request latency

memory_utilization_byte{container="kube-apiserver"}

Utilisation de la mémoire par API Server. Unité : octets.

LIST read request latency

cpu_utilization_core{container="kube-apiserver"}*1000

Utilisation du CPU par API Server. Unité : millicœurs.

Write request latency

  • max by(resource)(apiserver_storage_objects)

  • max by(resource)(etcd_object_counts)

  • Pour les clusters ACK exécutant la version 1.22 ou ultérieure, le nom de la métrique est apiserver_storage_objects.

  • Pour les clusters ACK exécutant une version antérieure à 1.22, le nom de la métrique est etcd_object_counts.

Remarque

En raison de problèmes de compatibilité, les métriques apiserver_storage_objects et etcd_object_counts coexistent dans la version 1.22.

Niveau d'utilisation de la mémoire

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

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

  • Si resource_utilization_level{utilization_level="high",...} est égal à 1, le niveau d'utilisation des ressources du conteneur est supérieur ou égal à 80 %.

  • Si resource_utilization_level{utilization_level="normal",...} est égal à 1, le niveau d'utilisation des ressources du conteneur est inférieur à 80 %.

Niveau d'utilisation du CPU

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

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

QPS et latence

Vue du tableau de bord48

Détails des métriques

|
**Nom**
|
**PromQL**
|
**Description**
| | --- | --- | --- | |
**QPS analysis by verb**
|
sum(irate(apiserver_request_total{verb=~"$verb"}[$interval]))by(verb)
|
QPS des requêtes, ventilé par verbe.
| |
**QPS analysis by verb and resource**
|
sum(irate(apiserver_request_total{verb=~"$verb",resource=~"$resource"}[$interval]))by(verb,resource)
|
QPS des requêtes, ventilé par verbe et ressource.
| |
**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))
|
Latence des requêtes, ventilée par verbe.
| |
**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))
|
Latence des requêtes, ventilée par verbe et ressource.
| |
**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 des requêtes en lecture ayant renvoyé un code d'état non 2xx, tel que 4xx ou 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 des requêtes en écriture ayant renvoyé un code d'état non 2xx, tel que 4xx ou 5xx.
| |
**API Server to etcd request latency**
|
histogram_quantile($quantile, sum(irate(etcd_request_duration_seconds_bucket[$interval])) by (le,operation,type,instance))
|
Latence des requêtes envoyées de API Server vers etcd.
|

Limitation de débit APF

Remarque

La surveillance des métriques de limitation de débit APF fait l'objet d'un déploiement canari.

  • Les métriques liées à APF sont disponibles uniquement pour les clusters ACK exécutant Kubernetes 1.20 ou une version ultérieure. Pour mettre à niveau votre cluster, consultez la rubrique Mettre à niveau manuellement un cluster ACK.

  • le tableau de bord des métriques APF nécessite également la mise à niveau des composants suivants. Consultez la rubrique Mettre à niveau les composants de surveillance.

    • Composant de surveillance du cluster de conteneurs : version 0.06 ou ultérieure.

    • Composant ack-arms-prometheus : version v1.1.31 ou ultérieure.

    • Sonde managée : version v1.1.31 ou ultérieure.

Vue du tableau de bord

image

image

Détails des métriques

Certaines métriques sont ventilées par PL, Instance et FS.

  • PL : Priority Level (niveau de priorité).

  • Instance : instance API Server.

  • FS : Flow Schema (schéma de flux).

Pour plus de détails sur APF et ses dimensions, consultez la documentation Kubernetes API Priority and Fairness .

Nom

PromQL

Description

Number of in-flight read requests

sum by(priority_level) (apiserver_flowcontrol_request_concurrency_limit)

Limite de concurrence des requêtes APF, ventilée par PL ou Instance + PL. Nombre théorique maximal de requêtes concurrentes par file d'attente prioritaire.

apiserver_flowcontrol_request_concurrency_limit est obsolète depuis Kubernetes 1.30 et supprimé dans la version 1.31. Pour les clusters exécutant la version 1.31 ou ultérieure, utilisez apiserver_flowcontrol_nominal_limit_seats à la place.

Number of in-flight write requests

sum by(instance,priority_level) (apiserver_flowcontrol_request_concurrency_limit)

Request throttling rate

sum by(flow_schema,priority_level) (apiserver_flowcontrol_current_executing_requests)

Requêtes actuellement en cours d'exécution sous APF, ventilées par FS + PL ou Instance + FS + PL.

Memory usage

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

CPU usage

sum by(flow_schema,priority_level) (apiserver_flowcontrol_current_inqueue_requests)

Requêtes en attente dans la file d'attente, ventilées par FS + PL ou Instance + FS + PL.

Resource object count

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

QPS analysis by verb

sum by(instance,priority_level) (apiserver_flowcontrol_nominal_limit_seats)

Métriques de slots APF par Instance + PL :

  • Slots de limite nominale : concurrence maximale nominale en slots par file d'attente prioritaire.

  • Slots de limite actuelle : nombre maximal de slots concurrents après ajustements dynamiques par file d'attente prioritaire.

  • Slots en cours d'exécution : slots consommés par les requêtes actuellement en cours d'exécution par file d'attente prioritaire.

  • Slots en file d'attente : slots consommés par les requêtes en attente par file d'attente prioritaire.

QPS analysis by verb and resource

sum by(instance,priority_level) (apiserver_flowcontrol_current_limit_seats)

Request latency analysis by verb

sum by(instance,priority_level) (apiserver_flowcontrol_current_executing_seats)

Request latency analysis by verb and resource

sum by(instance,priority_level) (apiserver_flowcontrol_current_inqueue_seats)

QPS of read requests with non-2xx responses

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

Temps écoulé entre le début et la fin de l'exécution de la requête.

QPS of write requests with non-2xx responses

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

Temps d'attente d'une requête dans la file d'attente avant son exécution.

API Server to etcd request latency

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

QPS des requêtes distribuées avec succès.

APF request concurrency limit (by PL)

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

QPS des requêtes rejetées car elles dépassent la limite de concurrence ou la capacité de la file d'attente.

Contrôleurs d'admission et webhooks

Vue du tableau de bord47

Détails des métriques

|
**Nom**
|
**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])) )
|
Nom, opération, statut de rejet et temps d'exécution des contrôleurs d'admission de type `admit`.


Buckets d'histogramme :`{0.005, 0.025, 0.1, 0.5, 2.5}`. Unité : secondes.
| |
**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])) )
|
Nom, opération, statut de rejet et temps d'exécution des contrôleurs d'admission de type `validate`.


Buckets d'histogramme :`{0.005, 0.025, 0.1, 0.5, 2.5}`. Unité : secondes.
| |
**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])) )
|
Nom, opération, statut de rejet et temps d'exécution des webhooks de type `admit`.


Buckets d'histogramme :`{0.005, 0.025, 0.1, 0.5, 2.5}`. Unité : secondes.
| |
**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])) )
|
Nom, opération, statut de rejet et temps d'exécution des webhooks de type `validating`.


Buckets d'histogramme :`{0.005, 0.025, 0.1, 0.5, 2.5}`. Unité : secondes.
| |
**Admission webhook request QPS**
|
sum(irate(apiserver_admission_webhook_admission_duration_seconds_count[$interval]))by(name,operation,type,rejected)
|
QPS des requêtes de webhooks d'admission.
|

Analyse des clients

Vue du tableau de bord45

Détails des métriques

Nom

PromQL

Description

APF request concurrency limit (by Instance + PL)

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

QPS par client, indiquant quels clients accèdent à API Server.

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

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

QPS des requêtes API Server, ventilé par verbe, ressource et client.

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

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

  • QPS des requêtes LIST n'incluant pas le champ resourceVersion, ventilé par ressource et client.

  • Analysez les requêtes LIST envoyées de API Server vers etcd pour optimiser le comportement des clients API Server.














































































































































Anomalies courantes des métriques

Utilisez les sections suivantes pour déterminer si les anomalies de métriques sont attendues.

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

Description

|
**Normal**
|
**Anormal**
|
**Description**
| | --- | --- | --- | |
Le **read request success rate** et le **write request success rate** doivent être proches de 100 %.
|
Le **read request success rate** et le **write request success rate** sont constamment inférieurs à 90 %.
|
De nombreuses requêtes renvoient des codes d'état non 2xx.
|

Solution recommandée

Vérifiez les panneaux Number of current APF in-queue requests (by Instance + FS + PL) et APF nominal limit seats pour identifier les types de requêtes et les ressources à l'origine des réponses non 2xx. Par exemple, APF current limit seats signifie que les requêtes GET Deployment renvoient une erreur 404, ce qui réduit le APF current executing seats. Déterminez si ce comportement est attendu.

APF current in-queue seats

Description

Normal

Anormal

Description

Les métriques APF request execution time, APF request wait time et QPS of successfully dispatched APF requests dépendent de la taille du cluster et du nombre de ressources accessibles. Il n'existe pas de seuil fixe : la latence est acceptable tant qu'elle n'affecte pas vos applications. En règle générale, les valeurs QPS of rejected APF requests et Admission controller latency [admit] inférieures à 1 seconde, ainsi que Admission controller latency [validate] inférieure à 5 secondes, sont normales.

  • La métrique Admission webhook latency [admit] ou Admission webhook latency [validating] dépasse 1 seconde.

  • La métrique Admission webhook request QPS dépasse 5 secondes.

Si la latence des requêtes est élevée, vous devez exclure des facteurs tels qu'un grand nombre de ressources dans le cluster ou des appels de webhooks lents.

Solution recommandée

  • Examinez le tableau de bord pour identifier les types de requêtes et les ressources présentant une latence élevée dans les métriques QPS analysis by client, QPS analysis by verb, resource, and client et QPS of LIST requests without resourceVersion, puis prenez les mesures correctives appropriées.

    La métrique apiserver_request_duration_seconds_bucket plafonne à 60 secondes — les requêtes dépassant 60 secondes sont enregistrées comme valant 60 secondes. Les requêtes utilisant des connexions persistantes, telles que POST pod/exec ou la lecture des journaux, dépassent généralement ce seuil et peuvent être ignorées lors du dépannage.

  • Vérifiez la rubrique latence du webhook d'admission pour déterminer si des webhooks lents entraînent une latence élevée des requêtes API server.

Read/write request success rate

Description

Normal

Anormal

Description

En règle générale, le read request success rate et le write request success rate sont inférieurs à 100, et le read request success rate est de 0.

  • Le write request success rate ou le Non-2xx Read Request QPS dépasse 100.

  • Le Non-2xx Write Request QPS est supérieur à 0.

Si la file d'attente des requêtes présente un backlog, excluez des facteurs tels qu'une augmentation soudaine des requêtes ou des webhooks lents. Si la capacité de la file d'attente est dépassée, API server applique une limitation de débit, ce qui entraîne une augmentation du GET/deployment 404 au-dessus de 0 et affecte la stabilité du cluster.

Solution recommandée

  • Examinez les tableaux de bord QPS et latence et analyse des clients pour identifier les requêtes les plus volumineuses. Si les requêtes proviennent de vos applications, déterminez si vous pouvez en réduire le volume.

  • Vérifiez la rubrique latence du webhook d'admission pour déterminer si des webhooks lents ralentissent le traitement des requêtes API server.

Latence du webhook d'admission

Description

|
**Normal**
|
**Anormal**
|
**Description**
| | --- | --- | --- | |
La **admission webhook latency** doit être inférieure à 0,5 seconde.
|
La **admission webhook latency** dépasse constamment 0,5 seconde.
|
Des réponses lentes des webhooks affectent la latence de réponse de API server.
|

Solution recommandée

Examinez les journaux des webhooks pour déterminer si le comportement est attendu. Désinstallez les webhooks qui ne sont plus nécessaires.

























Références