如何筛选每小时仅因Error和OOMKilled导致的Pod重启次数?
按命名空间统计过去一小时错误引发的Pod重启次数
要统计仅由Error或OOMKilled导致的Pod重启次数,你可以用PromQL的关联操作结合增量计算来实现,具体语句如下:
sum by (namespace) ( increase(kube_pod_container_status_restarts_total[1h]) * on(pod, container, namespace) group_left(terminated_reason) (kube_pod_container_status_terminated_reason{terminated_reason=~"Error|OOMKilled"} == 1) )
关键逻辑说明:
increase(kube_pod_container_status_restarts_total[1h]):计算每个容器过去1小时内的重启次数增量kube_pod_container_status_terminated_reason{terminated_reason=~"Error|OOMKilled"} == 1:筛选出终止原因是Error或OOMKilled的容器,该指标值为1代表对应终止原因生效* on(pod, container, namespace) group_left(terminated_reason):通过pod、container、namespace三个标签关联两个指标,group_left确保保留重启次数指标的维度,同时匹配上终止原因的筛选条件sum by (namespace):最终按命名空间汇总所有符合条件的重启次数
如果需要查看每个Pod级别的错误重启明细,去掉外层的sum by (namespace)即可:
increase(kube_pod_container_status_restarts_total[1h]) * on(pod, container, namespace) group_left(terminated_reason) (kube_pod_container_status_terminated_reason{terminated_reason=~"Error|OOMKilled"} == 1)
内容的提问来源于stack exchange,提问作者Robert123
相关产品推荐
相关产品推荐

