如何使用Kusto按含路径参数的URL汇总请求
解决方法
你可以使用Kusto的replace_regex()函数,通过正则表达式匹配URL中的动态路径参数部分,将其替换为通配符*,再基于处理后的URL进行汇总。
针对你给出的示例URL,修改后的查询如下:
requests | extend parsed_url = replace_regex(url, @"(\/api\/v1\/items\/)[^\/]+(\/latest)", @"$1*$2") | summarize hits = count() by parsed_url | order by hits desc | project url = parsed_url, hits
说明:
replace_regex(url, @"(\/api\/v1\/items\/)[^\/]+(\/latest)", @"$1*$2"):- 正则表达式
(\/api\/v1\/items\/)[^\/]+(\/latest)精准匹配/api/v1/items/与/latest之间的任意非斜杠字符(即你的动态参数部分) $1和$2对应正则中括号捕获的固定路径段,中间用*替换动态参数,最终生成统一的聚合URL格式
- 正则表达式
- 若存在其他格式的动态参数URL,可按需调整正则表达式适配场景:
- 比如要匹配任意单段动态路径(如
/users/{id}),可使用通用正则@"\/[^\/]+(?=\/|$)",但注意这种通用匹配可能会误替换非参数路径段,建议根据实际URL结构定制规则
- 比如要匹配任意单段动态路径(如
内容的提问来源于stack exchange,提问作者Aidan
相关产品推荐
相关产品推荐

