You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Application Insights查询问题:按解析URL关联表并聚合均值

解决Azure Application Insights中requests与customMetrics表按解析后URL关联的问题

看起来你遇到的问题主要出在硬编码的URL解析逻辑以及缺失的表关联步骤上。原代码里用固定的substring(stringUrl,157)来截取URL,这在URL前缀长度变化时会直接失效,而且没有完成和requests表的关联操作。

下面是修正后的完整KQL查询,我会一步步解释关键改进点:

修正后的完整查询

// 定义通用的URL路径解析函数,避免硬编码长度
let parseUrlPath = (url:string) {
    // 使用parse_url函数提取路径部分,自动处理域名、查询参数
    let urlParts = parse_url(url);
    // 去掉路径末尾可能的斜杠,保证关联一致性
    strcat_array(split(urlParts.Path, "?"), "")
};

// 处理customMetrics表,解析出统一的URL路径并计算指标平均值
let metricsData = customMetrics
| where name == "Api.GetData"
| extend urlURI = tostring(customDimensions.RequestedUri)
| extend parsedUrl = parseUrlPath(urlURI)
| summarize avgRequestMetric = avg(value) by parsedUrl;

// 处理requests表,解析出相同的URL路径并计算平均持续时间
let requestsData = requests
| extend parsedUrl = parseUrlPath(url)
| summarize avgDuration = avg(duration) by parsedUrl;

// 关联两个表,输出共同的解析URL、平均持续时间和指标平均值
requestsData
| join kind=inner metricsData on parsedUrl
| project parsedUrl, avgDuration, avgRequestMetric

关键改进说明

  • 通用URL解析:用KQL内置的parse_url函数替代硬编码的substring,它能自动拆分URL的各个部分(域名、路径、查询参数等),提取路径后再去掉查询参数,保证解析逻辑的通用性。
  • 拆分处理表:先分别对requests和customMetrics做数据聚合,再做关联,这样比直接关联后聚合性能更好,尤其是数据量较大时。
  • 内连接关联:使用kind=inner只保留两个表中都存在的解析URL,确保结果是两者的交集。

可选优化:如果不需要自定义函数

你也可以直接在extend里处理URL,省略自定义函数,让查询更简洁:

let metricsData = customMetrics
| where name == "Api.GetData"
| extend urlURI = tostring(customDimensions.RequestedUri)
| extend parsedUrl = strcat_array(split(parse_url(urlURI).Path, "?"), "")
| summarize avgRequestMetric = avg(value) by parsedUrl;

let requestsData = requests
| extend parsedUrl = strcat_array(split(parse_url(url).Path, "?"), "")
| summarize avgDuration = avg(duration) by parsedUrl;

requestsData
| join kind=inner metricsData on parsedUrl
| project parsedUrl, avgDuration, avgRequestMetric

这样应该就能正常运行,得到你需要的共同解析URL、requests平均持续时间以及customMetrics请求平均值了。

内容的提问来源于stack exchange,提问作者RaShe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:35:06