【问题标题】:Prometheus intrumentation for distributed accumulated batch jobs用于分布式累积批处理作业的 Prometheus 仪器
【发布时间】:2018-06-19 08:29:39
【问题描述】:

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

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

正在收集数据,但我意识到我收集的数据不足以回答我的问题,我需要将我推送的指标(即:当前运行经过的时间)累积到以前的数据中。 Looking at the documentation,感觉推送网关不支持这个:

Pushgateway 明确不是聚合器或分布式计数器,而是指标缓存

我的问题是:

  • 是否可以通过 Prometheus Push Gateway 收集我想要的指标。如果没有,我有什么选择?
  • 如果可能,我应该如何收集哪些指标?

【问题讨论】:

标签: prometheus prometheus-pushgateway


【解决方案1】:

总的来说,Pushgateway 确实不是分布式计数器,但是……

看 Pushgateway 的正确方法,恕我直言,就像“又一个抓取端点”。 这意味着,它不会聚合您推送的指标,只会“按原样”保存它们。 但您实际上不需要聚合它 - Prometheus 会抓取来自 PushGateway 的数据,您的所有数据都将在 Prometheus 中可用。

之后 - 您可以通过 Prometheus 运行任何您想要的查询 - 直接从 Prometheus 使用 PromQL,或利用 Grafana。

注意:关于 Pushgateway 的讨论有很多,使用它也有缺点。一般guideline "non-goals" recommendation 将 Pushgateway 用作“最后一个选项” - 建议改为公开 /metrics 路由,即使在作业中也是如此。

附:如果您认为确实需要聚合指标,可以查看同一篇文章中提到的Weavework's aggregation gateway。但再一次 - 我认为这不是你想要的。

【讨论】:

  • 我还需要一个推送网关来接受计数器类型。我可以将推送网关用于柜台吗?如果是这样,怎么做?如果没有,我能用什么?谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-02
  • 2011-11-20
  • 2022-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多