Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Prometheus 计算与特定模式匹配的给定时间框架的普罗米修斯度量_Prometheus - Fatal编程技术网

Prometheus 计算与特定模式匹配的给定时间框架的普罗米修斯度量

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类型的作业成

考虑一个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
类型的作业成功,我想设置普罗米修斯警报

我的第一个方法是使用警报表达式

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小时窗口之后)。正是我所需要的,我没有意识到
,除非
,谢谢。不幸的是,我无法修改导出器的工作方式,因此这是我所能得到的最好结果:)