[英]Is it possible to aggregate Loki logs by day on Grafana?
我有一組這樣的日志:
{"action": "action_a", "username": "user_1", "ts": "2021-09-10T02:18:14.103Z"}
{"action": "action_a", "username": "user_2", "ts": "2021-09-10T02:17:14.103Z"}
{"action": "action_a", "username": "user_1", "ts": "2021-09-09T02:16:14.103Z"}
{"action": "action_a", "username": "user_1", "ts": "2021-09-08T02:15:14.103Z"}
是否可以按日期和用戶名對日志進行分組以獲得每天唯一用戶的計數?
我目前有以下查詢:
sum by (username) (count_over_time({job="my-app"} | json | username != "" [$__range]))
這有效地為我提供了當前儀表板范圍內唯一用戶的餅圖。 相反,我想要一個時間序列來顯示每天的唯一用戶數(例如,過去 60 天)。 換句話說,每日活躍用戶 (DAU)。
有了上面的日志,我需要類似的東西:
{"2021-09-10": 2}
{"2021-09-09": 1}
{"2021-09-08": 1}
Loki 可以做到這一點,還是我應該改用 Elasticsearch 之類的東西?
也許使用 label_format 創建一個新標簽可以解決問題? 標簽格式表達式
sum by (day) (
count_over_time({job="my-app"} | json | label_format day=`{{.ts| substr 0 10}}` | username != ""[$__range])
)
要使用 LogQL 按天聚合,您可以將$__range
替換為所需的時間分組間隔。
例如
sum by (username) (
count_over_time(
{job="my-app"} | json | username != ""
[1d]) # <-- put your desired time interval here instead of $__range
)
然后,您可以使用時間序列可視化來顯示您的數據:
有用的鏈接:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.