4

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

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

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

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

我的问题是:

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

1 回答 1

1

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

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

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

注意:有几个关于 Pushgateway 的讨论,使用它有它的缺点。有一般指南“非目标”建议使用 Pushgateway 作为“最后一个选项” - 建议是公开 /metrics 路由,即使在工作中也是如此。

PS 如果你认为你真的需要聚合指标,你可以看看Weavework 的聚合网关,在同一篇文章中提到。但再一次 - 我认为这不是你想要的。

于 2019-02-19T06:00:28.003 回答