Las 10 consultas principales de PromQL para monitorear Kubernetes

Este artículo proporciona ejemplos de consultas populares de Prometheus para monitorear Kubernetes .





Si recién está comenzando con Prometheus y tiene dificultades para crear consultas PromQL, le recomendamos que consulte la Guía de inicio de PromQL . Nos saltaremos la teoría aquí y pasaremos directamente a la práctica.





La calificación se basa en la experiencia de Sysdig , que ayuda a cientos de clientes a diario a configurar el monitoreo de sus clústeres:





1. La cantidad de pods en cada espacio de nombres

La información sobre la cantidad de pods en cada espacio de nombres puede ser útil para detectar anomalías en el clúster, por ejemplo, demasiados pods en un espacio de nombres separado:





sum by (namespace) (kube_pod_info)
      
      



2. La cantidad de contenedores sin límites de CPU en cada espacio de nombres.

Es importante establecer límites correctamente para optimizar el rendimiento de la aplicación y el clúster . Esta consulta encuentra contenedores sin límites de CPU:





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

, CPU limits . . :





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.








All Articles