管理Pushgateway最近的抓取时间的普罗米修斯限制

时间:2019-12-04 18:28:59

标签: prometheus

我看到了其他线程/帖子(在github,stackoverflow上),人们在其中请求prometheus的功能,以便能够根据度量标准的时间戳(最后一次推送到pushgateway时)将度量标准过滤或标记为陈旧/过期。看来这与普罗米修斯的工作方式背道而驰,这很好。但是,我想知道人们如何解决这个问题。

我一直在尝试一些事情,但不幸的是没有成功:

  • 在度量标准中添加了包含纪元时间的标签。使用此标签值来过滤指标(或将指标的值更新为将指标指示为过时的某种状态)来指示。
    • 我发现这导致标签值在字符串中,但无法将其转换为整数以基于当前时间进行比较(例如执行诸如“ time()-timestamp)> 3600”之类的操作)。
  • 使用作业的“ push_time_seconds”度量标准可以识别上次推送的时间戳,并将数据过滤或标记为陈旧。每当用户推送数据时,我都会在Prometheus中自动添加此指标。例如,如果我要推送以下数据:
  

cat

我在pushgateway指标中看到以下指标:

  

push_time_seconds {instance =“”,job =“ test”} 1.5754837280426762e + 09   some_metric {instance =“”,job =“ test”,label1 =“ value1”,label2 =“ value2”} 5

但是,我不知道如何构建一个PromQL查询,该查询将使用push_time_seconds指标来更新some_metric中的值。就像push_time_seconds早于一个小时一样,请将some_metric的值设置为0。

有人对此有意见吗?

1 个答案:

答案 0 :(得分:0)

我发现了另一个名为“维多利亚指标”的数据库/方法扩展。我能够使用布尔值和“ if”运算符来操纵push_last_seconds和我的查询来完成我想要的事情。 让我知道是否有人需要更多信息。