Pau*_*anu 4 docker grafana kubernetes prometheus
对于一个看似简单的问题,我遇到了一些麻烦。
我的场景:我有一个可以随时运行的 k8s 作业(不是 cronJob),它又创建一个 pod 来执行某些任务。一旦 pod 执行了它的任务,它就完成了,从而完成了产生它的工作。
我想要的:如果 pod 处于运行状态超过 1 小时,我想通过 prometheus 发出警报,表明该任务花费了太多时间。我有兴趣仅在附图中箭头所示的持续时间超过 1 小时时发出警报。当 Pod 不再运行时也不会触发警报。
我尝试过的:以下普罗米修斯指标,它是一个即时向量,可以是 0(pod 未运行)或 1(pod 正在运行):
kube_pod_status_ready{condition="true",pod_name=~".+POD-A.+"}
Run Code Online (Sandbox Code Playgroud)
我想我尝试使用此指标和以下公式来计算该指标在一天中为一的持续时间
(1 - avg_over_time(kube_pod_status_ready{condition="true",pod_name=~".+POD-A.+"}[1d])) * 86400 > 3600
Run Code Online (Sandbox Code Playgroud)
由于这些 Pod 来来去去,并不总是存在,所以我遇到了以下问题:
感谢@HelloWorld的建议,我认为这将是实现我想要的最佳解决方案:
(sum_over_time(kube_pod_status_ready{condition="true",pod_name=~".+POD-A.+"}[1d:1s]) > 3600) and (kube_pod_status_ready{condition="true",pod_name=~".+POD-A.+"}==1)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3156 次 |
| 最近记录: |