pod健康检查promql:pod 处于非ready
2021/12/11 23:23:42
本文主要是介绍pod健康检查promql:pod 处于非ready,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
pod 处于running状态并不代表可以正常接收请求,只有当pod对应的status中condition为true才代表能正常接收请求。
以下表达式是在1分钟之内pod处于非ready状态的promql
min_over_time(sum by (namespace, pod, prometheus_replica, instance, node) (kube_pod_status_ready{condition!='true', pod =~ '^<.svcName>.*', namespace='<.namespace>'} == 1)[1m:])
根据实际情况替换其中的占位符<.svcName>和<.namespace>。
这里的pod标签取的并不是pod名称,而是pod名称前缀来匹配的,通过正则表达式^<.svcName>.*可以满足当pod有多个副本的情况。
分组的时候如果有多个prometheus副本,则需要加上prometheus_replica,否则算出来的值是prometheus副本数 * 实际值。
min_over_time,需要搭配时间[1m:]使用,表示在1分钟之内,pod处于非ready状态的最小值为1,就说明pod已经不健康了。
如果想要知道pod所在的宿主机信息,比如pod所在的宿主机ip或者节点名称,则可以搭配使用`kube_pod_info`。
完整的promql为:
min_over_time(sum by(namespace,host_ip,pod_ip,instance,pod,node,prometheus_replica)( kube_pod_info{created_by_kind!="Job", namespace = '<.namespace>', pod =~ '^<.svcName>.*'} AND ON (pod, namespace) kube_pod_status_ready{namespace = '<.namespace>', pod =~ '^<.svcName>.*',condition!="true"} == 1)[1m:])
这篇关于pod健康检查promql:pod 处于非ready的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-10RabbitMQ教程:初学者指南
- 2024-09-10RabbitMQ教程:初学者指南
- 2024-09-01Kafka事务实现原理
- 2024-08-09KubeSphere 部署 Kafka 集群实战指南
- 2024-07-24百行代码实现 Kafka 运行在 S3 之上
- 2024-07-18如何使用观测云监测 AutoMQ 集群状态
- 2024-07-18活动回顾 | AutoMQ 联合 GreptimeDB 共同探讨新能源汽车数据基础设施
- 2024-07-15AutoMQ vs Kafka: 来自小红书的独立深度评测与对比
- 2024-07-15AutoMQ 生态集成 Kafdrop-ui
- 2024-07-15AutoMQ 与蚂蚁数科达成战略合作