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

使用Grafana和Loki查询日志时如何对用户条目进行去重

问题解决方法

问题原因

Grafana Logs面板自带的去重功能仅支持合并连续出现的相同日志行,当不同用户的日志交错出现时,相同用户名的行不连续,无法触发去重规则,因此会出现重复结果。

推荐解决方案:Loki查询层直接去重

Loki 2.3及以上版本内置distinct聚合运算符,可以直接返回指定提取字段的全局唯一值,不需要依赖面板端的去重能力,查询语句如下:

{job="my-app"} | json | username != "" | distinct username

该查询会直接返回去重后的用户名列表,不管日志上报顺序是否交错,最终结果中每个用户名仅会出现一次,完全符合需求。

备选方案(Loki版本低于2.3时使用)

如果你的Loki版本不支持distinct运算符,可以配合Grafana的Transform转换功能实现全局去重:

  • 保留你原有的查询语句不变
  • 打开当前面板的Transform标签页,添加「Group by」转换规则
  • 分组字段选择username,聚合规则可任选(比如选Count统计用户活跃次数)
  • 配置面板的展示列,仅保留username字段即可

如果可以更换面板类型,更推荐切换为Table面板,使用如下聚合查询实现:

sum by (username) (count_over_time({job="my-app"} | json | username != "" [$__range]))

该统计结果天然就是去重的用户名列表,还可以同时展示每个用户的活跃次数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 17:45:05