按名称 API 分组,但忽略参数 - Application Insights

Grouping by name of API, but ignoring parameters - Application Insights

我正在使用应用程序洞察来监控 API 我的应用程序的使用情况。我正在尝试生成一份报告,以列出过去 2 个月内调用特定 API 的次数。这是我的查询

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

问题是 API 的 'name' 也随着 URL 附加了参数,所以相同的 API 在具有不同参数的结果集(例如 GET api/getTasks/1、GET api/getTasks/2)。我试图查看 'requests' 架构以检查是否有一个我可以使用的列,该列的名称为 API 但没有找到它。有没有办法在没有洞察力参数的情况下按 'name' 分组?请帮忙查询。非常感谢。

这将在第二个斜杠之后删除所有内容:

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 运算符提取值。