You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调整Grafana图表仅显示非零值及对应时间段并自动居中?

实现方案(基于Grafana+Prometheus主流可视化组合)

完全可以实现你的需求,具体操作如下:

1. 仅展示非零值

直接修改PromQL查询语句,过滤掉0值数据:

  • 严格过滤0值:locust_user_count != 0
  • 处理趋近于0的浮点误差(比如允许微小阈值):locust_user_count > 0.001(阈值可根据实际数据调整)

2. 自动锁定非零值时间段

通过PromQL获取非零值的起止时间戳,结合可视化工具的变量功能自动设置时间范围:

  1. 创建两个变量(以Grafana为例):
    • start_time:查询语句为first_over_time((locust_user_count != 0) * time() [$__range]),作用是获取第一个非零值的时间戳
    • end_time:查询语句为last_over_time((locust_user_count != 0) * time() [$__range]),作用是获取最后一个非零值的时间戳
  2. 将图表的时间范围设置为$start_time到$end_time,每次加载都会自动缩放到仅包含非零值的区间

3. 加载时自动将峰值居中显示

先通过PromQL定位峰值的时间点,再基于该点调整时间范围实现居中:

  1. 创建变量peak_time:查询语句为argmax_over_time(locust_user_count [$__range]),返回峰值对应的时间戳
  2. 可选:创建变量non_zero_duration,查询语句为$end_time - $start_time,获取非零值区间的总时长
  3. 将图表时间范围设置为$peak_time - $non_zero_duration/2到$peak_time + $non_zero_duration/2,加载时会自动以峰值为中心,完整显示整个非零区间

注意:如果使用Prometheus自带Web UI,变量功能受限,建议改用Grafana实现更灵活的时间范围控制

内容的提问来源于stack exchange,提问作者Viv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 22:42:42