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

能否在Grafana中对Loki日志按天聚合统计每日活跃用户DAU?

Loki统计每日活跃用户(DAU)方案

完全可以通过Loki实现该需求,无需切换到Elasticsearch工具。

实现逻辑

你只需要在原有查询的基础上增加按日期分组的步骤即可,核心是给每条日志打上对应的日期标签,再按日期维度统计独立用户数。

可用查询语句

sum by (day) (
  # 内层按日期+用户名去重,同一个用户同一天只会保留1条计数
  count by (day, username) (
    {job="my-app"} 
    | json 
    | username != ""
    # 将日志自带的ts字段格式化为YYYY-MM-DD格式的日期标签
    | label_format day = {{.ts | date "2006-01-02"}}
  )
)

如果你不需要严格使用日志内置的ts字段,也可以直接用Loki的索引时间生成日期标签,语句简化为:

sum by (day) (
  count by (day, username) (
    {job="my-app"} 
    | json 
    | username != ""
    | label_format day = {{ time.Now().Add(0) | date "2006-01-02" }}
  )
)

Grafana展示配置

要生成过去60天的DAU时间序列,只需要做两个配置:

  • 面板时间范围选择「过去60天」
  • 查询的Min step参数设置为1d,即可输出每天一条的DAU统计结果,和你期望的输出格式完全匹配。

补充说明

仅DAU这类简单维度聚合场景,Loki的性能和功能完全可以满足需求,只有当你需要做大量复杂多维度聚合、全文模糊检索等场景时,才需要考虑切换到Elasticsearch。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 03:39:01