0

我正在使用 Grafana 来可视化来自 Prometheus 的指标和来自 Loki 的关于应用程序的日志。有日志语句,例如:

{"action": "action_a", "username": "user_1", "ts": 1012}
{"action": "action_a", "username": "user_2", "ts": 1008}
{"action": "action_a", "username": "user_1", "ts": 1005}
{"action": "action_a", "username": "user_1", "ts": 1000}

我有一个查询来获取“最近活跃用户”的列表,使用 Grafana 日志面板:

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

我已经尝试了 的所有值Deduplication,这大部分都可以正常工作,除了用户在彼此之间进行操作的(常见)情况(如上所述),然后我得到这样的日志:

user_1
user_2
user_1

我怎样才能使它只显示每个用户一次?例如:

user_1
user_2
4

1 回答 1

1

尝试这样的事情:

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

例如,您可以使用 Grafana 上的饼图来显示此数据。请参阅下面如何配置它,使用不同的日志文件和不同的标签(“分支”而不是“用户名”):

在此处输入图像描述

于 2021-09-07T20:19:26.217 回答