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

如何用Loki LogQL统计一小时内的唯一用户数?

统计LogQL中一小时内的唯一用户数

要统计1小时内的唯一用户数量,你需要调整LogQL的结构,从“按用户统计请求数”转为“统计有多少个不同的用户”。

正确的LogQL语句

count(count by (UserID) ({app="app"} | logfmt [1h]))

语句拆解

  1. 筛选并解析日志:{app="app"} | logfmt 会匹配目标应用的日志,并将日志解析为键值对,自动提取UserID标签。
  2. 按用户分组聚合:count by (UserID) (...) [1h] 会在1小时的时间窗口内,按UserID分组统计每个用户的日志条目数——这一步的核心是把同一个用户的所有日志合并为一条记录(不管该用户请求多少次)。
  3. 统计唯一用户数:最外层的count()会统计上述分组结果的总数,也就是1小时内出现过的唯一用户数量。

对比原语句的区别

你原来的语句count(count_over_time({app="app"} | logfmt [1h])) by (UserID)是按用户维度统计请求次数,而我们需要的是统计用户的数量,所以需要把by (UserID)放到内层的分组中,再用外层的count()统计分组的数量。

拿你提供的日志示例来说,执行正确语句后会得到结果2(因为只有65166和24413两个唯一用户),符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 14:05:23