仅从上一次刮擦迭代中从普罗米修斯获取数据

时间:2018-11-09 13:14:27

标签: prometheus

用例

我正在创建一个工具来显示kubernetes集群中所有Pod的资源请求。 Prometheus已经抓取了我的Prometheus指标导出器,并历史上保存了所有抓取的指标(间隔10秒),这样我什至可以看到10天前所有pod的资源请求。

问题

每次重新部署Pod时,它的确会更改名称。但是我只想显示实际正在运行的Pod的资源请求。为此,我显然可以添加一个时间选择器,例如,仅向我显示最多15s的旧结果,但这会有点麻烦。如果可能的话,我想从最新的scrape迭代中获取结果(如果出现问题,它可能早于15s)。

问题

仅获取上次迭代中已删除的普罗米修斯指标的最佳方法是什么?

例如,

eagle_container_resource_requests_cpu将返回请求的pod的CPU核心,而这些核心现已不复存在。

旁注:我正在尝试在Grafana表中实现此行为。

2 个答案:

答案 0 :(得分:3)

您可能正在寻找陈旧性:https://prometheus.io/docs/prometheus/latest/querying/basics/#staleness

所以5分钟后,您应该开始看到值消失。

答案 1 :(得分:1)

查询指标eagle_container_resource_requests_cpu时,您会得到最新的值,例如这是您使用Prometheus图执行发送的实际请求:

https://<prometheus-url>/api/v1/query?query=eagle_container_resource_requests_cpu&time=1541769935.01&_=1541769677378

此外,您可以直接致电Prometheus API进行验证:

curl 'http://localhost:9090/api/v1/query?query=eagle_container_resource_requests_cpu&time=2018-11-09T10:10:51.781Z'

两个响应都将包含已删除的时间戳记指标,例如:

"value":[1541770056.042,"11"]

如果您希望在Grafana的singlestat图表中看到此信息:

您可以看到“当前”(最新)值,也可以看到最后一点的时间。

enter image description here

相关问题