Cet article fournit des exemples de requĂȘtes Prometheus populaires pour la surveillance de Kubernetes .
Si vous dĂ©butez avec Prometheus et que vous rencontrez des difficultĂ©s pour crĂ©er des requĂȘtes PromQL, nous vous recommandons de vous reporter au Guide de dĂ©marrage PromQL . Nous allons sauter la thĂ©orie ici et passer directement Ă la pratique.
La notation est basée sur l'expérience de Sysdig , qui accompagne quotidiennement des centaines de clients dans la mise en place du suivi de leurs clusters :
1. Le nombre de pods dans chaque espace de noms
Les informations sur le nombre de pods dans chaque espace de noms peuvent ĂȘtre utiles pour dĂ©tecter des anomalies dans le cluster, par exemple, trop de pods dans un espace de noms distinct :
sum by (namespace) (kube_pod_info)
2. Le nombre de conteneurs sans limites de CPU dans chaque espace de noms
Il est important de dĂ©finir correctement les limites pour optimiser les performances des applications et des clusters . Cette requĂȘte trouve des conteneurs sans limites de processeur :
count by (namespace)(sum by (namespace,pod,container)(kube_pod_container_info{container!=""}) unless sum by (namespace,pod,container)(kube_pod_container_resource_limits{resource="cpu"}))
3. pods namespace
pods, . , pod CrashLoopBackOff:
sum by (namespace)(changes(kube_pod_status_ready{condition="true"}[5m]))
4. Pods Not Ready namespace
pods, . :
sum by (namespace)(kube_pod_status_ready{condition="false"})
5. â
sum(kube_pod_container_resource_limits{resource="cpu"}) - sum(kube_node_status_capacity_cpu_cores)
6. â
Memory limits , PodEviction, . PromQL:
sum(kube_pod_container_resource_limits{resource="memory"}) - sum(kube_node_status_capacity_memory_bytes)
7.
:
sum(kube_node_status_condition{condition="Ready", status="true"}==1)
8. ,
, Ready Not Ready:
sum(changes(kube_node_status_condition{status="true",condition="Ready"}[15m])) by (node) > 2
9.
Kubernetes â . , :
sum((rate(container_cpu_usage_seconds_total{container!="POD",container!=""}[30m]) - on (namespace,pod,container) group_left avg by (namespace,pod,container)(kube_pod_container_resource_requests{resource="cpu"})) * -1 >0)
10.
, :
sum((container_memory_usage_bytes{container!="POD",container!=""} - on (namespace,pod,container) avg by (namespace,pod,container)(kube_pod_container_resource_requests{resource="memory"})) * -1 >0 ) / (1024*1024*1024)
?
PromQL, , PromQL.
Awesome Prometheus alerts collection. Prometheus alert rules, , PromQL Prometheus.