如何为 Pushgateway 设置指标过期的保留时间?

How to set a retention time for Pushgateway for metrics to expire?

我将 Pushgateway 与 Prometheus 一起使用,一切正常,但几周后 Pushgateway 崩溃了……看一看,有大量指标不再使用,手动删除它们几乎是不可能的…… . 所以 ->

有一种方法可以使用 TTL 或其他一些保留设置(如按大小或按时间)使 Pushgateway 指标过期吗? ...或者两者兼而有之?

注意:我在普罗米修斯的邮件列表中读到很多人在一年或更长时间前就需要这样的东西......到目前为止唯一的答案是 - >这不是普罗米修斯的方式来做到这一点... 真的 ? ...常见,如果这对很多人来说是一个真正的痛苦,也许应该有更好的方法(即使它不是普罗米修斯方式)

假设您想要删除与组相关的指标,当它们变得太旧时(对于太旧的给定定义),您拥有由 pushgateway 自动定义的指标 push_time_seconds

push_time_seconds{instance="foo",job="bar",try="longtime"} 1.598280005888635e+09

根据这些信息,您可以编写一个脚本来 request/grab 这个指标,并用该值识别旧数据组 ({instance="foo",job="bar",try="longtime"})。 API 让您删除与旧数据相关的指标:

 curl -X DELETE http://pushgateway:9091/metrics/job/bar/instance/foo/try/longtime

这可以在几行 bash 脚本或 python.

中完成

没有得到普罗米修斯团队的正面回应。所以实现相同。

https://github.com/dinumathai/pushgateway

docker run -d -p 9091:9091 dmathai/prom-pushgateway-ttl:latest --metric.timetolive=60s