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

Grafana用Loki日志统计URL访问量时如何让count_over_time空时段返回0而非null

针对Loki LogQL空查询结果返回0的解决方案

方案1:修改LogQL查询(推荐)

在现有查询末尾拼接 or vector(0) 即可实现空结果自动返回0,修改后的语句如下:

sum(
  count_over_time(
    {job="nginx-access", hostname="myhost", filename="/var/log/nginx/myhost_access.log"}
    | json
    | request = "/news"
    [1m]
  ) 
) or vector(0)

原理:or 是LogQL的集合运算操作符,会优先返回左侧的查询结果,只有当左侧结果为空时返回右侧值为0的即时向量vector(0)。

如果是多标签分组聚合的场景(比如同时统计多个URL的访问量),可以使用LogQL 2.3及以上版本支持的default操作符:

sum by (request) (
  count_over_time(
    {job="nginx-access", hostname="myhost", filename="/var/log/nginx/myhost_access.log"}
    | json
    | request =~ "/news|/blog"
    [1m]
  ) 
) default 0

方案2:Grafana面板配置(无需修改查询)

不想调整查询语句的话,可以直接在Grafana侧处理空值:

  • 进入对应面板的编辑页,找到右侧「查询选项」配置区域
  • 将「Null value」的选项调整为「显示为0」即可
  • 也可以在「转换」Tab中添加「标准化空值」规则,统一将所有null值替换为0

补充说明

count_over_time返回空值属于Loki的默认设计:没有匹配日志的时间区间不会自动生成对应时序,并非函数逻辑异常。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 14:09:03