例如,如通过以下表达式可以选择最近 5 分钟内的所有样本数据:
http_requests_total{job="prometheus"}[5m]
时间偏移
在瞬时向量表达式或者区间向量表达式中,都是以当前时间为基准。
http_request_total{} # 瞬时向量表达式,选择当前最新的数据
http_request_total{}[5m] # 区间向量表达式,选择以当前时间为基准,5分钟内的数据
而如果我们想查询,5 分钟前的瞬时样本数据,或昨天一天的区间内的样本数据呢?这个时候我们就可以使用位移操作,可以使用 offset 时间位移操作:
http_request_total{} offset 5m
http_request_total{}[1d] offset 1d
需要注意的是 offset 关键词需要紧跟在选择器之后。
sum(http_requests_total{method="GET"} offset 5m) // 正确
sum(http_requests_total{method="GET"}) offset 5m // 错误