Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 查询活动的最新值(&A);过时的Prometheus timeseries超范围查询_Kubernetes_Prometheus_Promql - Fatal编程技术网

Kubernetes 查询活动的最新值(&A);过时的Prometheus timeseries超范围查询

Kubernetes 查询活动的最新值(&A);过时的Prometheus timeseries超范围查询,kubernetes,prometheus,promql,Kubernetes,Prometheus,Promql,我正在通过Prometheus使用Golang HTTP服务器中的一个服务器来记录和监视Kubernetes吊舱的SLO(服务器端请求持续时间)。每个请求的持续时间都按照中的描述进行计时和持久化,并按状态代码、方法和HTTP路径进行分区 我正在运行自动缩放实验,因此创建并终止了POD。每次实验后,我获取所有POD(包括已删除的POD)的指标,并绘制累积分布图,例如: 为了使这些图更“准确”,我选择了许多更小的直方图桶,并在本地聚合和分析数据,而不使用内置的因此,理想的查询将只返回指定时间范围内存

我正在通过Prometheus使用Golang HTTP服务器中的一个服务器来记录和监视Kubernetes吊舱的SLO(服务器端请求持续时间)。每个请求的持续时间都按照中的描述进行计时和持久化,并按状态代码、方法和HTTP路径进行分区

我正在运行自动缩放实验,因此创建并终止了POD。每次实验后,我获取所有POD(包括已删除的POD)的指标,并绘制累积分布图,例如: 为了使这些图更“准确”,我选择了许多更小的直方图桶,并在本地聚合和分析数据,而不使用内置的因此,理想的查询将只返回指定时间范围内存在的所有时间序列的最新值(绿色+红色圆圈)。 目前,我在生成所有绘图的脚本中使用,例如:

http://localhost:9090/api/v1/query_range?query=http_request_duration_milliseconds_bucket{path="/service/login"}&start=1591803898&end=1591804801&step=5s
然而,我知道这是非常低效和昂贵的,因为它检索大量剩余数据,即使我只对每个时间序列的最后一个值感兴趣。另一方面,如果我使用即时查询,我只获取指定时刻的值,因此我需要执行多个查询&首先找出某些时间序列(红色圆圈)何时被标记为过时,这似乎也不太好

所以,基本上我在寻找一种方法来解决这个问题,并阻止陈旧的时间序列“消失”:

如果在采样时间戳前5分钟(默认情况下)未找到样本,则此时不会为该时间序列返回任何值。这实际上意味着,当最新采集的样本超过5分钟或标记为过时后,时间序列会从图表中“消失”


我几乎可以肯定有一种方法可以做到这一点(例如,可以选择只包含过时的时间序列),但到目前为止,我还无法将其组合起来。

在输入之后找到另一种方法,并增加
lookbackDelta

现在正在拍摄诸如

http://localhost:9090/api/v1/query?query=max_over_time(http_request_duration_milliseconds_bucket{path="/service/login",le="101"}[2h])
返回所需的结果:


找到了另一种方法来完成此操作,该方法遵循中的输入,并增加
lookbackDelta

现在正在拍摄诸如

http://localhost:9090/api/v1/query?query=max_over_time(http_request_duration_milliseconds_bucket{path="/service/login",le="101"}[2h])
返回所需的结果: