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

Grafana中count_over_time时间范围查询异常求助

Grafana count_over_time 函数使用问题及饼图可视化方案

问题描述

需要用count_over_time计算最近1分钟发送"Timestamp"行的系统数减去最近1小时发送该行的系统数,但结果完全依赖仪表盘时间范围,不按手动指定的1m/1h参数计算;最终目标是将相关数值用饼图可视化,接受转换方案。

附相关截图:
最近1小时发送Timestamp的系统
预期为最近1分钟发送Timestamp的系统
结果应为1却显示0

问题原因

count_over_time([1m])这类写法的相对时间窗口,默认基于仪表盘时间范围的结束时间计算。如果仪表盘选了非“最近X”的自定义时间段,统计范围就会和预期不符。另外,直接用count_over_time统计的是行数,不是系统数,这也会导致结果错误。

正确查询写法

要统计系统数,需先按系统维度分组,再判断该系统是否在目标时间窗口内发送过数据:

1. 统计最近1分钟发送过的系统数

count(count by (system_label) (last_over_time(your_metric{message="Timestamp"}[1m]) > time() - 60))

2. 统计最近1小时发送过的系统数

count(count by (system_label) (last_over_time(your_metric{message="Timestamp"}[1h]) > time() - 3600))

3. 计算差值(若需求是“1小时内活跃但1分钟不活跃的系统数”,用1小时总数减1分钟总数更合理)

count(count by (system_label) (last_over_time(your_metric{message="Timestamp"}[1h]) > time() - 3600)) - count(count by (system_label) (last_over_time(your_metric{message="Timestamp"}[1m]) > time() - 60))

饼图适配方案

单数值差值无法生成饼图,建议拆分为两个统计系列作为饼图切片:

  1. 最近1分钟内活跃的系统数(对应上述第一个查询)
  2. 最近1小时内活跃但近1分钟不活跃的系统数(对应上述差值查询)

在Grafana饼图面板中添加这两个查询,分别设置系列名称,即可生成符合需求的饼图。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 20:12:24