有没有办法查询Prometheus来统计时间范围内失败的作业?

问题描述 投票:0回答:3

为 cron 作业收集了几个指标,不幸的是我不知道如何正确使用它们。

我想使用

kube_job_status_failed == 1
指标。我可以使用
job=~“+.myjobname.+“
的正则表达式来聚合 cron 作业的所有失败尝试。

这就是我陷入困境的地方。有没有办法计算给定时间段内不同标签的数量(=失败尝试的次数)?

或者我可以以相反的方式使用指标来检查给定时间段内是否有

kube_job_status_succeeded{job=~“+.myjobname+.“}==1

我觉得我已经很接近解决这个问题了,但我就是无法理解它。

编辑:添加图片This shows that there clearly are several succeded jobs over time, I just have no clue on how to count them

kubernetes prometheus grafana
3个回答
1
投票

这应该为您提供 1 小时内与作业名称匹配的失败作业数量:

count_over_time(kube_job_status_failed{job=~“+.myjobname+.“}==1 [1h])

0
投票

我自己搜索了这个答案,发现

offset
符合我的目的。

kube_job_failed{job_name=~"^your_job_name.*", namespace="your_teamspace",} - kube_job_failed{job_name=~"^your_job_name.*", namespace="your_teamspace",} offset 6h > 2

我需要 6 小时,而不是 1 小时,并且在此时间范围内失败的作业数量大于 2。


0
投票

好吧,大家,这是一种有点粗略的方法,您可以将其推广到只想计算初始值的仪表:

sum(kube_job_failed{condition="true"} unless kube_job_failed offset 1m)

这是假设刮擦间隔为 1m。如果您每 30 秒抓取一次 kube-state-metrics,这将导致双重计数。其工作原理是,我们使用

unless
进行左反连接,以删除 1 分钟前存在的范围向量中的所有指标。这样您就可以在第一次抓取指标时对指标进行一次计数。

© www.soinside.com 2019 - 2024. All rights reserved.