按API名称分组,但忽略参数-应用程序细节

按API名称分组,但忽略参数-应用程序细节,api,azure,azure-application-insights,azure-diagnostics,Api,Azure,Azure Application Insights,Azure Diagnostics,我正在使用application insights监视应用程序中的API使用情况。我试图生成一个报告,列出在过去2个月内某个特定API被调用的次数。这是我的问题 requests | where timestamp >= ago(24*60h) | summarize count() by name | order by count_ desc 问题是,API的“名称”还随URL附加了参数,因此同一API在结果集中多次出现,但参数不同(例如GET API/GetTask/1、GET AP

我正在使用application insights监视应用程序中的API使用情况。我试图生成一个报告,列出在过去2个月内某个特定API被调用的次数。这是我的问题

requests
| where timestamp >= ago(24*60h)
| summarize count() by name
| order by count_ desc

问题是,API的“名称”还随URL附加了参数,因此同一API在结果集中多次出现,但参数不同(例如GET API/GetTask/1、GET API/GetTask/2)。我试图通过“requests”模式检查是否有一个列可以使用,该列的API名称没有参数,但找不到它。是否有一种方法可以按“名称”分组,而不使用洞察上的参数?请帮助查询。非常感谢

这将在第二个斜杠后剪切所有内容:

requests
| where timestamp > ago(1d)
| extend idx = indexof(name, "/", indexof(name, "api/") + 4)
| extend strippedname = iff(idx >= 0, substring(name, 0, idx), name)
| summarize count() by strippedname
| order by count_ 
另一种方法(如果API曲面很小)是通过嵌套的iif运算符提取值