如何处理Nginx日志中request_uri的动态值以优化Grafana看板?
动态参数路由聚合解决方案
要将带查询参数的路由(如/route1/?name=adarsh)聚合到对应的基础路由(/route1/),只需在查询中新增正则处理逻辑,提取不带参数的路由路径后再分组。修改后的LogQL查询如下:
min_over_time({job="nginx"} | json | replace(request_uri, "(.*)\\?.*", "$1") as cleaned_uri | unwrap request_time [1m]) by (cleaned_uri)
核心逻辑说明:
replace(request_uri, "(.*)\\?.*", "$1") as cleaned_uri:通过正则匹配,截取request_uri中问号(?)之前的所有内容,生成清洗后的路由字段cleaned_uri- 最终按
cleaned_uri分组统计,就能把同一基础路由下的所有带参数请求合并展示
这个处理逻辑兼容两类场景:带参数的路由会被截断到基础路径,不带参数的路由则保持原样,无需额外适配边界情况。
内容的提问来源于stack exchange,提问作者adarsh
相关产品推荐
相关产品推荐

