如何在Prometheus查询中用选定区间作为时间序列图的可视化范围
Prometheus区间变量用于时间序列图的示例
首先得明确:别直接用内置的$interval,它是用来自动计算查询步长的,不是用来指定时间范围的,这就是你出错的核心原因。你需要先定义自定义区间变量,再用在查询里。
步骤1:创建区间变量
以常用的Grafana为例,添加变量时:
- 变量类型选「Interval」
- 变量名设为
time_range(避开内置变量名,防止冲突) - 设置可选的区间值,比如:
1h, 6h, 1d, 7d, 30d
步骤2:实用查询示例
直接把你定义的变量替换查询里的区间部分即可,以下是几个常见场景:
1. 计算指定区间内的请求速率
rate(http_requests_total[$time_range])
根据选择的time_range,计算该时间段内HTTP请求的平均生成速率。
2. 统计区间内CPU空闲总时长
sum_over_time(node_cpu_seconds_total{mode="idle"}[$time_range])
累加选定时间范围内,节点CPU处于空闲状态的总秒数。
3. 获取区间内内存使用峰值
max_over_time(node_memory_MemUsed_bytes[$time_range])
找出指定时间段里,内存使用量的最大值。
注意事项
- 变量名别用
$interval,它是Grafana内置的步长变量,和你要的时间范围不是同一概念 - 区间值要符合Prometheus时间格式:
m代表分钟,h小时,d天,w周
内容的提问来源于stack exchange,提问作者JayaKumar
相关产品推荐
相关产品推荐

