基于Loki数据源的Grafana:按ctx_username分组统计请求数
在Grafana中基于Loki按ctx_username分组统计请求量并制作条形图
1. 编写LogQL分组统计查询
根据日志格式选择对应的解析方式,核心是按ctx_username分组统计时间范围内的请求总数:
场景1:日志为JSON格式
sum(count_over_time({job="你的业务job标签"} |= "ctx_username" | json | ctx_username != "" [$__range])) by (ctx_username)
场景2:日志为键值对格式(如ctx_username=username_1 ...)
sum(count_over_time({job="你的业务job标签"} |= "ctx_username" | regexp "ctx_username=(?P<ctx_username>[^\\s]+)" | ctx_username != "" [$__range])) by (ctx_username)
参数说明:
{job="你的业务job标签"}:替换为你的Loki数据源对应的job标签,缩小日志查询范围[$__range]:Grafana内置变量,自动匹配当前面板选择的时间范围sum(count_over_time(...)) by (ctx_username):按ctx_username维度分组,汇总时间范围内的请求次数
2. 配置Grafana条形图面板
- 新建面板,选择Loki作为数据源,粘贴上述查询语句
- 面板类型切换为条形图(Bar Chart)
- 在「字段」设置中,将统计结果的字段重命名为
ctx_username_count:点击字段名称,修改显示名称即可 - 调整X轴绑定
ctx_username字段,Y轴绑定ctx_username_count,可按需设置排序、颜色、标签显示等样式
完成后,面板会展示时间范围内各用户的请求量分布,输出结构与需求一致:
| ctx_username | ctx_username_count |
|---|---|
| username_1 | 3 |
| username_2 | 1 |
内容的提问来源于stack exchange,提问作者Alexandre Daubricourt
相关产品推荐
相关产品推荐

