用于分布式累积批处理作业的Prometheus intrumentation

用于分布式累积批处理作业的Prometheus intrumentation,prometheus,prometheus-pushgateway,Prometheus,Prometheus Pushgateway,我每天多次运行构建脚本。我的感觉是,我和我的同事花了相当长的时间等待这个脚本的执行。现在我想知道:我们每天花多少时间等待脚本执行?。我可以对总体平均值感到满意,尽管我真的希望每天都有数据(例如,“上周一我们花了X分钟等待脚本执行,周二…) 为了找到答案,我用一个推送网关启动了普罗米修斯(Prometheus)。在构建脚本中,我向推送网关添加了一个REST调用,该调用发布标有机器名和示例数据的度量(类型:计数器)以及执行脚本所用的时间 正在收集数据,但我意识到我收集的数据不足以回答我的问题,我需要

我每天多次运行构建脚本。我的感觉是,我和我的同事花了相当长的时间等待这个脚本的执行。现在我想知道:我们每天花多少时间等待脚本执行?。我可以对总体平均值感到满意,尽管我真的希望每天都有数据(例如,“上周一我们花了X分钟等待脚本执行,周二…)

为了找到答案,我用一个推送网关启动了普罗米修斯(Prometheus)。在构建脚本中,我向推送网关添加了一个REST调用,该调用发布标有机器名和示例数据的度量(类型:
计数器
)以及执行脚本所用的时间

正在收集数据,但我意识到我收集的数据不足以回答我的问题,我需要将我推送的度量(即:当前运行时间)累积到以前的数据中。我感觉推送网关不支持这一点:

Pushgateway显然不是聚合器或分布式计数器,而是度量缓存

我的问题是:

  • 有没有可能通过普罗米修斯推送网关收集我想要的指标。如果没有,我有什么选择
  • 如果可能,我应该收集哪些指标?如何收集

一般来说,Pushgateway实际上不是一个分布式计数器,而是

正确看待Pushgateway,imho,就像“又一个刮削端点”。 这意味着,不会聚合您推送的度量,而只是“按原样”保存它们。 但实际上您不需要对其进行聚合-普罗米修斯将从PushGateway中刮取数据,并且您的所有数据都将在普罗米修斯中可用

之后,您可以通过Prometheus直接使用PromQL或利用Grafana运行任何查询

注意:关于Pushgateway有一些讨论,使用它也有其缺点。通常使用Pushgateway作为“最后一个选项”——建议公开/metrics路由,即使在作业中也是如此


另外,如果你认为你真的需要聚合的指标,你可以看一看,在同一篇文章中提到。但再一次,我认为这不是你想要的。你的意思是在被普罗米修斯抓取之前对指标进行分组吗?推送网关支持分组键,请看我需要推送网关的自述也接受计数器类型。我可以使用push gateway作为计数器吗?如果可以,如何使用?如果不能,我可以使用什么?谢谢