用例
我正在创建一个工具来显示kubernetes集群中所有Pod的资源请求。 Prometheus已经抓取了我的Prometheus指标导出器,并历史上保存了所有抓取的指标(间隔10秒),这样我什至可以看到10天前所有pod的资源请求。
问题
每次重新部署Pod时,它的确会更改名称。但是我只想显示实际正在运行的Pod的资源请求。为此,我显然可以添加一个时间选择器,例如,仅向我显示最多15s的旧结果,但这会有点麻烦。如果可能的话,我想从最新的scrape迭代中获取结果(如果出现问题,它可能早于15s)。
问题
仅获取上次迭代中已删除的普罗米修斯指标的最佳方法是什么?
例如, eagle_container_resource_requests_cpu
将返回请求的pod的CPU核心,而这些核心现已不复存在。
旁注:我正在尝试在Grafana表中实现此行为。
答案 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图表中看到此信息:
您可以看到“当前”(最新)值,也可以看到最后一点的时间。