Prometheus 计算与特定模式匹配的给定时间框架的普罗米修斯度量
考虑一个Prometheus Exporter作为任务运行器,它将成功的重复性作业的度量输出为Prometheus 计算与特定模式匹配的给定时间框架的普罗米修斯度量,prometheus,Prometheus,考虑一个Prometheus Exporter作为任务运行器,它将成功的重复性作业的度量输出为 sometool_jobs_succeeded{job_name="joba-123456"} 1 sometool_jobs_succeeded{job_name="joba-987654"} 1 sometool_jobs_succeeded{job_name="jobx-411235"} 1 如果在过去2小时内没有joba类型的作业成
sometool_jobs_succeeded{job_name="joba-123456"} 1
sometool_jobs_succeeded{job_name="joba-987654"} 1
sometool_jobs_succeeded{job_name="jobx-411235"} 1
如果在过去2小时内没有joba
类型的作业成功,我想设置普罗米修斯警报
我的第一个方法是使用警报表达式
sum(increase(sometool_jobs_succeeded{job_name=~"^joba-.+"}[2h])) < 1
sum(增加(sometool\u jobs\u successed{job\u name=~“^joba-.+”}[2h])<1
但是,由于从来没有一个类型为sometool\u jobs\u successed
的度量值不是1
,increase
没有正常工作(如果度量值刚刚出现,则没有增加)
我如何实现我的疑问?是否有可能计算范围向量的结果度量(独立于它们的值)?您可以尝试以下方法:
count(
sometool_jobs_succeeded{job_name=~"joba-.+"} unless (sometool_jobs_succeeded{job_name=~"joba-.+"} offset 2h)
)
这将返回两小时前不存在的现在的joba实例数
我会考虑出口商或应用程序是否可以修改,以便他们发出类似的东西。
sometool_jobs_succeeded{job_type="joba"} 8
因此,每个工作类型都有一个普通计数器。在普罗米修斯(Prometheus)中使用这将更为自然(并且更适合其数据模型)。它可以通过增加
调用进行处理,并处理任何重置等
请注意,使用唯一ID作为标签值是不符合建议的。
带有大基数的标签可能会导致问题(尽管除非规模真的很大,否则它可能会处理问题)。在
job\u name
中“joba-”后面的部分是id吗?换句话说:您是否希望随着时间的推移,现有作业的计数增加?(比如:“如果总共有3个”joba-“时间序列,2小时后仍然有2个,我们有问题”?)这些时间序列何时消失(停止由出口商排放)?如果导出程序(或它正在监视的进程)出于任何原因重新启动,会发生什么或应该发生什么?旧的作业名称值是否仍然存在?或者它是从零开始的?@bjakubski为混淆感到抱歉。是的,后缀是一个随机的、唯一的id。我想知道在过去2小时内是否添加了id前缀为joba-
的度量/时间序列。该系列最终可能会在一段时间后消失(在2小时窗口之后)。正是我所需要的,我没有意识到,除非,谢谢。不幸的是,我无法修改导出器的工作方式,因此这是我所能得到的最好结果:)