如何在Grafana中按天分组Loki查询的ERROR日志统计结果?
解决Loki按天分组统计ERROR日志总数的问题
你的原查询能统计指定时间窗口内的ERROR日志总数,但要按天分组,需要先把时间戳处理成按天对齐的维度再聚合。之前的写法出错是因为没定义有效的分组维度,Loki不支持凭空指定grouping这类自定义分组名。
直接用下面的LogQL查询即可实现按天分组求和:
sum by (day) ( count_over_time( {filename="/var/log/cron.log", instance="node01"} |= `ERROR` [$__interval] ) | day = time_format(timestamp, "%Y-%m-%d") )
关键说明:
time_format(timestamp, "%Y-%m-%d"):把每条统计结果的时间戳格式化为年-月-日的日期字符串,作为分组维度daysum by (day):按日期维度聚合求和,得到每天的ERROR日志总数[$__interval]:保留Grafana的动态时间间隔变量,适配你选择的时间范围(比如选最近7天,会自动按天拆分)
如果需要强制按24小时窗口统计,也可以把[$__interval]换成[1d],效果一致。
生成表格步骤:
- 在Grafana中替换查询语句为上述代码
- 切换面板类型为表格
- 选择你需要的时间范围(比如最近7天、最近30天),即可看到每日ERROR日志总数的表格展示
内容的提问来源于stack exchange,提问作者tcurdt
相关产品推荐
相关产品推荐

