pod健康检查promql:pod 处于非ready告警,增加pod所在的节点ip

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:])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值