Prometheus推送网关只返回最后一个值而不是全部

问题描述 投票:0回答:2

我使用普罗米修斯的推送网关(https://prometheus.io/docs/practices/pushing/)。 我经常从 React UI 推送一些指标,如下所示:

# HELP prom_react_app_availability_total Application availability counter
# TYPE prom_react_app_availability_total counter
prom_react_app_availability_total{owner="test", status="started", timestamp="2022-09-13T06:48:19.280Z"} 1

有时我在“开始”后会出现“失败”状态。

# HELP prom_react_app_availability_total Application availability counter
# TYPE prom_react_app_availability_total counter
prom_react_app_availability_total{owner="test", status="failed", timestamp="2022-09-13T06:52:19.280Z"} 1 

但是当我查看网关的 /metrics 端点时,我只能看到最后一个值,而不是一段时间内提交的所有值。 我的 Prometheus 服务器每 30 秒从该端点收集一次数据,因此我丢失了很多数据,也许还丢失了“失败”,这是因为下一次推送的状态为“已启动”。 我想,我看到了所有事件或具有增加值的摘要。

出了什么问题?

reactjs prometheus prometheus-pushgateway
2个回答
1
投票

Prometheus Pushgateway 通过设计只记住每个时间序列最后推送的样本。请参阅这些文档。如果您想统计应用程序可用/不可用时的事件,请查看 statsd_exporter

侧面建议:不建议在指标标签中存储时间戳,因为每个唯一的时间戳都会产生一个新的时间序列。这可能会减慢 Prometheus 的速度并显着增加其内存使用量。这种情况被称为“高流失率”和/或“高基数”。另请参阅这些文档 不要使用像 statsd 这样的东西,它与普罗米修斯客户端的简单工具有很大不同,我建议使用指标聚合实用程序,例如:


0
投票
舞会聚合网关

或者

指标累加器

两者都可以部署为独立服务。 我更喜欢指标累加器,因为它不会像计数器一样对待仪表,它具有指标的 TTL,并且它将指标划分为分组。 为了透明起见,我是 Metrics Accumulator 的创建者。<--- I'm the Author of this

© www.soinside.com 2019 - 2024. All rights reserved.